Grażyna Kamińska, Paweł Fritzkowski Grafika komputerowa Laboratorium 0
vold Getldentlty (float mac(3)[3])
{
GetZero (mac);
for (int k = 0 ; k < 3; k++)
mac[k][k] = 1,0f;
P
9. Ustalmy nazwy funkcji
- służących do tworzenia macierzy przekształceń aflnlcznych
GetTranslate |
macierz translacji o wektor t |
t,- |
1 0 r, 0 1 t, 0 0 1 | ||||
GetRotate |
macierz obrotu wokół początku układu współrzędnych o kąt <i> |
fc0,= |
cos((p) —sin (<p) 0 sin (9) co»(qp) 0 0 0 | ||||
GetScale |
macierz skalowania |
0 ■ |
i, 0 0 0 j, 0 0 0 1 | ||||
GetShearX |
macierz transformacji pochylającej w kierunku osi X |
1 ig(a) 0 0 1 0 0 0 1 | |||||
GetShearY |
macierz transformacji pochylającej w kierunku osi y |
ń,= |
1 0 0 cg (fi) 1 0 0 0 1 |
- funkcji pomocniczych
GetVector |
wektor kolumnowy współrzędnych jednorodnych punktu P(x,y) |
X y 1 | ||
MatrixMultipllcation |
wykonuje mnożenie macierzy przez wektor |
Przykładowy nagłówek funkcji
void GetTranslate(const float tx, const float ty, float mac{3][3])
10. W pliku nagłówkowym po dyrektywie
#pragma once
umieszczamy prototypy wszystkich funkcji zapisanych w module.
11. Do listy dyrektyw ffinclude w pliku podstawowym projektu Lab01 dodajemy dyrektywę
#include "transżD.h"
12. Ostatnim elementem ćwiczeń jest sprawdzenie poprawności napisanych funkcji.
2