Dokumen tersebut membahas tentang sistem koordinat dan transformasi geometri dalam 3 dimensi. Ia menjelaskan konsep dasar sistem koordinat kartesian 3D, transformasi sederhana seperti translasi, rotasi, dan skala menggunakan matriks, serta penggunaan koordinat homogen untuk merepresentasikan transformasi tersebut secara umum menggunakan matriks.
1. Sistem ko-ordinat
TH3813
Sistem Ko-ordinat dan
Transformasi
Konvensi ko-ordinat
pelbagai enjin 3D dan sistem RM gunakan
konvensi ko-ordinat yang berbeza
terdapat 3 perbezaan utama:
putaran/orientasi sistem ko-ordinat
tanda pada paksi
tanda sudut putaran ke semua paksi
Sistem ko-ordinat tangan
kiri/kanan
untuk tentukan tanda sesuatu paksi - perlu tahu
bahagian paksi yang mana positif dan negatif
sistem ko-ordinat yang digunakan - sistem
tangan-kiri
untuk bina persekitaran 3D - perlu posisikan titik,
faset dan objek dalam satu rangka
ko-ordinat cartesian adalah yang paling lazim
digunakan
ko-ordinat cartesian 3D gunakan 3 paksi: x, y dan
z
Putaran paksi
arah mana setiap paksi wakili
pada kebiasaannya:
paksi x sentiasa terletak secara mendatar dar kiri ke
kanan
perbezaan antara sistem-sistem terletak pada
putaran paksi y dan z
konvensi yang digunakan di sini ialah y sebagai
paksi menegak dan z paksi yang menuju keluar ke
arah kita (skrin)
Putaran tangan kanan/kiri
pertimbangkan tanda putaran di sebarang paksi
konvensi tangan digunakan
pitch
yaw
roll
1
2. Multiplikasi matriks
Multiplikasi matriks
kerap kali digunakan dalam grafik 3D untuk
lakukan transformasi dan operasi ke atas set koordinat
n
m
a b
c d
×
x
y
ax + by
cx + dy
=
Selesaikan yang berikut:
×
A
B
= m
n
AB
b
b
1 2 3
4 5 6
×
2 4
6 8
10 12
=
44 56
98 128
A×B ≠ B×A
Transformasi mudah
Translasi
anjakkan satu objek ke posisi/kedudukan baru
dilakukan dengan translasi vektor pada semua koordinat objek
Y-Axis
translasi/anjakan (translation)
putaran (rotation)
penskalaan (scaling)
Y-Axis
transformasi mudah seperti:
gunakan kaedah matriks
X-Axis
X-Axis
X-Axis
penskalaan ubah kedudukan semua bucu objek
dengan faktor yang sama
ubah saiz dan posisi objek
Y-Axis
X-Axis
Y-Axis
Y-Axis
Penskalaan
sudut kiri kotak di atas terletak pada
(1.5, 0.5).
saiz kotak ialah 2 unit lebar dan 1 unit
tinggi
kotak di translasikan melalui vektor
(-0.5, 2.0)
ko-ordinat asal (x,y)
ko-ordinat baru (x’, y’)
translasi (tx, ty)
X-Axis
- pertimbangkan rajah yang sama
- lakukan penskalaan (0.5, 3.)
- semua ko-ordinat kotak diskalakan
dengan faktor 0.5 pada paksi x dan
3.0 pada paksi y
oleh itu
x’= x + tx ; y’= y + ty
2
3. Secara matematik:
ko-ordinat asal (x, y)
Putaran (rotation)
faktor skala (Sx, Sy)
X-Axis
x’ = x.Sx
y’ = y.Sy
putaran tukarkan posisi dan orientasi sesuatu
bentuk dengan memutarkan setiap bucu pada
pusat putaran
Y-Axis
atau
Y-Axis
x’ = Sx 0
y’
Sy 0
x
y
X-Axis
X-Axis
Y-Axis
Y-Axis
ko-ordinat baru (x’, y’)
X-Axis
Contoh ini menggunakan asalan (0,
0) sebagai pusat penskalaan
Posisi baru untuk setiap bucu selepas satu putaran
bagi sudut q pada asalan boleh didapati:
x’ = xcosθ - ysinθ
y’ = xsinθ + ycosθ
Boleh wakilkan melalui
x’
y’
=
cosθ -sinθ
sinθ cosθ
x
y
Ko-ordinat homogen
penskalaan dan putaran boleh diwakilkan dengan
matriks; tetapi tidak bagi translasi
adalah baik semuanya menggunakan operasi yang
sama - matriks
oleh itu ko-ordinat homegen adalah berguna
ko-ordinat homogen tambahkan nilai ko-ordinat
skala (biasanya diwakili oleh w) pada vektor 2D
dan 3D
3