【发布时间】:2018-01-03 19:56:03
【问题描述】:
这是一个物理引擎:
当一个物体在斜坡上碰撞时,它的速度会相应地调整到与斜坡平行。
为了检查一个物体是朝着还是远离斜坡移动,我在斜坡的法线和物体的速度之间使用了一个点积。
问题是由浮点数学引起的。有时,物体的速度与斜坡平行,但不是完全平行,导致它被检测为碰撞。
在大多数情况下,这是不正确的,因为速度会不断地重新调整为平行,再次检查并再次被检测到。
有什么方法可以避免这种行为而不必存储额外的变量?
(我可以轻松添加斜坡的副本以检查它最近是否被击中,但这会导致对每个对象进行更多检查)
【问题讨论】:
标签: c++ floating-point floating-accuracy dot-product