``````{
Here is a little something I cooked up as a reference. It is complete
3 dimentional rotation formulas. Hopefully they will help you get a good
start. They are a little different then some of the VLA's (or whoever)
formulas because I derived them myself for my own purposes :) They do work,
as I use them myself. Hopefully they will give you a little insight on
how to begin.

-= Conventions =-

sx = Sin(XAngle)       cx = Cos(XAngle)
sy = Sin(YAngle)       cy = Cos(YAngle)
sz = Sin(ZAngle)       cz = Cos(ZAngle)

-= Matrix Rotations =-

X-Rotation Matrix
+            +
| 1   0   0  |
| 0   cx  sx |
| 0  -sx  cx |
+            +

Y-Rotation Matrix
+            +
| cy  0  -sy |
| 0   1   0  |
| sy  0   cy |
+            +

Z-Rotation Matrix
+            +
|  cz  sz  0 |
| -sz  cz  0 |
|  0   0   1 |
+            +

Total rotation matrix

[0,0]                                       [0,2]
+                                                    +
|  (cz*cy)+(sz*sx*sy)   (cy*-sz)+(cz*sx*sy)  (cx*sy) |
|                                                    |
|  (sz*cx)              (cz*cx)              (-sx)   |
|                                                    |
|  (-sy*cz)+(sz*sx*cy)  (sz*sy)+(cz*sx*cy)   (cx*cy) |
+                                                    +
[2,0]                                       [2,2]

Rotation Order:  Z,X,Y ( Rotated on Z axis first, then X, then Y )

-= Coordinate Transformations =-

FinalCoord.x = InitialCoord.x * Matrix[0,0] +
InitialCoord.y * Matrix[1,0] +
InitialCoord.z * Matrix[2,0]
FinalCoord.y = InitialCoord.x * Matrix[0,1] +
InitialCoord.y * Matrix[1,1] +
InitialCoord.z * Matrix[2,1]
FinalCoord.z = InitialCoord.x * Matrix[0,2] +
InitialCoord.y * Matrix[1,2] +
InitialCoord.z * Matrix[2,2]

-= Non-Matrix Rotations =-

X - Rotations:
x = x
y = (y * cx) - (z * sx)
z = (y * sx) + (z * cx)

Y - Rotations:
x = (x * cy) + (z * sx)
y = y
z = (z * cy) - (x * sy)

Z - Rotations
x = (x * cz) - (y * sz)
y = (x * sz) + (y * cz)
z = z

-= EOF =-

``````

[Back to GRAPHICS SWAG index]  [Back to Main SWAG index]  [Original]