TRANSFORMASI 2D (ROTASI)
Oleh:
FACHRI YANUAR RUDI F, MT.
i
HALAMAN PENGESAHAN INSTITUS I
TRANSFORMAS1 2D (ROTASI)
Kegiatan Pengembangan Jobsheet ini Dibiayai dengan Sumber Dana DIPA Politeknik
NegCri Lhokseumawe 4“ahun Anggaran 2020
Mengetahui,
An. Ketua Jurusan Penulis,
Teknologi Informasi dan Komputer
Sekretaris
Mengetahui / Mengesahkan:
Wakil Direktur Bidang Akadeinik,
Keinahasiswaan dan Alumni
Joliteknik Negeri Lhokseuinawe
‹r,
HALAMAN PENGESAHAN REVIEWER
Telah memenuhi syarat-syarat penulisan Jobsheet yang dibiayai dengan sumber dana
DIPA Politeknik Negeri Lhokseumawe Tahun Anggaran 2020
Reviewer :
Mengetahui, Menyetujui,
Kepala Pusat Pengeirbangan Ketua Departeiren Pendidikan dan
Pembelajaran dan Penjaininan Mutu Pengeinbang eirbelajaran.
MT
196212011989021001 NIP. 41 1002
Ill
LABORATORIUM : KEAMANAN JARINGAN DAN CLOUD COMPUTING
POLITEKNIK NEGERI LHOKSEUMAWE PENGUJIAN : TRANSFORMASI 2 DIMENSI (ROTASI)
I. Capaian Praktikum
Capaian yang diinginkan dalam praktikum ini adalah:
1. Mahasiswa mampu membuat struktur data titik dan vektor
2. Mahasiswa mampu membuat prosedur konversi diantara titik dan vektor dan
sebaliknya diantara vektor dan titik
3. Mahasiswa mampu membuat macam – macam prosedur transformasi : refleksi,
rotasi, dua dimensi
4. Mahasiswa mampu mengaplikasikan matrik transformasi pada objek dua
dimensi
5. Mahasiswa mampu melakukan komposisi transformasi
1
III. Teori
a. Refleksi
Jika faktor skala yang diberikan pada scalling bernilai negatif maka gambar
dikatakan di refleksi tehadap koordinat axis. Persamaan refleksi ditulis seperti
persamaan (1).
(1)
b. Rotasi
Rotasi adalah perpindahan obyek dari titik P(x,y) ke titik P’(x’,y’), yang berupa
pemindahan berputar sebesar sudut dapat digambarkan pada gambar 2 dan persamaan
rotasi dituliskan pada persamaan (2).
y
P’(x’,y’)
P(x,y)
V. Prosedur Praktikum
a. Transformasi 2 dimensi 5.A (Refleksi)
1. Buat Project pada Microsoft Visual Studio C++ dengan nama Project 5A,
kemudian add file pada project dan beri nama file proj5A.cpp dengan langkah-
langkah pembuatan project dan file seperti yang telah dijelaskan pada Modul 1.
2. Source code yang digunakan sama seperti pada modul 4, hanya fungsi
userdraw yang diubah menjadi:
1. void userdraw(void)
2. {
3. static int tick = 0;
4. point2D_t ef[10] =
{{10,100},{10,10},{30,10},{30,40},{60,40},{60,60},{30,60},{30,80}
,{70,80},{70,100}};
5. vector2D_t vec[10];
6. matrix2D_t refxaxis, refyaxis, reforg;
7.
8. //operasi matrix refleksi
9. point2D_t buff[10]; //obj f temporary refleksi
10. int i, loop;
11.
12. setColor(0,0,0);
13. drawAxes();
14.
15. setColor(0,0,0);
16. drawPolygon(ef, 10);
17. glutSetWindowTitle("Reflection F");
18. refxaxis = scalingMTX(1.,-1.);
19. refyaxis =scalingMTX(-1.,1.);
20. reforg = scalingMTX(-1.,-1.);
21.
22. for (i = 0; i < 10; i++)
23. {
24. //refleksi sb x
25. vec[i] = Point2Vector(ef[i]);
26. vec[i] = multiply(refxaxis, vec[i]);
27. buff[i] = Vector2Point(vec[i]);
28. }
29. drawPolygon(buff,10);//gambar f stlh translasi
30.
31. for (i = 0; i < 10; i++)
32. {
33. //refleksi sb y
34. vec[i] = Point2Vector(ef[i]);
35. vec[i] = multiply(refyaxis, vec[i]);
36. buff[i] = Vector2Point(vec[i]);
37. }
38. drawPolygon(buff,10);//gambar f stlh translasi
39.
40. for (i = 0; i < 10; i++)
41. {
42. //refleksi sb x & y
43. vec[i] = Point2Vector(ef[i]);
44. vec[i] = multiply(reforg, vec[i]);
45. buff[i] = Vector2Point(vec[i]);
46. }
47. drawPolygon(buff,10);//gambar f stlh translasi
48. }
1. void userdraw(void)
2. {
3. static int tick = 0;
4. point2D_t ef[10] =
{{10,100},{10,10},{30,10},{30,40},{60,40},{60,60},{30,60},
{30,80},{70,80},{70,100}};
5. vector2D_t vec[10];
6. matrix2D_t rotate;
7.
8. int i, loop;
9.
10. setColor(0,0,0);
11. drawAxes();
12.
13. setColor(0,0,0);
14. drawPolygon(ef, 10);
15. glutSetWindowTitle("Rotasi F");
16.
17. rotate = rotationMTX(1.);
18.
19. for (loop = 0; loop < 4; loop++)
20. {
21. for (i = 0; i < 10; i++)
22. {
23. vec[i] = Point2Vector(ef[i]);
24. vec[i] = multiply(rotate, vec[i]);
25. ef[i] = Vector2Point(vec[i]);
26. }
27. drawPolygon(ef,10);//gambar f stlh translasi
28. }
29. tick++;
30. }
dimana r 㤱㐠 adalah sudut dalam radian dan 㐠 th adalah sudut dalam derajat.
r 㤱㐠 = 㐠 th ā n/18 (3)