GRAFIKA KOMPUTER
Membuat Translasi, Skala, dan Rotasi dengan
menggunakan Processing
Pada grafika komputer, sistem koordinat suatu objek dapat di transformasi.
Transformasi ini memungkinkan terjadinya perpindahan posisi suatu objek tanpa
harus membuat model objek yang baru. Jenis-jenis transformasi yang sering
digunakan pada grafika komputer dibagi menjadi 3 macam, yaitu translasi,
rotasi, dan skalasi.
A. Translasi (Translation)
Translasi merupakan bentuk transformasi yang memindahkan
posisi suatu objek, baik pada sumbu x, sumbu y, atau sumbu z. Fungsi yang
digunakan untuk melakukan translasi adalah :
glTranslatef(Tx, Ty, Tz)
glTranslated(Tx, Ty, Tz)
Parameter Tx digunakan untuk menentukan arah dan seberapa jauh suatu
benda akan dipindahkan berdasarkan sumbu x. Parameter Ty digunakan
untuk menentukan arah dan seberapa jauh suatu benda akan dipindahkan
berdasarkan sumbu y. Sedangkan parameter Tz digunakan untuk menentukan
arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu z
(berlaku pada model 3D).
B. Rotasi (Rotation)
Rotasi merupakan bentuk transformasi yang digunakan untuk memutar
posisi suatu benda. Fungsi yang digunakan untuk melakukan rotasi ialah :
glRotatef(θ, Rx, Ry, Rz)
glRotated(θ, Rx, Ry, Rz)
Parameter yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter θ
untuk besar sudut putaran, parameter Rx untuk putaran
berdasarkan sumbu x, parameter Ry untuk putaran berdasarkan
sumbu y, dan parameter Rz untuk putaran berdasarkan sumbu z.
Jika parameter θ bernilai postif, maka objek akan diputar
berlawanan arah jarum jam. Sedangkan jika parameter θ bernilai
negatif, maka objek akan diputar searah jarum jam.
C. Skalasi (Scaling)
Skalasi merupakan bentuk transformasi yang dapat mengubah ukuran(besar-kecil)
suatu objek. Fungsi yang digunakan untuk melakukan skalasi ialah :
glScalef(Sx, Sy, Sz)
glScaled(Sx, Sy, Sz)
Perubahan ukuran suatu objek diperoleh dengan mengalikan semua titik atau atau
vertex pada objek dengan faktor skala pada masing-masing sumbu (parameter Sx
untuk sumbu x, Sy untuk sumbu y, dan Sz untuk sumbu z).
Contoh :
Translasi, Skala, dan Rotasi dengan menggunakan Processing
TRANSLASI
Untuk
menggambarkan translasi suatu objek yang berupa segitiga dengan koordinat
A(10,10), B(30,10), dan C(10,30) dengan translation vektor (10,20),
pertama-tama dihitung koordinat hasil translasi satu demi satu.
Titik
A (10, 10)
X’= X + tX
= 10 + 10 =20
Y’=
Y + tY
= 10 + 20 = 30
Hasil
translasi titik A’ (20, 30)
Titik
B (30, 10)
X’=
X + tX
= 30 + 10 =40
Y’=
Y + tY
= 10 + 20 = 30
Hasil
translasi titik B’ (40, 30)
Titik
C (10, 30)
X’=
X + tX
= 10 + 10 =20
Y’=
Y + tY
= 30 + 20 = 50
Hasil
translasi titik C’ (20, 50)
SKALA
Untuk
menggambarkan skala suatu objek yang merupakan segi empat dengan koordinat
A(10,10), B(30,10), C(30,20), D(10,20) diskala dengan skala vektor (3,2), pertamatama
dihitung koordinat hasil skala satu demi satu.
Titik
A (10, 10)
X’=
X . sX
= 10 . 3 =30
Y’=
Y . sY
= 10 . 2 = 20
Hasil
skala titik A’ (30, 20)
Titik
B (30, 10)
X’=
X . sX
= 30 . 3 =90
Y’=
Y . sY
= 10 . 2 = 20
Hasil
skala titik B’ (90, 20)
Titik
C (30, 20)
X’=
X . sX
= 30 . 3 =90
Y’=
Y . sY
= 20 . 2 = 40
Hasil
skala titik C’ (90, 40)
Titik
D (10, 20)
X’=
X . sX
= 10 . 3 =30
Y’=
Y . sY
= 20 . 2 = 40
Hasil
skala titik D’ (30, 40)
ROTASI
Untuk
menggambarkan rotasi suatu objek yang berupa segitiga dengan koordinat
A(10,10), B(30,10), dan C(10,30) dengan sudut rotasi 300 terhadap
titik pusat koordinat Cartesian (10,10), dilakukan dengan menghitung koordinat
hasil rotasi tiap titik satu demi satu.
Titik
A (10, 10)
X’=
Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
= 10 + (10 – 10) 0,9 – (10 – 10) 0,5
= 10 + 0 – 0 = 10
Y’=
Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
= 10 + (10 – 10) 0,5 + (10 – 10) 0,9
= 10 + 0 – 0 = 10
Hasil
rotasi titik A’ (10, 10)
Titik
B (30, 10)
X’=
Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
= 10 + (30 – 10) 0,9 – (10 – 10) 0,5
= 10 + 18 – 0 = 28
Y’=
Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
= 10 + (30 – 10) 0,5 + (10 – 10) 0,9
= 10 + 10 – 0 = 20
Hasil
rotasi titik B’ (28, 20)
Titik
C (10, 30)
X’=
Xp + (X - Xp) cos(300) - (Y-Yp) sin(300)
= 10 + (10 – 10) 0,9 – (30 – 10) 0,5
= 10 + 0 +10 = 20
Y’=
Yp + (X-Xp) sin(300) + (Y-Yp) cos(300)
= 10 + (10 – 10) 0,5 + (30 – 10) 0,9
= 10 + 0 + 18 = 28
Hasil
rotasi titik C’ (20, 28)
Tidak ada komentar:
Posting Komentar