[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]
{
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]