Post on 05-Feb-2023
3D Geometrical Transformations
• 3D point representation• Translation• Scaling, reflection• Shearing• Rotations about x, y and z axis• Composition of rotations• Rotation about an arbitrary axis• Transforming planes
Reminder: Cross Product
U
V
UxV
θ
VxU
θsinˆ VUnVU =×
−−−
==×
xyyx
zxxz
yzzy
zyx
zyx
vuvuvuvuvuvu
vvvuuuzyx
VUˆˆˆ
3D Point Representation• A 3D point P is represented in homogeneous coordinates by a 4-dimensional vector:
•As for 2D points:
=
1zyx
P
≡
=
αααα
zyx
zyx
p
1
3D Geometrical Transformations• In homogeneous coordinates, 3D affine transformations are represented by 4x4 matrices:
•A point transformation is performed:
1000z
y
x
tihgtfedtcba
=
110001'''
zyx
tihgtfedtcba
zyx
z
y
x
3D TranslationP in translated to P' by:
Or:
Inverse:
+++
=
=
11'''
11000100010001
z
y
x
z
y
x
tztytx
zyx
zyx
ttt
'PPT =
y
z
x
PPT =− '1
3D Reflection• A reflection through the xy plane:
•Reflections through the xz and the yz planes are defined similarly
−=
−111000
010000100001
zyx
zyx
3D Shearing• Shearing:
• Change in each coordinate is a linear combination of all three• Transforms a cube into a general parallelepiped
++++++
=
111000010101
zfyexdzycxbzayx
zyx
fedcba
3D Rotation• To generate a rotation in 3D we have to specify:
– axis of rotation (2 d.o.f.)– amount of rotation (1 d.o.f.)
•Note, the axis passes through the origin
x
y
z
3D Rotation
• Counterclockwise rotation about x-axis
−
=
110000cossin00sincos00001
1'''
zyx
zyx
θθθθ
pRp x )(' θ=
y
z
x
3D Rotation
• Counterclockwise rotation about y-axis
−
=
110000cos0sin00100sin0cos
1'''
zyx
zyx
θθ
θθ
pRp y )(' θ=
y
z
x
3D Rotation
• Counterclockwise rotation about z-axis
−=
1zyx
1000010000θcosθsin00θsinθcos
1'z'y'x
pRp z )(' θ=
yx
z
Composite Rotation• Rx, Ry, and Rz, can perform any rotation about an axis passing through the origin
•Inverse rotation:
)(')(')(1 θθθ TRpRpRp =−== −
Change of Coordinates• Problem: Given the XYZ orthonormal coordinate system, find a transformation M, that maps a representation in XYZ into a representation in the orthonormal system UVW, with the same origin•The matrix M transforms the UVW vectors to the XYZ vectors
y
z
x
u=(ux,uy,uz)
v=(vx,vy,vz)
Change of Coordinates• Solution: M is rotation matrix whose rows are U,V, and W:
• Note: the inverse transformation is the transpose:
000
0 0 0 1
x y z
x y z
x y z
u u uv v v
Mw w w
=
==−
10000wvu0wvu0wvu
MMzzz
yyy
xxx
T1
Change of Coordinates• Let's check the transformation of U under M:
• Similarly, V goes into Y, and W goes into Z
X1001
100
uuu
1uuu
10000www0vvv0uuu
MU
2z
2y
2x
z
y
x
zyx
zyx
zyx
=
=
++=
=
Change of Coordinates• Let's check the transformation of the X axis under M-1:
• Similarly, Y goes into V, and Z goes into W
U
1uuu
1001
10000wvu0wvu0wvu
1001
Mz
y
x
zzz
yyy
xxx
1 =
=
=
−
Rotation About an Arbitrary Axis• Axis of rotation can be located at any point: 6 d.o.f. (we must specify 2 points p1 and p2)• The idea: make the axis coincident with one of the coordinate axes (z axis), rotate by θ, and then transform back
y
z
x
p1p2
Rotation About an Arbitrary Axis
z xp1
y
x
p1
y
xp1
z
z
step 1
Initial Position
Translate p1 to the Origin
step 2
Rotate p2 onto the z Axis
p2
p2
p2
xp1
z
step 3
Rotate the Object Around the z Axis
p2
x
p1
z
step 4
Rotate the Axis to the original Orientation
p2
y
z xp1
step 5
Translate to the Original Position
p2
y y
y
Rotation About an Arbitrary Axis• Step1:
• Step 2:
• Step 3:
• Step 4:
• Step 5:
• Composition:
−−−
=
1000z100y010x001
T1
1
1
=
10000www0vvv0uuu
Mzyx
zyx
zyx
−=
1000010000θcosθsin00θsinθcos
R
=−
10000wvu0wvu0wvu
Mzzz
yyy
xxx
1
=−
1000z100y010x001
T1
1
11
PTMRMTP 11 −−=′
Rotation About Arbitrary Axis• Constructing an orthonormal system along the rotation axis:
– A vector W parallel to the rotation axis:
– A vector V perpendicular to W:
– A vector U forming a right-handed orthogonal system with W and V:
ssw;pps 12 =−=
aavwa =
×= ;
100
wvu ×=
Transforming Planes• Plane representation:
– By three non-collinear points– By implicit equation:
[ ] 0
1
xy
A x B y C z D A B C Dz
+ + + = =
P0
P1P2
[ ]1zyx
1
DC
DB
DA
Transforming Planes• One way to transform a plane is by transforming any three non-collinear points on the plane
• Another way is to transform the plane equation: Given a transformation T such that
T [x, y, z, 1] = [x', y', z', 1]find [A',B',C',D'], such that:
[ ]
''
' ' ' ' 0'
1
xy
A B C Dz
=