2017-07-27 145 views
0

這是用於物理引擎的:用於浮點校準的測試

當物體在斜坡上碰撞時,其速度將相應地調整爲平行於所述斜坡。

要檢查一個物體是朝向還是離開斜坡,我使用坡度法線和物體速度之間的點積。

問題出在浮點數學上。有時,物體的速度與坡度平行,但不完全平行,導致它被檢測爲碰撞。

在大多數情況下,這是不正確的,因爲速度將不斷被重新調整爲平行,再次檢查並再次被檢測到。

有沒有辦法避免這種行爲,而不必存儲額外的變量?

(我可以輕鬆地添加斜率的副本,以檢查它最近打,但是這將導致更多的檢查每一個對象)

回答

0

您可以設置從斜率偏差最小的是導致碰撞檢測檢查。即如果斜坡非常相似,則不要檢查是否有碰撞。例如應該看作小於0.01°的偏差平行。

+0

這是可能的,但它會導致在檢查前將點積除以斜率的長度。否則,較長的斜坡將具有與較短的斜坡不同的閾值。事實上,這增加了一個平方根檢查是非常糟糕的,因爲它很難計算。 – ZeroZ30o

+0

您可以將斜率的法線除以斜率的長度一次,然後您不必一遍又一遍地重複該劃分。但是,根據使用情況,這當然會對性能產生重大影響。 – yar