0% found this document useful (0 votes)
100 views16 pages

Rotation About Arbitrary Line PDF

This document describes the process of rotating points about an arbitrary axis (line) in 3D space. It involves 7 steps: 1) Translating the points so the axis passes through the origin, 2) Rotating about the x-axis to align with the x-z plane, 3) Rotating about the y-axis to align with the z-axis, 4) Rotating the desired angle about the z-axis, 5) Reversing the y-axis rotation, 6) Reversing the x-axis rotation, 7) Reversing the initial translation. An example is provided to demonstrate rotating 4 points 60 degrees around a line.

Uploaded by

Uchiha Itachi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views16 pages

Rotation About Arbitrary Line PDF

This document describes the process of rotating points about an arbitrary axis (line) in 3D space. It involves 7 steps: 1) Translating the points so the axis passes through the origin, 2) Rotating about the x-axis to align with the x-z plane, 3) Rotating about the y-axis to align with the z-axis, 4) Rotating the desired angle about the z-axis, 5) Reversing the y-axis rotation, 6) Reversing the x-axis rotation, 7) Reversing the initial translation. An example is provided to demonstrate rotating 4 points 60 degrees around a line.

Uploaded by

Uchiha Itachi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Rotation about an Arbitrary Axis (Line)

Rotation about an Arbitrary Axis (Line)

Z L
P1
P2 P1
Z0

P0 CC
Y
O
Y0 LL
X0

X AB
P0 B
A
x = Au + x0
y = Bu + y0 0 < =u <=1
z = Cu + z0
L = A2 + B 2 + C 2 u
Step 1: Translate Point P0 to Origin O

T
P0 = [ xo yo zo ] z P1(A,B,C)

⎡1 0 0 − x0 ⎤ C
y
⎢0 1 0 − y0 ⎥⎥
[D] = ⎢ B
⎢0 0 1 − z0 ⎥
A x
O
⎢ ⎥
⎣0 0 0 1 ⎦ P0
Step 2: Rotate Vector about X Axis to get into the x - z plane



L = A2 + B 2 + C 2
V = B2 + C 2
V B
L sin θ1 =
V
C
cosθ1 =
V

1 0 0 0⎤
⎡1 0 0 0⎤ ⎡⎢ C B ⎥
⎢0 cosθ 0 − 0⎥
1 − sin θ1 0⎥⎥ ⎢ V V
[Rx ] = ⎢ = ⎢ ⎥
⎢0 sin θ1 cosθ1 0⎥ ⎢0 B C
0⎥
⎢ ⎥
⎣0 0 0 1⎦ ⎢ V V ⎥
⎢⎣0 0 0 1⎦⎥
X
Step 3: Rotate about the Y axis to get it in the Z direction

Rotate a negative angle (CW)!

A
sin θ 2 = −
L
V
cosθ 2 =
L

⎡V A ⎤
0 − 0 ⎥
⎡ cos θ 2 0 sin θ 2 0 ⎤ ⎢ L L
⎢ 0 ⎥ ⎢ ⎥
1 0 0 ⎥ ⎢ 0 1 0 0 ⎥
⎡⎣ Ry ⎤⎦ = ⎢ =
⎢ − sin θ 2 0 cos θ 2 0 ⎥ ⎢ A V ⎥
⎢ ⎥ ⎢ L 0 0 ⎥
⎣ 0 0 0 1 ⎦ ⎢ L ⎥
⎢⎣ 0 0 0 1 ⎥⎦

Step 4: Rotate angle θ about axis
L

⎡cosθ − sin θ 0 0⎤


⎢ sin θ cosθ 0 0⎥⎥
[Rz ] = ⎢
⎢ 0 0 1 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
Step 5: Reverse the rotation about the Y axis

⎡ V A ⎤ V A
⎢ L 0 0⎥ ⎡ cosθ 2 0 sin θ 2 0⎤ ⎡⎢ 0 −
⎤
0⎥
L L L
⎢ 0 1 0 0⎥ ⎢ 0 1 0 ⎥
0⎥
[ ]−1
R y = ⎢ A V ⎥ [ ]
R y = ⎢
⎢
= ⎢ 0A 1 0 0⎥
⎥
⎢− 0 0⎥ ⎢− sin θ 2 0 cosθ 2 0⎥ ⎢ V
0 0⎥
⎢ L L ⎥ ⎢ ⎥
1⎦ ⎢ L L
⎢⎣ 0 0 0 1⎥⎦ ⎣ 0 0 0
⎢⎣ 0 0 0
⎥
1⎥⎦

Inverse of Rotation:
Replace θ by –θ
sin θ by – sin θ
cos θ remains cos θ (why?)
Step 6: Reverse rotation about the X axis

⎡ 1 0 0 0⎤
⎢ C B ⎥
⎢ 0 0⎥
[ x ] = ⎢ VB
R
−1 V
C ⎥
⎢ 0 − 0⎥
⎢ V V ⎥
⎢⎣ 0 0 0 1⎥⎦

1 0 0 0⎤
⎡1 0 0 0⎤ ⎡⎢ C B ⎥
⎢0 cosθ 0 − 0⎥
1 − sin θ1 0⎥⎥ ⎢ V V
[Rx ] = ⎢ = ⎢ ⎥
⎢0 sin θ1 cosθ1 0⎥ ⎢0 B C
0⎥
⎢ ⎥
⎣0 0 0 1⎦ ⎢ V V ⎥
⎢⎣0 0 0 1⎥⎦
Step 7: Reverse translation

⎡ 1 0 0 x 0 ⎤
⎢ ⎥
⎢ 0 1 0 y 0 ⎥
−1
[D] = ⎢ ⎥
⎢ 0 0 1 z 0 ⎥
⎢ ⎥
⎣ 0 0 0 1 ⎦
Overall Transformation

[T ] = [ D]−1[ Rx ]−1[ Ry ]−1[ Rzθ ][ Ry ][ Rx ][ D]


P2 = [T ]P1
An Example
CCW

original

60

120 180
P1 P2 P3 P4
An Example 3 10 1 3
[P1]= 5 6 1 5
0 0 0 0
Given the point matrix (four 1 1 1 1
points) on the right; and a line,
NM, with point N at (6, -2, 0) 1.  Calculate the constants
and point M at (12, 8, 0). (the Line/Axis of Rotation)
x = 6 + 6u
Rotate the these four points 60 y = −2 + 10u
degrees around line NM (alone
z=0
the N to M direction) N: u=0;
M: u=1 Thus
A = 6, B = 10, C = 0
A = 12 − 6 = 6
Po = N
B = 8 − (−2) = 10 L = A2 + B 2 + C 2 = 11.6619
P1 = M
C = 0− 0 = 0 V = B 2 + C 2 = 10
2. Translate N to the origin 3. Rotate about the X axis

[D] = 1 0 0 -6 [R]x = 1 0 0 0
010 2 0 C/V -B/V 0
001 0 0 B/V C/V 0
000 1 0 0 0 1

4. Rotate about the Y axis 5. Rotate 60 degree (positive)

[R]y = V/L 0 -A/L 0 [R]z = cos(60) -sin(60) 0 0


0 1 0 0 sin(60) cos(60) 0 0
A/L 0 V/L 0 0 0 1 0
0 0 0 1 0 0 0 1
6. Reverse [R]y 7. Reverse [R]x

V/L 0 A/L 0 1 0 0 0
[R]y-1= 0 1 0 0 [R]x-1= 0 C/V B/V 0
-A/L 0 V/L 0 0 -B/V C/V 0
0 0 0 1 0 0 0 1

8. Reverse the Translation

1 0 0 6
[D]-1 = 0 1 0 -2
0 0 1 0
0 0 0 1
9. Calculate the total transformation

[T ] = [ D]−1[ Rx ]−1[ Ry ]−1[ Rz60 ][ Ry ][ Rx ][ D]


P2 = [T ]P1

5.6471 10.2941 3.5000 5.6471


[P]2 = 3.4118 5.8235 -0.5000 3.4118
5.3468 0.5941 5.0498 5.3468
1.0000 1.0000 1.0000 1.0000
P1 P2 P3 P4
CCW

original

60

120 180

You might also like