Vertex rotation fails

This topic is 1783 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Keep in mind that I'm really using these coords for a sprite,so I don't care about the Z if that matters at all...

So i have the following vector:

v(589,277)

And I want to rotate it 90 degrees counter clockwise.

I build a rotation matrix like this:

I then just transform the vector with:

D3DXVec2TransformCoord(&res, &D3DXVECTOR2(x,y), &rotation); //x = 589,y = 277

The resulting x is the correct one: 276, but the y is very far from the correct result: -589 (it should be something in the range 0-10)

What am I doing wrong?

EDIT: I also tried using a 3d vector with the z = 1..the same

Edited by noatom

Share on other sites

Alternatively:
-y, x 90 degrees clockwise
y, -x 90 degrees counter-clockwise

Share on other sites

You're getting the results you're asking for in the calc. A position of 589 on the X-axis rotated by 90 degrees is at -589 on the Y-axis. Can you describe what you're trying to do, rather than how you're trying to do it?

Do you want to rotate the sprite by 90 degrees (in its current position), or rotate its position by 90 degrees?

If you're trying to rotate the sprite (assuming you're using ID3DXSprite), take a look at ID3DXSprite::SetTransform.

Edited by Buckeye

• What is your GameDev Story?

In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

• 19
• 15
• 10
• 9
• 11
• Forum Statistics

• Total Topics
634097
• Total Posts
3015509
×