如何将椭圆动画路径旋转一定的度数?

时间:2012-10-15 04:31:39

标签: javascript math geometry kinematics

我正在使用以下内容来获取实体的x和y位置,因为它随着时间的推移沿着椭圆路径行进:

x = Math.cos(time)*width/2
y = Math.sin(time)*height/2

是否有一种简单的方法可以将整个物体旋转一定的度数,例如45或132?

3 个答案:

答案 0 :(得分:3)

您可以使用简单的旋转变换:

x1 = x*cos(a) - y*sin(a)
y1 = x*sin(a) + y*cos(a)

a - 是要旋转的角度。

Wikipedia article详细说明了

答案 1 :(得分:1)

对于您使用上面的等式计算的每个点(x,y),您可以通过以下等式将其旋转θ度(逆时针)

  • x'= x * cos(theta) - y * sin(theta);
  • y'= x * sin(theta)+ y * cos(theta);

其中x和y是旋转前的原始坐标,x'和y'是旋转后的坐标,θ是旋转的角度。

coordinate rotation

答案 2 :(得分:0)

是的,只需对结果xy进行2D旋转即可旋转椭圆:

xrot = x * cos(A) - y * sin(A)
yrot = x * sin(A) + y * cos(A)

请记住Radians = Degrees * PI / 180