计算绕枢轴的两个Vector2之间的旋转

时间:2011-01-09 13:33:34

标签: c# xna rotation xna-4.0

alt text大家好。

经过一段漫长的周日谷歌后,我不得不羞愧地垂头丧气地问问题......

我所拥有的是一个pivot vector2,一个“Previous”vector2和一个“Current”vector2。

我希望能够计算它们之间的弧度旋转。一个轻微的复杂因素是枢轴可能在前一个和当前之间移动,但如果您没有时间将其放入折叠中,则将错误处理作为单独的问题。

为了弄清楚,一个具有两个矢量的物体,一个枢轴和一个底座......位于中心的枢轴和底部的底座围绕外部枢轴旋转。我需要使用两个提到的向量来计算对象本身围绕其中心的旋转。

非常感谢任何可以提供帮助的人。

问题背景

我有一个游戏,其中一个物体围绕外部枢轴旋转。通过使用两个点(一个在中心,一个在对象的底部),我想要计算出需要应用于围绕其中心的对象sprite的旋转,以符合已应用的更大旋转

1 个答案:

答案 0 :(得分:1)

获取向量和数据透视之间差异的cross product

Vector2 a = Pivot - Previous, b = Current - pivot;
double angle = a.X * b.Y - a.Y * b.X;