# Create Vector from Angle • ### Question

• I have an angle of rotation in radians. Is there an easy way to convert this to a vector, as I have a 2D sprite ship I want to be able to rotate, and move in the direction of the rotation?

Simon

Thursday, November 2, 2006 5:36 AM

• Do you mean something like this?

public Vector2(float angle)
{
X = (float)Math.Sin(angle);
Y = (float)Math.Cos(angle);
}

??
Thursday, November 2, 2006 10:38 AM
• Just so you know the XNA framework, uses 0 radians as up. For example when drawing a sprite, and you want to rotate it, in the SpriteBatch.Draw method.
Thursday, November 2, 2006 8:17 PM

### All replies

• Can you precise what kind of movement you are tolking to? Because "the direction of rotation" has two meaningful values only - clockwise and counter-clockwise, relatively to rotation axis.
Thursday, November 2, 2006 6:30 AM
• Do you mean something like this?

public Vector2(float angle)
{
X = (float)Math.Sin(angle);
Y = (float)Math.Cos(angle);
}

??
Thursday, November 2, 2006 10:38 AM
• I will try that. I have a ship which I want to rotate about its axis, and then move it in the direction it is pointing using the rotation angle. So if that code will do it, then I will give it a shot.

Simon

Thursday, November 2, 2006 3:46 PM
• MattDavey wrote:
 Do you mean something like this?public Vector2(float angle){    X = (float)Math.Sin(angle);    Y = (float)Math.Cos(angle);}??

The idea is correct but you have to switch your trig functions to :

X = (float)Math.Cos(angle);
Y = (float)Math.Sin(angle);

and remember the the north direction (meaning up) is 0 radians and west direction (left) is PI / 2.

Thursday, November 2, 2006 6:17 PM
• Hmm i was always under the impression that 0 degrees was down in computer world - in which case my code was correct. I suppose your choice makes more sense but i've just always used 0deg = down.
Thursday, November 2, 2006 8:01 PM
• Just so you know the XNA framework, uses 0 radians as up. For example when drawing a sprite, and you want to rotate it, in the SpriteBatch.Draw method.
Thursday, November 2, 2006 8:17 PM