Sin(a) Sin(b) Sin(g)
------ = ------ = ------
A B C
Where A, B, and C are the lengths of the sides of a triangle, and a, b, and g are the angles directly opposite those sides...
/|
/b|
C / |
/ |A
/ |
/ |
/a g|
--------
B
sin(90) = 1
Sin(a+b) = Sin(a)*Cos(b) + Cos(a)*Sin(b)
http://www.gamedev.net/reference/articles/article796.asp
To rotate x an y cords:
NewX = (OldX*Cos(Theta)) - (OldY*Sin(Theta))
NewY = (OldY*Cos(Theta)) + (OldX*Sin(Theta))
Rotate x y and z
NewY = (OldY*Cos(ThetaX)) - (OldZ*Sin(ThetaX)) ** X axis rotation **
NewZ = (OldZ*Cos(ThetaX)) + (OldY*Sin(ThetaX))
(Copy NewY and NewZ into OldY and OldZ)
NewZ = (OldZ*Cos(ThetaY)) - (OldX*Sin(ThetaY)) ** Y axis rotation **
NewX = (OldX*Cos(ThetaY)) + (OldZ*Sin(ThetaY))
(Copy NewZ and NewX into OldZ and OldX)
NewX = (OldX*Cos(ThetaZ)) - (OldY*Sin(ThetaZ)) ** Z axis rotation **
NewY = (OldY*Cos(ThetaZ)) + (OldX*Sin(ThetaZ))
Keep in mind that angles are in radians!