5
BAB 2 LANDASAN TEORI
2.1 Matrix Rotasi 3D dengan Representasi Euler Matriks Rotasi untuk grafik 3D dengan representasi euler ( euler angle ) terdiri atas rotasi terhadap sumbu x , y , dan z
Z
Z v3 v X v2
v1
Y
Gambar 2.1 Vektor di Ruang 3 Dimensi
X
Y
Gambar 2.2 Arah Rotasi di Ruang 3 Dimensi
6 Matriks Rotasi terhadap sumbu x :
Matriks Rotasi terhadap sumbu y :
Matriks Rotasi terhadap sumbu z :
Karena perkalian matriks tidak bersifat komutatif , maka dengan representasi euler , terdapat 12 urutan rotasi yang dapat dihasilkan , yaitu : xyz , xzy, xyx , xzx , yxz , yzx , yxy , yzy , zxy , zyx , zxz , zyz. Untuk urutan rotasi zyx , didapatkan rumus sebagai berikut :
7
R x (α ) × R y ( β ) × R z (γ ) = 0 0 ⎤ ⎡cos⋅ β 0 −sinβ⎤ ⎡ cos⋅γ sinγ 0⎤ ⎡1 ⎢ 0 ⎥⎥ ⎢⎢−sinγ cos⋅γ 0⎥⎥ sehingga didapatkan = ⎢0 cos⋅α sinα ⎥⎥ ⎢⎢ 0 1 ⎢⎣0 −sinα cos⋅α⎥⎦ ⎢⎣ sinβ 0 cos⋅ β ⎥⎦ ⎢⎣ 0 0 1⎥⎦ cos β cos γ ⎡ ⎢ = ⎢ sin α sin β cos γ − cos α sin γ ⎢⎣ cos α sin β cos γ + sin α sin γ
cos β sin γ
− sin β
sin α sin β sin γ + cos α cos γ cos α sin β sin γ − sin α cos γ
⎤ sin α cos β ⎥⎥ cos α cos β ⎥⎦
Berikut adalah hasil dari setiap urutan rotasi yang mungkin : R x (α ) × R z (γ ) × R y ( β ) = cos γ cos β ⎡ ⎢ − cos α cos β sin γ + sin α sin β ⎢ ⎢⎣ − sin α cos β sin γ + cos α sin β
sin γ cos α cos γ − sin α cos γ
− cos γ sin β
⎤ cos α sin β sin γ + sin α cos β ⎥⎥ sin α sin β sin γ + cos α cos β ⎥⎦
R x (α ) × R y ( β ) × R x (α ) = ⎡ cos β ⎢ sin α sin β ⎢ ⎢⎣ cos α sin β
sin α sin β
− cos α sin β
cos α − sin α cos β − sin α cos α − sin α cos α cos β 2
2
⎤ sin α cos α + sin α cos α cos β ⎥⎥ ⎥⎦ − sin 2 α + cos 2 α cos β
R x (α ) × R z (γ ) × R x (α ) = cos γ ⎡ ⎢ − cos α sin γ ⎢ ⎢⎣ − sin α cos γ
cos α sin γ
sin α sin γ
cos α cos γ − sin α − sin α cos α cos γ − sin α cos α 2
2
⎤ sin α cos α cos γ + sin α cos α ⎥⎥ ⎥⎦ − sin 2 α cos γ + cos 2 α
R y ( β ) × R x (α ) × R z (γ ) = ⎡ cos β cos γ − sin α sin β sin γ ⎢ − cos α sin γ ⎢ ⎢⎣ sin α cos γ + sin α cos β sin γ
cos β sin γ + sin α sin β cos γ cos α cos γ sin β sin γ − sin α cos β cos γ
− cos α sin β ⎤ ⎥ sin α ⎥ cos α cos β ⎥⎦
8 R y ( β ) × R z (γ ) × R x (α ) = ⎡ cos β cos γ ⎢ − sin γ ⎢ ⎣⎢ sin β cos γ
cos α cos β sin γ + sin α sin β cos α cos γ cos α sin β sin γ − sin α cos β
sin α cos β sin γ − cos α sin β ⎤ ⎥ sin α cos γ ⎥ sin α sin β sin γ + cos α cos β ⎦⎥
R y ( β ) × R x (α ) × R y ( β ) =
⎡ cos 2 β − sin 2 β cos α ⎢ sin α sin β ⎢ ⎢sin β cos β + sin β cos β cos α ⎣
sin α sin β cos α − sin α cos β
− sin β cos β − cos α cos β sin β ⎤ ⎥ sin α cos β ⎥ 2 2 ⎥ sin β + cos α cos β ⎦
R y ( β ) × R z (γ ) × R y ( β ) =
⎡ cos 2 β cos γ − sin 2 β ⎢ − sin γ cos β ⎢ ⎢sin β cos β cos γ + sin β cos β ⎣
cos β sin γ cos γ sin β sin γ
− sin β cos β cos γ − sin β cos β ⎤ ⎥ sin β sin γ ⎥ 2 2 ⎥ − sin β cos γ + cos β ⎦
R z (γ ) × R x (α ) × R y ( β ) =
⎡ cos β cos γ + sin α sin β sin γ ⎢ − cos β sin γ + sin α sin β cos γ ⎢ ⎢⎣ cos α sin β
cos α sin γ cos α cos γ − sin α
− sin β cos γ + sin α cos β sin γ ⎤ sin β sin γ + sin α cos β cos γ ⎥⎥ ⎥⎦ cos α cos β
R z (γ ) × R y ( β ) × R x (α ) =
⎡ cos β cos γ ⎢ − sin γ cos β ⎢ ⎢⎣ sin β
sin γ cos α + sin α sin β cos γ cos α cos γ − sin α sin β sin γ − sin α cos β
sin α sin γ − cos α sin β cos γ ⎤ sin α cos γ + cos α sin β sin γ ⎥⎥ ⎥⎦ cos α cos β
R z (γ ) × R x (α ) × R z (γ ) =
⎡ cos 2 γ − sin 2 γ cos γ ⎢ ⎢ − sin γ cos γ − sin γ cos α cos γ ⎢ sin α sin γ ⎣
sin γ cos γ + sin γ cos 2 γ − sin γ + cos γ cos α − sin α cos γ 2
2
sin α sin γ ⎤ ⎥ sin α cos γ ⎥ cos α ⎥⎦
9 R z (γ ) × R y ( β ) × R z (γ ) =
⎡ cos 2 γ cos β − sin 2 γ ⎢ ⎢ − cos β sin γ cos γ − sin γ cos γ ⎢ sin β cos γ ⎣
cos β sin γ cos γ + sin γ cos γ − sin γ cos β − cos γ sin β sin γ 2
2
− sin β cos γ ⎤ ⎥ sin β sin γ ⎥ ⎥ cos β ⎦
Karena menggunakan aturan tangan kanan ( Right – Hand rule ) maka α , β , γ , adalah sudut antara 0-360° , berlawanan arah dengan arah jarum jam.
Representasi Euler memiliki masalah yang signifikan , yaitu terjadinya gimbal lock. Gimbal lock ini disebabkan karena representasi euler terhadap orientasi tertentu tidak bersifat unik ( aliasing ) . Aliasing terjadi karena orientasi menggunakan representasi euler dapat di wujudkan dengan beberapa kombinasi matriks. Apabila menggunakan urutan rotasi xyz , gimbal lock dapat dilihat jika merotasikan sumbu y sebesar 90° . Menggunakan rumus rotasi di atas , maka apabila β=90° diperoleh :
Rx × R y × Rz =
cos 90 cos γ ⎡ ⎢ sin α sin 90 cos γ − cos α sin γ ⎢ ⎢⎣ cos α sin 90 cos γ + sin α sin γ
cos 90 sin γ sin α sin 90 sin γ + cos α cos γ cos α sin 90 sin γ − sin α cos γ
0 ⎡ = ⎢⎢ sin α cos γ − cos α sin γ ⎢⎣ cos α cos γ + sin α sin γ 0 ⎡ ⎢ = ⎢ sin( α − γ ) ⎢⎣ cos( α − γ )
− sin 90 ⎤ sin α cos 90 ⎥⎥ cos α cos 90 ⎥⎦
0 sin α sin γ + cos α cos γ cos α sin γ − sin α cos γ
0 cos( α − γ ) − sin( α − γ )
− 1⎤ 0 ⎥⎥ 0 ⎥⎦
− 1⎤ 0 ⎥⎥ adalah matriks singular 0 ⎥⎦
10 Sehingga rotasi terhadap sudut α maupun γ hanya akan menghasilkan rotasi terhadap 1 sumbu rotasi ( kehilangan 1 sumbu rotasi). Hal ini juga terjadi pada setiap kombinasi rotasi pada representasi euler.
2.2 Struktur Aljabar 2.2.1 Semigrup Semigrup (G,*) adalah himpunan tak kosong dengan operasi “*” yang bersifat : - Tertutup terhadap operasi “*” - Assosiatif (x*y)*z = x*(y*z) untuk setiap x,y,z ε G
2.2.2 Grup Grup adalah himpunan tak kosong dengan satu operasi * yang mempunyai sifat sebagai berikut : -
Tertutup terhadap *
-
Asosiatif untuk operasi *
-
Mempunyai Unsur Kesatuan
-
Setiap elemen memiliki invers
Grup yang komutatif disebut juga grup abelian.
11
2.2.3 Ring Suatu struktur aljabar dengan dua operasi biner “+” dan “*” , R(+,*) disebut Ring , jika : -
(R , + ) grup komutatif ( grup abelian )
-
(R , * ) semi grup
-
Berlaku distributif kiri dan kanan o a*(b+c) = a*b + a*c o (a+b)*c = a*c + b*c
∀a, b, c ∈ R
2.2.4 Quaternion Bentuk umum Quaternion adalah a + bi + cj + dk , di mana a , b , c , d adalah bilangan Real. Quaternion dapat dibagi menjadi 2 bagian , bagian skalar dan bagian vector . Bagian skalar dari Quaternion a+bi+cj+dk adalah a , dan bagian vektor nya adalah bi+cj+dk . Quaternion adalah Struktur aljabar yang ditemukan oleh William Rowan Hamilton.
Quaternion
adalah
division
Ring
yang
nonkomutatif
(http://mathworld.wolfram.com/Quaternion.html ) , sehingga quaternion memiliki sifat – sifat sebagai berikut : 1. (Q , + ) merupakan grup komutatif 2. (Q-{0}, * ) merupakan grup 3. Operasi * distributif terhadap + Q = {a + bi + cj + dk : a, b, c, d ∈ R} Bukti :
12 1. (Q , + ) merupakan grup komutatif a. Tertutup Quaternion + Quaternion = Quaternion a + bi + cj + dk + e + fi + gj + hk = (a+e) + (b+f)i + (c+g)j + (d+h)k
a, b, c, d, e, f , g, h∈Real
b. Assosiatif ( Quaternion + Quaternion ) +Quaternion = Quaternion + (Quaternion+Quaternion)
c. Memiliki Unit Kesatuan a +bi+cj+dk + 0 +0i+0j+0k = a+bi+cj+dk a,b,c,d ∈Real
d. Setiap Elemen Quaternion memiliki invers
(a +bi+ cj + dk)−1 = (−a −bi−cj − dk)
a,b,c,d ∈Real
e. Komutatif (a +bi+ cj+ dk) + (w+ xi+ yj+ zk) = (w+ xi+ yj+ zk) + (a +bi+ cj+ dk)
a, b, c, d, w, x, y, z ∈Real
2.(Q-{0} , *) merupakan grup a. Tertutup
13 Quaternion * Quaternion = Quaternion
(a +bi+ cj+ dk)*(w+ xi+ yj+ zk) = (aw−bx−cy−dz) + (ax+bw+ cz− dy)i + (ay−bz+ cw+ dx) j + (az+by−cx+ dw)k a, b, c, d, w, x, y, z ∈Real
b. Assosiatif
(a +bi+ cj+ dk)*((w+ xi+ yj+ zk)*(e + fi + gj+ hk)) = ((a +bi+ cj+ dk)*(w+ xi+ yj+ zk))*(e + fi + gj+ hk) Bukti :
( w + xi + yj + zk ) * (e + fi + gj + hk ) = (we –xf-yg –zh) + (wf +xe + yh – zg)i +(wg –xh +ye +zf)j + (wh + xg – yf + ze)k
(a + bi + cj + dk ) * (( w + xi + yj + zk ) * (e + fi + gj + hk )) = =( a (we-xf-yg-zh) – b(wf+xe+yh-zg)-c(wg-xh+ye+zf) –d(wh+xg-yf+ze)) + (a (wf+xe+yh-zg) + b(we-xf-yg-zh) + c(wh+xg-yf+ze) –d(wg-xh+ye+zf))i + (a(wg –xh+ye+zf) –b (wh+xg-yf+ze) +c (we-xf-yg-zh) +d(wf+xe+yh-zg))j + (a(wh+xg-yf+ze) + b ( wg-xh+ye+zf)- c(wf+xe+yh-zg) + d(we-xf-yg-zh))k
=(awe –axf-ayg-azh –bwf-bxe-byh+bzg –cwg+cxh-cye-czf-dwh-dxg+dyf-dze) + (awf+axe+ayh-azg +bwe –bxf-byg-bzh+ cwh +cxg –cyf +cze –dwg +dxh –dye –dzf)i (awg-axh+aye+azf-bwh-bxg+byf-bze +cwe-cxf-cyg-czh + dwf+dxe +dyh-dzg)j (awh+axg-ayf+aze + bwg-bxh+bye+bzf –cwf-cxe-cyh+czg +dwe-dxf-dyg-dzh)k
(a + bi + cj + dk ) * ( w + xi + yj + zk ) = (aw –bx-cy –dz) + (ax +bw + cz – dy)i +(ay –bz +cw +dx)j + (az + by – cx + dw)k
14
((a + bi + cj + dk ) * ( w + xi + yj + zk )) * (e + fi + gj + hk ) = =( ( aw –bx-cy-dz)e - (ax+bw+cz-dy)f – (ay-bz+cw+dx)g –(az+by-cx+dw)h ) + ( (aw-bx-cy-dz)f + (ax+bw+cz-dy)e + (ay-bz+cw+dx)h –(az+by-cx+dw)g)i + ( (aw-bx-cy-dz)g - (ax+bw+cz-dy)h + (ay-bz+cw+dx)e +(az+by-cx+dw)f )j + ( (aw-bx-cy-dz)h + (ax+bw+cz-dy)g - (ay-bz+cw+dx)f + (az+by-cx+dw)e)k
= ( awe-bxe-cye-dze –axf-bwf-czf+dyf –ayg +bzg-cwg-dxg-azh-byh+cxh-dwh ) + ( awf – bxf-cyf-dzf + axe+bwe+cze-dye + ayh-bzh+cwh+dxh –azg-byg+cxg-dwg)I + ( awg-bxg-cyg-dzg –axh-bwh-czh+dyh +aye-bze+cwe+dxe+ azf +byf-cxf-dwf) j + ( awh-bxh-cyh-dzh +axg+bwg+czg-dyg-ayf+bzf-cwf-dxf +aze +bye-cxe+dwe)k
a,b,c,d,e, f , g,h, w, x, y, z ∈R ( w + xi + yj + zk ) * (e + fi + gj + hk ) = (we –xf-yg –zh) + (wf +xe + yh – zg)i +(wg –xh Terbukti
c. Mempunyai Unsur Kesatuan (a+bi+cj+dk)*(1+0i+0j+0k) = (a+bi+cj+dk) a, b, c, d ∈R
d. Setiap elemen memiliki invers Setiap elemen Quaternion selain 0 mempunyai invers sebagai berikut : _
q−1 =
q q
2
dimana q adalah sekawan dari q dan q adalah normal dari q
15 jika q= (a + bi + cj + dk ) maka q = (a − bi − cj − dk ) q =
q.q = a 2 + b 2 + c 2 + d 2
a,b,c,d ∈Real , q ≠ 0 , q−1 ∈ Quaternion
3.Operasi * distributif terhadap + q*(w+z) = qw + qz q = (a + bi + cj + dk ) w = ( w + xi + yj + zk ) z = (e + fi + gj + hk ) a,b,c,d,e, f , g,h, w, x, y, z ∈Real
2.2.4.1 Operasi Quaternion Berbeda dengan Bilangan kompleks , quaternion tidak bersifat komutatif . Sifat – sifat dasar quaternion i2 = j2 = k2 = ijk = − 1
p = t + v = t + bi + cj + dk q = a + u = a + xi + yj + zk p × q ≠ q × p ( non komutatif )
p × (q × r ) = ( p × q ) × r ( assosiatif )
16
Sekawan ( conjugate ) dari quaternion p = t + v adalah p * = t − v Nilai Mutlak dari quaternion didapat dengan p =
pp * = t 2 + b 2 + c 2 + d 2
Jika p = 1 , maka p disebut unit quaternion. Karena p −1 =
z* z
2
dan untuk unit quaternion , berlaku p = 1 , maka p −1 = p *
- Penambahan p = t + v = t + bi + cj + dk ,
q = a + u = a + xi + yj + zk
p + q = t + a + u + v = (a + t ) + (b + x)i + (c + y ) j + (d + z )k
- Perkalian p = t + v = t + bi + cj + dk ,
q = a + u = a + xi + yj + zk
pq = at − u v + a v + t u + v × u pq = (at − bx − cy − dz) + (bt + ax + cz − dy)i + (ct + ay + dx − bz)j + (dt + az + by − cx)k
- Perkalian dot
17 - Perkalian cross
- Invers p −1 =
p* p
2
( pq )−1 = p −1q −1 2.2.4.2 Penggunaan Quaternion Dalam Rotasi Bentuk umum Quaternion : q= (a + bi + cj + dk ) Titik di ruang 3D dengan bentuk quaternion adalah p(0,x,yz ) = 0+xi+yj+zk , sehingga jika ingin merotasikan titik dengan menggunakan quaternion maka p rotated = qpq −1 , karena q adalah unit quaternion , sehingga q −1 = q untuk operasi *. p rotated = qpq p rotated = (-bx-cy-dz+i ( ax + cz- dy) + j (ay - bz + dx) + k (az + by - cx ) )*(a- bi - cj dk)
p rotated = (- bx -cy- dz)*a - ( ax + cz- dy)*(-b) -(ay - bz + dx)(-c) - (az + by - cx )*(-d) + i (( ax + cz- dy)(a) + (- bx -c y- dz)(-b) + (ay - bz + dx)(-d) - (az + by - cx )(-c) ) + j ((- bx -c y- dz)(-c) - ( ax + cz- dy)(-d) + (ay - bz + dx)(a) + (az + by - cx )(-b)) + k ((- bx -cy- dz)(-d) + ( ax + cz- dy)(-c) - (ay - bz + dx)(-b) + (az + by - cx )(a)) p rotated = - bax – cay – daz + abx + cbz – dby + acy - bcz + dcx + adz + bdy - cdx + i ( aax + caz- day + bbx +cby+ dbz - ady + bdz - ddx + acz + bcy – ccx)
18 + j ( bcx +cc y+ dcz + adx +cdz- ddy + aay - baz + dax - abz - bby + cbx ) + k (bdx +cd y+ ddz - acx - ccz+ dcy + aby - bbz + dbx + aaz + bay - cax )
p rotated = 0+ i ( aax + caz- day + bbx +cby+ dbz - ady + bdz - ddx + acz + bcy – ccx) + j ( bcx +cc y+ dcz + adx +cdz- ddy + aay - baz + dax - abz - bby + cbx ) + k (bdx +cd y+ ddz - acx - ccz+ dcy + aby - bbz + dbx + aaz + bay - cax )
Apabila dikelompokkan x , y , z maka akan menjadi matriks sebagai berikut
aa + bb- dd- cc
-da+cb- ad+ bc
ca + db + bd + ac
bc+ ad+ da+ cb
cc- dd+ aa - bb
dc+cd- ba- ab
bd- ac+ db- ca
cd + dc+ ab+ ba
dd- cc- bb+ aa
Dalam merepresentasikan rotasi dengan quaternion , hanya diperlukan unit quaternion , sehingga karena unit Quaternion memiliki sifat
a2 +b2 + c2 + d2 =1 maka matrix diatas
menjadi :
1-2dd - 2cc
- 2da+2cb
2ca +2db
2bc+ 2ad
1 - 2dd - 2bb
2dc- 2ba
2bd- 2ac
2cd + 2ab
1- 2cc- 2bb
19 Karena quaternion terdiri atas bagian skalar dan bagian vector maka dari a+bi+cj+dz , a adalah besar dari rotasi yang diinginkan , dan bi+cj+dz adalah vektor. a =cos (
θ 2
)
b = axis x * sin (
c = axis y * sin (
d = axis z * sin (
θ 2
θ 2
θ 2
)
)
)
θ adalah sudut rotasi (0-360°) .