POLITECHNIKA SZCZECIŃSKA
WYDZIAŁ INFORMATYKI
ZARZĄDZANIE I INŻUNIERIA PRODUKCJI
LABORATORIUM 3
TRANSFORMACJE
Wykonał:
Xxx
Zip-20
Na naszych trzecich laboratoriach mieliśmy w planie zająć się następującymi zadaniami:
Narysować prosty obiekt w programie graficznym.
Opisać obiekt za pomocą współrzędnych
Napisać program, który dokonuje transformacji współrzędnych obiektu wykorzystując macierze transformacji albo inną funkcję.
Dokonać złożenia przesunięcia i obrotu w różnych kolejnościach. Opisać, czym różnią się wyniki i podać graficzną interpretacje złożeni.
Tym razem była licencja na MatLaba co wszystkich bardzo zdziwiło i tym razem mogliśmy popracować w uczelnianej pracowni.
Oto obrazki, które wybrałem do wykonania zadani:
ZADANIE 1.
Narysowałem w „paintcie” domek.
Obrazek wynikowy.
ZADANIE 2
Współrzędne wierzchołków:
X |
95 |
403 |
403 |
364 |
364 |
335 |
335 |
250 |
95 |
95 |
Y |
356 |
356 |
143 |
118 |
22 |
22 |
98 |
41 |
143 |
356 |
ZADANIE 3
Obrazek wynikowy.
ZADANIE 4
Obrazki wynikowe.
KODY:
Zadanie 2
x=[95 403 403 364 364 335 335 250 95 95];
y=[356 356 143 118 22 22 98 41 143 356];
Zadanie 3
obrot=(360*pi)/180;
xObrot = cos(obrot)*x + -sin(obrot)*y;
yObrot = sin(obrot)*x + -cos(obrot)*y;
plot(xObrot,yObrot);
Zadanie 4
obrot=(360*pi)/180;
obrot2=(120*pi)/180;
xObrot = cos(obrot)*x + -sin(obrot)*y;
yObrot = sin(obrot)*x + -cos(obrot)*y;
xObrot2 = cos(obrot)*x + -sin(obrot)*y;
yObrot2 = sin(obrot)*x + -cos(obrot)*y;
px = 670;
py = 256;
px1 = 120;
py1 = 333;
x1 = x1 + px;
x2 = x2 + px1;
y1 = y1 + py;
y2 = y2 + py1;
figure(1);
plot(x1,y1);
plot(x,y);
plot(x1,y1);
figure(2);
plot(x2,y2);
WNIOSKI:
Do zadania 3:
W tym zadaniu użyłem funkcji jakie oferował mi MatLab. Próbowałem nad transformacją macierzową ale nie potrafiłem nic sensownego wymyślić ponieważ brak mi doświadczenia w pracy z MatLabem.
Do zadania 4:
W tym zadaniu najpierw dokonałem transformacji kąta a następnie przesunąłem. Niestety nie mam pojęcia dlaczego „ucięło” mi jedną linie. Specjalnie wyświetliłem sobie znowu cały obrazek bez transformacji i wszystko się zgadzało. Po transformacji linia znika. Zapewne mam błąd w kodzie i dlatego linia mi znika. Niestety nie wiem co jest nie tak.