2011-01-09 76 views
1

alt text大家好。计算两个Vector2之间围绕一个枢轴点的旋转

了好长时间周日谷歌,我将不得不挂我的头在耻辱和提出问题后...

我已经是一个支点vector2,“前” vector2和“当前” vector2。

我希望能够计算它们之间的弧度旋转。一个轻微的复杂情况是这个事实,即关键点可能会在先前和当前之间移动,但如果您没有时间将这些信息纳入折叠,则会将错误作为单独问题处理。

为了澄清,一个物体有两个向量,一个枢轴和一个底座......坐在中心的枢轴和底部的底座围绕外部枢轴旋转。我需要使用两个向量来计算物体本身围绕其中心的旋转。

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

背景问题

我有一个游戏,其中一个目的是围绕一个外部枢轴旋转。通过使用两个点(一个在中心,一个在对象的底部),我想要制定出需要应用到围绕其中心的对象精灵的旋转以符合已应用的较大旋转。

+0

不能确定主枢纽如何进入这个。你想要obj.cur.base - > master - > obj.prev.base之间的角度吗?或者obj.cur.pivot-> obj.cur.base和obj.prev.pivot - > obj.prev.base?之间的角度差异无论哪种方式,交叉产品是要走的路,听起来就像这个信息,你应该能够弄清楚细节。 – 2011-01-09 13:55:03

+0

是的,我现在只是在玩它,我认为我通过尝试使它更加清晰而使情况更加复杂。主轴只是对象移动和旋转的原因。即物体已经围绕主轴旋转了,所以现在我需要看看物体由于那个旋转而围绕其中心旋转了多少。尽管我很幸运,但我觉得我已经足够了。欢呼声。 – Nick 2011-01-09 14:26:33

回答

2

采取的载体和枢轴之间的差异cross product

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