BAB-7 TRANSFORMASI 2D
Kita dapat melakukan transformasi terhadap objek, pada materi ini akan dibahas transformasi 2D yaitu translasi, skala, rotasi.
By: I Gusti Ngurah Suryantara, S.Kom., M.Kom
7.1. PENDAHULUAN
Transformasi merupakan suatu metode untuk mengubah lokasi suatu titik pembentuk objek, sehingga objek tersebut mengalami perubahan. Perubahan objek dengan mengubah koordinat dan ukuran suatu objek disebut dengan transformasi geometri. Pada materi kali ini kita akan membahas transformasi dasar, matriks transformasi, transformasi lain.
7.2. TRANSFORMASI DASAR
Dalam transformasi dasar pada 2D yang akan kita bahas adalah: translasi, skala, dan rotasi.
7.2.1. Translasi
Translasi berarti memindahkan objek sepanjang garis lurus dari suatu lokasi koordinat tertentu kelokasi yang lain tanpa mengubah bentuk objek. Bila suatu objek terbentuk dari beberapa titik maka bila melakukan translasi akan dikenakan terhadap setiap titik pembentuk objek tersebut. Untuk melakukan translasi dapat menggunakan rumus:
x’ = x + tx y’ = y + ty
atau dapat juga dilakukan dengan transofrmasi affine yang menggunakan matrik identitas yaitu:
1 0 M =
0 1
Menjadi:
(Qx, Qy) = (Px + trx, Py + try)
Setiap titik akan digeser sejauh trx dalam sumbu x dan try dalam sumbu y.
Contoh:
Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan transformasi vector (10,20) lakukan trnslasi terhadap objek segitiga tersebut:
Titik A
x’A = xA + tx y’A = yA + ty
= 10 + 10 = 10 + 20
= 20 = 30
A’(20,30) Titik B
x’B = xB + tx y’B = yB + ty
= 30 + 10 = 10 + 10
= 40 = 20
B’(40,20) Titik C
x’C = xC + tx y’C = yC + ty
= 10 + 10 = 30 + 20
= 20 = 50
C’(20,50)
Gambar 7.1. Translasi sebuah segitiga dari suatu posis ke posisi yang lain
7.2.2.Skala
Skala digunakan untuk mengubah ukuran suatu objek, bila pada translasi operasi yang digunakan adalah penjumlahan sedangkan pada skala operasi yang digunakan adalah perkalian. Untuk melakukan skala dapat menggunakan rumus:
x’ = x * tx
y’ = y * ty
sx dan sy merupakan nilai dari scaling factor terhadap sumbu x dan sumbu y. Bila menggunakan transformasi affin matriknya adalah:
Sx 0 M =
0 Sy Menjadi:
(Qx, Qy) = (Px * Sx, Py * Sy)
Contoh:
Diketahui objek segitiga dengan titik A(10,10), B(30,10), C(10,30) di skala dengan scaling factor (3,2).
Titik A
x’A = xA * tx y’A = yA * ty
= 10 * 3 = 10 * 2
= 30 = 20
A’(30,20) Titik B
x’B = xB * tx y’B = yB * ty
= 30 * 3 = 10 * 2
= 90 = 20
B’(90,20) Titik C
x’C = xC * tx y’C = yC * ty
= 10 * 3 = 30 * 2
= 30 = 60
C’(30,60)
Gambar Asal Gambar Hasil... ?
Gambar 7.2. Skala pada objek segitiga
7.2.3.Rotasi
Rotasi merupakan pemutaran terhadap suatu objek, rotasi dapat dinyatakan dalam bentuk matriks. Nilai matriks untuk melakukan rotasi adalah:
Cos
ө
-Sinө
R =
Sin
ө
Cosө
Rotasi suatu titik terhadap pivot point (xp, yp) menggunakan bentuk trigonometri, secara umum dapat ditulis sebagi berikut:
X’ = Xp + (X – Xp) Cos
ө
- (Y- Yp) Sinө
Y’ = Yp + (Y – Yp) Sin
ө
+ (Y – Yp) Cosө
Contoh:
Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan sudut rotasi 300 terhadap titik pusat koordinat cartesian (10,10).
Jawab
Titik A X’A = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (10 -10) * 0.9 – (10-10) * 0.5
= 10
Y’A = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (10 – 10) * 0.5 + (10 – 10) * 0.9
= 10 A’(10,10)
Titik B X’B = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (30 -10) * 0.9 – (10-10) * 0.5
= 28
Y’B = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (30 – 10) * 0.5 + (10 – 10) * 0.9
= 20 B’(28,20)
Titik C X’C = Xp + (XA – Xp)Cos 300 – (YA- YP)Sin 300
= 10 + (10 -10) * 0.9 – (30-10) * 0.5
= 0
Y’C = YP + (XA – XP)Sin 300 + (YA – YP)Cos 300
= 10 + (10 – 10) * 0.5 + (30 – 10) * 0.9
= 28 C’(0,28)
Gambar Asal Gambar Hasil ....?
Gambar 7.3. Rotasi objek segitiga dengan sudut rotasi 300
7.3. MATRIK TRANSFORMASI
Dalam matrik transformasi ini kita akan membahas jenis transformasi homogenius dan komposit transformasi.
7.3.1. Transformasi Homogenius
Transforamsi juga dapat dilakukan dengan menggunakan matrik transformasi yang menggabungkan translasi, skala dan rotasi kedalam satu model matrik yang disebut dengan transformasi homogenius. Keuntungan yang didapat dari transformasi homogenius adalah kita tidak perlu membuat prosedur yang khusus terhadap jenis transforamsi akan tetapi cukup dengan malakukan perkalian matrik. Matrik transformasi homogenius seperti berikut:
Translasi:
1 0 Trx
M = 0 1 Try 0 0 1 Skala:
Sx 0 0 M = 0 Sy 0 0 0 1 Rotasi:
Cos
ө
-Sinө
0M = Sin
ө
Cosө
00 0 1
Transformasi dilakukan dengan cara:
[X’ Y’ 1] = [X Y 1] * M
7.3.2. Komposit Transformasi Matrik
Setiap sekuen dari transformasi dapat dibuat sebagai composite transformastion matrix dengan menghitung produk matrik transformasi masing-masing. Kolom menggambarkan posisi koordinat, composite transformation diperoleh dengan melakukan perkalian matrik dari kanan ke kiri.
Translasi
Bila dua transformasi vektor (tx1, ty1) dan (tx2, ty2) digunakan pada koordinat posisi P, maka lokasi trasformasi akhir P’ dapat diditung:
P’ = T( tx2, ty2 ) . | T( tx1, ty1 ). P | = | T (tx2, ty2 ). T( tx1, ty1 ) | . P
Dimana P dan P’ merupakan koordinat homogen vektor kolom, maka perhitungan perkalian kedua matrik dapat diperoleh. Composit transformation matrix untuk translasi adalah:
1 0 tx1 1 0 tx2 1 0 tx1 + tx2 0 1 ty1 . 0 1 ty2 = 0 1 ty1 + ty2
0 0 1 0 0 1 0 0 1
Atau
T(tx2, ty2) . T(tx1, ty1) = T(tx1 + tx2, ty1 + ty2)
Skala
Bila dua faktor skala (Sx1, Sy1) dan (Sx2, Sy2) digunakan pada suatu objek, maka composite transformation matrix menjadi:
Sx1 0 0 Sx1 0 0 Sx1.Sx2 0 0 0 Sy2 0 . 0 Sy1 0 = 0 Sy1.Sy2 0 0 0 1 0 0 1 0 0 1
Atau
S(Sx2, Sy2) . S(Sx1, Sy1) = T(Sx1 + Sx2, Sy1 + Sy2)
Rotasi
Bila rotasi terhadap titik P dilakukan dua kali dengan sudut
ө
1 danө
2, maka koordinat titik P dapat diperoleh dengan:P’ = R(
ө
2) . | R(ө
1) . P |= | R(
ө
2) . R(ө
1) | .PDengan melakukan kedua perkalian matrik rotasi, maka diperoleh bentuk tambahan:
R(
ө
2). R(ө
1) = R(ө
1 +ө
2)Sehingga koordinat rotasi terakhir diperoleh dengan:
P’ = R(
ө
1+ө
2) . PSkala Menurut Arah Tertentu
Parameter Sx dan Sy digunakan untuk skala menurut arah sumbu x dan y. Skala dapat dilakukan menurut sumbu yang diputar yaitu S1 dan S2 seperti pada Gambar 4.4 dapat dilakukan dengan matrik.
S1Cos2
ө
+ S2Sin2ө
(S2 – S1)Cosө
Sinө
0(S2 – S1)Cos
ө
Sinө
S1Sin2ө
+ S2Cos2ө
00 0 1
Contoh:
Sebuah objek segiempat dengan titik A(0,0), B(2,0), C(2,2) dan D(0,2) diskala dengan parameter
ө
= 450, S1=1 dan S2=2.X’ S1Cos2
ө
+ S2Sin2ө
(S2 – S1)Cosө
Sinө
0 X Y’ = (S2 – S1)Cosө
Sinө
S1Sin2ө
+ S2 Cos2ө
0 . Y1 0 0 1 1
1. ½ + 2. ½ (2-1) . ½ 0 X
= (2-1) . ½ 1. ½ +2 . ½ 0 . Y
0 0 1 1
1½ ½ 0 X
= ½ 1½ 0 . Y
0 0 1 1
X’ = 1,5 * X + ½ * Y Y’ = ½ * X + 1,5 * Y
Titik A
X’A = 1,5 * 0 + 0,5 * 0 = 0 Y’A = 0,5 * 0 + 1,5 * 0 = 0 A’(0,0)
Titik B
X’B = 1,5 * 0 + 0,5 * 0 = 3 Y’B = 0,5 * 2 + 1,5 * 0 = 1 B’(3,1)
Titik C
X’C = 1,5 * 2 + 0,5 * 2 = 4 Y’C = 0,5 * 2 + 1,5 * 2 = 4 C’(4,4)
Titik D
X’D = 1,5 * 0 + 0,5 * 2 = 1 Y’D = 0,5 * 0 + 1,5 * 2 = 3 D’(1,3)
Gambar 7.4. Objek segiempat yang dikenaka sekala menurut arah tertentu
7.4. TRANSFORMASI LAIN
Selain transforamsi dasar yang sudah kita bahas, bentuk tansformasi lain adalah refleksi (pencerminan) dan Shear.
7.4.1. Refleksi
Refleks adalah transformasi yang membuat mirror dari suatu objek. Sumbu refleksi dapat dipilih pada bidang xy. Refleksi terhadap garis y=0, yaitu sumbu x dapat dinyatakan dengan matrik.
1 0 0
0 -1 0
0 0 1
Gambar 7.5 memperlihatkan refleksi terhadap sumbu x.
Y
C
Objek asli A B
0 X
A’ B’
Setelah direfleksi C’
Gambar 7.5 Refleksi terhadap sumbu x
Refleksi terhadap sumbu y membalikkan koordinat dengan nilai y tetap. Matrik transformasi dapat dinyatakan dengan:
-1 0 0
0 1 0
0 0 1
Gambar 7.6 menunjukkan suatu objek yang direfleksi terhadap sumbu y atau garis x=0.
Y
C’ C
Setelah direfleksi Objek asli B’ A’ A B
X 0
Gambar 7.6 Refleksi terhadap sumbu y
Refleksi terhadap sumbu x dan y sekaligus dilakukan dengan pertama-tama direfleksi terhadap sumbu x. Hasilnya kemudian direfleksi terhadap sumbu y, hal ini sama dengan memutar objek 1800. Transformasi ini dapat dinyatakan dalam bentuk matrik:
-1 0 0
0 -1 0
0 0 1
Y
C
Objek asli A B
X 0
B’ A’
Objek setelah direfleksi
C’
Gambar 7.7 Refleksi terhadap axis x dan y
Refleksi suatu objek terhadap garis y = x seperti pada Gambar 7.8 dapat dilakukan dalam bentuk matriks sebagai berikut:
0 1 0
1 0 0
0 0 1
Y
B’ Y = X
Objek setelah direfleksi
A’ C’
C
Objek asli A B
X
0
Gambar 7.8 Refleksiterhadap garis y = x
Refleksi suatu objek terhadap garis y = -x seperti pada gambar 4.9 dapat dinyatakan dalam bentuk matriks sebagai berikut:
0 -1 0
-1 0 0
0 0 1
Y
Y = -X C
Objek asli
A B
B’ A’
Objek setelah direfleksi
C’
X
0
Gambar 7.9 Refleksiterhadap garis y = x
7.4.2. Shear
Shear merupakan bentuk transformasi yang membuat distorsi dari bentuk suatu objek.
Seperti menggeser sisi tertentu. Dua shear yang umum adalah shear menurut sumbu x, dan shear terhadap sumbu y. Matriks transformasi shear terhadap sumbu x:
1 shx 0
0 1 0
0 0 1
Dengan koordinat transformasi X’ = X + shx .Y , Y’ = Y
Y Y
D(0,1) C(1,1) D’(2,1) C’(3,1 )
X X
A(0,0) B(1,0) A’(0,0) B’(1,0)
Gambar 7.10 Shear terhadap sumbu x dengan nilai shx=2
Paramter shx dapat dinyatakan dengan sembarang nilai, posisi koordinat digeser menurut arah horisontal. Pada Gambar 7.10 nilai shx adalah 2.
Shear juga dapat dilakukan menurut garis tertentu yang sejajar dengan sumbu x dengan bentuk matrik:
1 shx -shx . yref
0 1 0
0 0 1
Dengan posisi koordinat transformasi X’ = x + shx(y – yref), Y’ = Y
Gambar 8.11 merupakan contoh shear dengan paramter shear shx = ½ dan yref = -1.
Y Y
D(0,1) C(1,1) D’(1,1) C’(2,1)
A(0,0) B(1,0) X A’(½ ,0) B’(3/2,0) X Yref = -1__ Yref = -1 __
Gambar 7.11 Shear dengan shx = ½ dan yref = -1
Shear suatu objek yang dilakukan terhadap sumbu y menggunakan matrik trasnformasi:
1 0 0
Shy 1 0
0 0 1
Dengan koordinat transformasi X’ = X , Y’ = shy.X + Y
Parameter shy dapat dinyatakan dengan sembarang bilangan. Posisi koordinat kemudian digeser menurut arah vertikal. Contoh pada Gambar 7.12 menunjukkan shear dengan memberikan nilai shy dengan 2.
Y Y C’(1,3)
B’(1,2) D(0,1) C(1,1) D’(0,1)
X X
A(0,0) B(1,0) A’(0,0) Gambar 7.12 Shear menurut arah sumbu y
Shear juga dapat dilakukan terhadap garis tertentu yang sejajar dengan sumbu y dengan bentuk martrik sebagai berikut:
1 0 0
Shy 1 -shy . xref
0 0 1
Dengan posisi koordinat transformasi X’ = X, Y’ = shy(X – Xref) + Y
Gambar 8.13 memperlihatkan shear dengan paramter shear ½ terhadap garis Xref = -1
Y Y C’(1,2)
D’(0,3/2) D(0,1) C(1,1)
B’(1,1)
A’(0, ½)
| |
Xref = -1 0 A(0,0) B(1,0) X Xref = -1 0 X
Gambar 7.13 Shear mnurut garis x=-1
7.6. LATIHAN
1. Diketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) lakukan tranaslasi terhadap obje tersebut, bila nilai translation factor (20,45).
2. Deiketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) dilakukan skala dengan scaling factor (2,3).
3. Diketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) dirotasi dengan sudut rotasi 450 terhadap titik pusat koordinat cartesian (10,10).
7.7. MATERI PRAKTIKUM
1. Butalah program untuk melakukan transformasi dasar (translasi, skala, rotasi) pada suatu objek.
2. Buatlah program untuk pencerminan.
3. Buatlah program untuk shear.