从倾斜的表面反弹

时间:2013-09-11 08:00:56

标签: actionscript-3 math physics

我可以计算斜线和我的球之间的距离(用法线向量),但是如何计算新的速度呢?

Illustrative image

2 个答案:

答案 0 :(得分:1)

如果向量v =(vx,vy)是初始速度且平面具有正常n =(nx,ny)则新的反射速度向量r将

r=v−2(v⋅n)*n

产品(v⋅n)是v和n的点积,定义为vx nx + vy ny。请注意,平面法线必须标准化(长度为1.0)。一个相同的问题,答案相同https://math.stackexchange.com/questions/13261/how-to-get-a-reflection-vector

答案 1 :(得分:1)

安德斯的答案很好,但我意识到你可能没有很好的数学背景,所以我会详细说明。你现在遇到的问题很难说清楚。但是,请参见下图

enter image description here

这将允许我们推导出您需要的等式。现在,两个向量 a b ab 的标量积给出 a 的幅度乘以投影 b a 。基本上,如果我们将 n 作为单位向量(每个组件方向的幅度1),那么 a 给出 a 的组件的大小朝着 n 的方向行事。

因此,将速度分量分成平行且垂直于平原的那些;要获得速度 V ,我们首先将 U 拆分为组件。

垂直于 n 方向的平面,我们有一个矢量速度 w =( Un n 。这意味着事实上我们可以写 U =( Un n + [ U - (联合国 n ]。这就是说 U 由其自身的垂直分量+自身的平行分量组成。现在, - V U 非常相似,但并行组件反向运行,因此我们可以写 - V =(联合国 n - [ U - (联合 n ]。

结合以上结果给出了Anders所说的结果,即 V = U -2 [( Un n ]。点/标量乘积被定义为 ab = | a || b | cos(A)其中A是从尾部到尾部放置的矢量之间的角度,这应该可以让您解决问题

我希望这会有所帮助