Math 计算弹球的角度

Math 计算弹球的角度,math,vector,game-physics,Math,Vector,Game Physics,现在我正在用ActionScript编写一个弹球克隆(实际上在本例中,语言并不重要)。我有以下问题:我有两个桨和一个以一定速度移动的球(表示为速度向量)。我不知道如何计算击球后球的新速度矢量。我所有的计算都大错特错了 我所拥有的: 桨的当前角度(以弧度为单位)、球的速度矢量和该矢量的当前角度(以弧度为单位),其中15708(90度)是直线向下的(例如,x=0和y=5的速度矢量) 有人知道如何处理这个问题吗。编程语言在这里并不重要-伪代码也很好。您需要在有方向的直线上镜像速度向量(vx,vy) (

现在我正在用ActionScript编写一个弹球克隆(实际上在本例中,语言并不重要)。我有以下问题:我有两个桨和一个以一定速度移动的球(表示为速度向量)。我不知道如何计算击球后球的新速度矢量。我所有的计算都大错特错了

我所拥有的: 桨的当前角度(以弧度为单位)、球的速度矢量和该矢量的当前角度(以弧度为单位),其中15708(90度)是直线向下的(例如,x=0和y=5的速度矢量)


有人知道如何处理这个问题吗。编程语言在这里并不重要-伪代码也很好。

您需要在有方向的直线上镜像速度向量
(vx,vy)

(c,s) = ( cos(anglePaddle), sin(anglePaddle))
因此,与其正交的组件将被还原,而与其平行的组件保持不变。正交分量为

(-s,c)*(-s*vx+c*vy)
所以反射向量变成

(vx,vy) - 2*(-s,c)*(-s*vx+c*vy) = ( c2*vx + s2*vy, s2*vx - c2*vy )
其中,双角度三角恒等式用于简化使用

 (c2,s2) = ( cos(2*anglePaddle), sin(2*anglePaddle)).

您需要在带有方向的直线上镜像速度向量
(vx,vy)

(c,s) = ( cos(anglePaddle), sin(anglePaddle))
因此,与其正交的组件将被还原,而与其平行的组件保持不变。正交分量为

(-s,c)*(-s*vx+c*vy)
所以反射向量变成

(vx,vy) - 2*(-s,c)*(-s*vx+c*vy) = ( c2*vx + s2*vy, s2*vx - c2*vy )
其中,双角度三角恒等式用于简化使用

 (c2,s2) = ( cos(2*anglePaddle), sin(2*anglePaddle)).

如果桨叶未移动,则此功能有效,否则需要沿接触法线方向镜像球到桨叶的相对速度。如果桨叶未移动,则此功能有效,否则需要沿接触法线方向镜像球到桨叶的相对速度。