簡體   English   中英

如何計算撞牆的球的反射角

[英]How to calculate reflection angle of a ball colliding with a wall

我有一個球,並且正朝着這樣的角度移動它:

ball.x += ball.speed * Math.sin(ball.angle)
ball.y += ball.speed * -Math.cos(ball.angle)

球與牆碰撞時如何計算反射角?(水平或垂直)

這樣

對於具有法向矢量e_n的任何牆,具有初始速度矢量v_i的球在反射后具有以下速度矢量v_f

v_f = v_i - 2 dot( v_i, e_n) e_n

其中dot是矢量點積。

說明: v_ie_n上的投影為dot( v_i, e_n ) 這是朝向牆壁的速度,這是反射時反轉的部分。 分量p = dot( v_i, e_n )得出向量p e_n 剩余分量可以通過叉積或簡單地通過v_s = v_i - p e_n 最終速度是v_s - p e_n = v_i - 2 p e_n = v_i - 2 dot( v_i, e_n) e_n分量加上反向投影分量,即v_s - p e_n = v_i - 2 p e_n = v_i - 2 dot( v_i, e_n) e_n

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM