transformasi 2d
Post on 03-Jan-2016
213 Views
Preview:
DESCRIPTION
TRANSCRIPT
TransformasiTransformasi 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 dasarBeberapa transformasi dasar : Translation (Penggeseran ) Scaling (penskalaan) Rotation (Pemutaran)
TranslasiPenggeseran 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+ trxy’ = 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 dengan koordinat A(10,10), B(30,10), dan C(10,30) dengan translation vector (10,20), pertama tama dihitung koordinat hasil translasi
Titik Ax’A = xA + trx = 10+10 = 20y’A = yA + try = 10+20 = 30Hasil translasi titik A’(20,30)Titik Bx’B = xB + trx = 30+10 = 40y’B = yB + try = 10+20 = 30Hasil translasi titik B’(40,30)Titik Cx’C = xC + trx = 10+10 = 20y’C = yC + try = 30+20 = 50Hasil translasi titik C’(20,50)
Contoh programint poly[8];void translasi (int Trx,int Try);void setgrafis();
void main() {setgrafis();poly[0]=10; poly[1]=10; //Apoly[2]=30; poly[3]=10; //Bpoly[4]=10; poly[5]=30; //Cpoly[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;}}
ScalingMelakukan perubahan terhadap ukuran suatu objek,
apakah diperbesar atau diperkecilPenskalaan 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 penskalaanUntuk menggambarkan skala suatu objek yang merupakan segiempa
t dengan koordinat A(10,10), B(30,10), C(30,20), D(10,20) diskala dengan scaling factor(3,2)
Titik Ax’A = xA.sx= 10* 3 =30y’A = yA.sy= 10 * 2=20Hasil skala titik A’(30,20)Titik Bx’B = xB.sx= 30* 3 =90y’B = yB.sy= 10 * 2=20Hasil skala titik B’(90,20)Titik Cx’C = xC.sx= 30* 3 =90y’C = yC.sy= 20 * 2=40Hasil skala titik C’(90,40)Titik Dx’D = xD.sx= 10* 3 =30y’D = yD.sy= 20 * 2=40
Hasil skala titik D’(30,40)
Fixed point scalingLokasi skala suatu objek dapat dikontrol dengan
menentukan titik tertentu yang disebut fixed pointKoordinat fixed point dapat terletak pada sembarang posisiPolygon 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 rotasiUntuk menggambarkan rotasi suatu objek yang berupa segitiga dengan koordinat A(1
0,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 Ax’A = xp+(xA-xp) cos 30’ – (yA-yp)sin 30’=10+(10-10)* 0.9 –(10-10) *0.5 = 10y’A = yp+(xA-xp) sin 30’ + (yA-yp)cos 30’=10+(10-10)*0.5 +(10-10)*0.9= 10Hasil rotasi titik A(10,10)
Titik Bx’B = xp+(xB-xp) cos 30’ – (yB-yp)sin 30’=10+(30-10)* 0.9 –(10-10) *0.5 = 28y’B = yp+(xB-xp) sin 30’ + (yB-yp)cos 30’=10+(30- 10)*0.5 +(10-10)* 0.9=20Hasil rotasi titik B(28,20))
Titik Cx’C = xp+(xC - xp) cos 30’ – (yC- yp)sin 30’=10+(10 - 10)* 0.9 – (30- 10) *0.5=0y’C = yp+(xC - xp) sin 30’ + (yC - yp)cos 30’=10+(10 - 10)*0.5 + (30- 10)*0.9=28Hasil rotasi titik C(0,28)
Transformasi AffineOperasi 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 dengan a,b,c,d dapat ditentukan dengan nilai
),(),(),( trytrxcd
abpypxQyQx
01
10
Transformasi AffineScaling Rotasi
Sy 0
0Sx ),(),( PyPxQyQx
)cos( )sin(-
)sin( )cos(),(),(
PyPxQyQx
contohTitik A(10,10) dengan vektor translasi trx=3
dan try=2 tentukan titik hasil translasi: =
= (10.1+10.0 , 10.0+10.1) + (3,2) A’ = (13,12)
)2,3(1 0
0 1)10,10(
Sistem koordinat homogenSistem 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 homogenbentuk matriks transformasi untuk sistem koordinat
homogen:Translasi
trx dan try dapat disisipkan dalam matriks
),(d c
b a),(),( trytrxpypxQyQx
),(
1 0 0
0 d c
0 b a
),(),( trytrxpypxQyQx
1trx try
0 d c
0 b a
),(),( pypxQyQx
Sistem koordinat homogenScaling
Rotation
1 0 0
0Sy 0
0 0Sx
Ms
1 0 0
0 )cos( )sin(-
0 )sin( )cos(
Mr
contohTitik A(10,10) dengan vektor translasi trx=3
dan try=2 tentukan titik hasil translasi:A(10,10) A(10,10,1)
=
= (10.1+10.0+1.3, 10.0+10.1+1.2, 1)= (13,12,1) (13,12)
1 2 3
0 1 0
0 0 1
)1,10,10(
contohdiketahui 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
P’ = (19.933, 21.199)
1 12 16
0 1.733 1-
0 1 733.1
1 0 0
0 2 0
0 0 2
1 6 8
0 1 0
0 0 1
1 0 0
0 0.866 0.500-
0 0.500 0.866
1 12 16
0 1.733 1-
0 1 733.1
)1,3,4(
Transformasi lainnyaShearing (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 absisMatriks transformasi
Matriks pada koordinat homogen
1h
g 1Msh
1 0 0
0 1h
0 g 1
Msh
Transformasi lainnyaReflection(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 y
Refleksi objek terhadap sumbu x
Reflection Matriks refleksi terhadap sumbu x
Matriks refleksi terhadap sumbu y
Matriks refleksi terhadap sumbu xy
1 0 0
0 1- 0
0 0 1
Mrf
1 0 0
0 1 0
0 0 1-
Mrf
1 0 0
0 1- 0
0 0 1-
Mrf
Bahan lanjutMID TEST
top related