Lec6 – Transformasi 2D

Download Report

Transcript Lec6 – Transformasi 2D

Transformasi
 Transformasi adalah perubahan posisi suatu objek ke posisi lain atau
perubahan bentuk suatu objek ke objek lain menurut suatu aturan
tertentu
 Transformasi banyak digunakan untuk menggambar suatu objek
dengan bentuk bentuk lain objek simetris dan untuk keperluan
animasi
Jenis Transformasi
 Jenis transformasi :
- Transformasi objek
Semua titik pada suatu objek akan diubah dengan aturan tertentu,
sistem koordinat tetap
- Transformasi sistem koordinat
Objek tetap, tapi sistem koordinatnya berubah sehingga posisi objek
mengalami penyesuaian
Transformasi dasar
 Beberapa transformasi dasar :
 Translation (Penggeseran )
 Scaling (penskalaan)
 Rotation (Pemutaran)
Translasi
 Penggeseran dilakukan dengan penambahan posisi
awal dengan translasion vektor atau shift vektor
(trx,try)
trx = pergeseran arah sumbu x (absis)
try = pergeseran arah sumbu y (ordinat)
Koordinat baru hasil translasi secara sederhana dapat ditulis sbg:
x’ = x+ trx
y’ = y+ try
dimana x’,y’ merupakan koordinat hasil translasi
x dan y adalah koordinat awal
trx,try adalah vektor tranlasi
Objek Translasi
Contoh translasi
Untuk menggambarkan translasi suatu objek yang berupa segitiga den
gan koordinat A(10,10), B(30,10), dan C(10,30) dengan translation vector
(10,20), pertama tama dihitung koordinat hasil translasi
Titik A
x’A = xA + trx = 10+10 = 20
y’A = yA + try = 10+20 = 30
Hasil translasi titik A’(20,30)
Titik B
x’B = xB + trx = 30+10 = 40
y’B = yB + try = 10+20 = 30
Hasil translasi titik B’(40,30)
Titik C
x’C = xC + trx = 10+10 = 20
y’C = yC + try = 30+20 = 50
Hasil translasi titik C’(20,50)
Contoh program
int poly[8];
void translasi (int Trx,int Try);
void setgrafis();
void main() {
setgrafis();
poly[0]=10; poly[1]=10;
//A
poly[2]=30; poly[3]=10; //B
poly[4]=10; poly[5]=30; //C
poly[6]=10; poly[7]=10; //A
drawpoly(4,poly);
getch();
translasi(10,20);
cleardevice();
drawpoly (4,poly);
getch();
closegraph();
}
void translasi(int Trx,int Try) {
for (int i=0;i<8;i+=2) {
poly[i]=poly[i]+Trx;
poly[i+1]=poly[i+1]+Try;
}
}
Scaling
 Melakukan perubahan terhadap ukuran suatu objek, apakah
diperbesar atau diperkecil
 Penskalaan dilakukan dengan perkalian antara posisi awal dengan
scaling factor(Sx,Sy)
 Titik hasil scaling dapat ditentukan dengan :
x’ = x.Sx
y’ = y.Sy
dimana x dan y adalah koordinat awal
x’ dan y’ koordinat hasil scaling
Sx dan Sy adalah scaling faktor
Objek Scaling
Mengubah bujursangkar menjadi persegi
panjang dengan menggunakan faktor skala
Sx=2 dan Sy=1
Contoh penskalaan
Untuk menggambarkan skala suatu objek yang merupakan segiempat dengan koo
rdinat A(10,10), B(30,10), C(30,20), D(10,20) diskala dengan scaling factor(3,2)
Titik A
x’A = xA.sx= 10* 3 =30
y’A = yA.sy= 10 * 2=20
Hasil skala titik A’(30,20)
Titik B
x’B = xB.sx= 30* 3 =90
y’B = yB.sy= 10 * 2=20
Hasil skala titik B’(90,20)
Titik C
x’C = xC.sx= 30* 3 =90
y’C = yC.sy= 20 * 2=40
Hasil skala titik C’(90,40)
Titik D
x’D = xD.sx= 10* 3 =30
y’D = yD.sy= 20 * 2=40
Hasil skala titik D’(30,40)
Fixed point scaling
 Lokasi skala suatu objek dapat dikontrol dengan menentukan titik
tertentu yang disebut fixed point
 Koordinat fixed point dapat terletak pada sembarang posisi
 Polygon kemudian diskala relatif terhadap fixed point dengan
melakukan skala jarak dari tiap titik terhadap fixed point
 Untuk titik dengan koordinat (x,y) diperoleh (x’,y’) sebagai skala
x’=xf+(x-xf)Sx
y’=yf+(y-yf)Sy
xf dan yf = fixed point
Fixed point scaling
Penskalaan relatif terhadap titik fixed point yg
dipilih(xf,yf). Jarak antara tiap sudut poligon
terhadap fixed point diskala dengan menggunakan
persamaan transformasi
Rotasi
 Memindahkan sebuah objek menurut garis melingkar
 Untuk melakukan rotasi diperlukan sudut rotasi a dan pivot point(xp,yp)
 Nilai sudut rotasi positif menentukan arah rotasi berlawanan dengan arah
jarum jam sedangkan sudut rotasi negatif memutar objek searah jarum jam
 Untuk melakukan rotasi dengan koordinat titik asal (x,y) dengan sudut rotasi a
adl:
x’= x cos a – y sin a
y’= y sin a + y cos a
 Untuk rotasi dengan sembarang pivot point (xp,yp):
x’= xp + (x-xp) cos a - (y-yp) sin a
y’= yp + (x-xp) sin a + (y-yp)cos a
Objek rotasi
Rotasi sebuah objek dengan sudut θ
terhadap pivot point
Rotasi sebuah titik dari posisi (x,y) ke
posisi (x’,y’) dengan sudut θ relatif
terhadap koordinat asal
Contoh rotasi
Untuk menggambarkan rotasi suatu objek yang berupa segitiga dengan koordinat A(10,10),
B(30,10), dan C(10,30) dengan sudut rotasi 30’ terhadap titik pusat koordinat Cartesian
(10,10), dilakukan dengan menghitung koordinat hasil rotasi tiap titik satu demi satu.
Titik A
x’A = xp+(xA-xp) cos 30’ – (yA-yp)sin 30’
=10+(10-10)* 0.9 –(10-10) *0.5 = 10
y’A = yp+(xA-xp) sin 30’ + (yA-yp)cos 30’
=10+(10-10)*0.5 +(10-10)*0.9= 10
Hasil rotasi titik A(10,10)
Titik B
x’B = xp+(xB-xp) cos 30’ – (yB-yp)sin 30’
=10+(30-10)* 0.9 –(10-10) *0.5 = 28
y’B = yp+(xB-xp) sin 30’ + (yB-yp)cos 30’
=10+(30- 10)*0.5 +(10-10)* 0.9=20
Hasil rotasi titik B(28,20)
)
Titik C
x’C = xp+(xC - xp) cos 30’ – (yC- yp)sin 30’
=10+(10 - 10)* 0.9 – (30- 10) *0.5=0
y’C = yp+(xC - xp) sin 30’ + (yC - yp)cos 30’
=10+(10 - 10)*0.5 + (30- 10)*0.9=28
Hasil rotasi titik C(0,28)
Transformasi Affine
 Operasi transformasi dapat dikerjakan dengan menggunakan matriks
transformasi , seperti yang dikenalkan pada transformasi affine :
 Translasi
Q=PM+tr
maka hasil penggeseran dinyatakan sebagai :
Qx ,Qy = Px + trx , Py + try
dengan M sebagai matriks identitas
atau
 ab 
( Qx , Qy )  ( px , py )    ( trx , try )
 cd 
dengan a,b,c,d dapat ditentukan dengan nilai
10 
 
 01 
Transformasi Affine
 Scaling
 Sx 0 
( Qx , Qy )  ( Px , Py ) 

0
Sy


 Rotasi
 cos(  ) sin(  ) 
( Qx , Qy )  ( Px , Py ) 

sin(

)
cos(

)


contoh
 Titik A(10,10) dengan vektor translasi trx=3 dan try=2
tentukan titik hasil translasi:
= (10 ,10 ) 1 0   ( 3, 2 )
 0 1
= (10.1+10.0 , 10.0+10.1) + (3,2)
A’ = (13,12)
Sistem koordinat homogen
 Sistem koordinat homogen adalah sistem koordinat
yang lebih tinggi dimensinya 1 tingkat dari koordinat
yang ditinjau
 Penggunaan sistem koordinat homogen agar
transformasi affine dapat diterapkan menurut
perkalian matriks secara seragam
 Sistem koordinat homogen dari 2D adalah 3D
Sistem koordinat homogen
 bentuk matriks transformasi untuk sistem koordinat homogen:
 Translasi
a b 
( Qx , Qy )  ( px , py ) 
  ( trx , try )
c
d


a b 0 


( Qx , Qy )  ( px , py ) c d 0  ( trx , try )


 0 0 1 
trx dan try dapat disisipkan dalam matriks
a b 0 


( Qx , Qy )  ( px , py ) c d 0


 trx try 1 
Sistem koordinat homogen
 Scaling
 Sx 0 0 


Ms  0 Sy 0


 0 0 1
 Rotation
 cos(  ) sin(  ) 0 


Mr  - sin(  ) cos(  ) 0


 0
0
1 
contoh
Titik A(10,10) dengan vektor translasi trx=3 dan try=2
tentukan titik hasil translasi:
A(10,10)  A(10,10,1)
=
1 0 0 


(10 ,10 ,1) 0 1 0


 3 2 1 
= (10.1+10.0+1.3, 10.0+10.1+1.2, 1)
= (13,12,1)  (13,12)
contoh
 diketahui titik p dengan koordinat (4,3),akan dilakukan transformasi
sebagai berikut:
- diputar dengan sudut putar 30°
- digeser sejauh (8,6), dan
- diperbesar 2 kali kearah sumbu x dan y
0.500
 0.866

- 0.500 0.866

 0
0
0  1 0 0   2 0 0  1 . 733 1
 
 
 
0  0 1 0  0 2 0  -1
1.733
 
 
 
1   8 6 1   0 0 1  16
12
1 . 733 1

( 4 ,3 ,1) - 1
1.733

16
12
P’ = (19.933, 21.199)
0

0

1 
0

0

1 
Transformasi lainnya
 Shearing (pembebanan)
proses transformasi dengan membebani objek terhadap arah tertentu
sehingga dihasilkan suatu objek yang terdistorsi
shearing
 proses shearing dapat dilakukan terhadap sumbu x maupun sumbu y
 Proses shearing kearah sumbu x dan y dapat dinyatakan:
Qx = Px+hPy
Qy = gPx+Py
dimana g: bagian absis yg ditambahkan ke ordinat
h:bagian ordinat yg ditambahkan ke absis
Matriks transformasi
1 g 
Msh  

 h 1
Matriks pada koordinat homogen
1 g 0 


Msh  h 1 0


 0 0 1 
Transformasi lainnya
 Reflection(pemantulan)
transformasi yang menghasilkan pemantulan dari sebuah objek
mirror image dari objek 2D dihasilkan relatif terhadap sumbu refleksi
dengan memutar objek 180° terhadap sumbu tersebut
Refleksi objek terhadap
sumbu x
Refleksi objek terhadap
sumbu y
Reflection
 Matriks refleksi terhadap sumbu x
1 0 0 


Mrf  0 - 1 0


 0 0 1
 Matriks refleksi terhadap sumbu y
- 1 0 0 


Mrf  0 1 0


 0 0 1 
 Matriks refleksi terhadap sumbu xy
- 1 0 0 


Mrf  0 - 1 0


 0 0 1 
Bahan lanjut
 MID TEST