2010-09-07 120 views
1

我正在旋转其中心点周围的图像,但需要跟踪图像旋转时的位置。图像旋转和跟踪位置

鉴于:

  1. 原点(0,0)处
  2. 图像的宽度和100的高度,100
  3. 旋转点在C(50,50)
  4. 角度 “a” 的(比方说在这个例子中为90度)
  5. P点开始于(25,25)和所述旋转后它在P新(75,25)

alt text

我还没有触及20年trig的,但猜测的公式很简单...

回答

2

我还没有触及20年trig的,但猜测的公式很简单...

是的,相当。要通过绕原点旋转映射点(X1,Y1):

x2 = cos(a) * x1 + sin(a) * y1; 
y2 = cos(a) * y1 - sin(a) * x1; 

...所以你只需要先转化为原点,即(-50,-50),在你的榜样和翻译后回回转。

x2 = cos(a) * (x1 - 50) + sin(a) * (y1 - 50) + 50; 
y2 = cos(a) * (y1 - 50) - sin(a) * (x1 - 50) + 50; 

...或者类似的东西。 (你可以生成一个矩阵,它将完成所有三个转换,我会将其作为另一个答案或作为练习...)

+0

非常感谢。起初我并不认为这是正常工作,但唉,几何中的角度是有效的逆时针。我的应用程序将所有角度视为顺时针。只需要添加一些负号。 – andleer 2010-09-07 17:55:27