Rotate Points in 2D Space, Compute Thrust and Bullet Direction or....
"Asteroids Math" by PhilVaz
This simple PHP game utility rotates a 2D point around the origin (x=0, y=0) using the formula
xnew = x * cos(angle) - y * sin(angle)
ynew = y * cos(angle) + x * sin(angle)
and displays all the newly rotated positions. The value of angle is supplied in degrees -- the program converts the angle to radians to compute sin/cos. This can be used to pre-compute all the rotation positions of a ship in space (e.g. for an asteroids clone). You can input either the angle of rotation, or the total number of angle positions required. You can also have each rotated point rounded up to the nearest whole integer.
Also available is to pre-compute x/y thrust and x/y bullet movement in the correct direction of the object (e.g. a ship in space). These are computed using the formula
xthrust = xthrust + ( sin(angle) * THRUST_SPEED )
ythrust = ythrust + ( -cos(angle) * THRUST_SPEED )
xbullet = sin(angle) * BULLET_SPEED
ybullet = -cos(angle) * BULLET_SPEED
Point = ( x, y)