2013-10-22 78 views
1

的情況是這樣的:2 2D線反射重疊線

enter image description here

我的2D線衝突檢測工作以及反射也會做。但是我遇到的問題是,當一條線與三角形的頂點碰撞(即2DLine = line(1),line(2),line(3))時,它有時反映在期望的線上,但有時它反映在錯誤的線上。

換句話說,在上圖中:紅線有時反映在預期的線條(3)上,有時反映在線條(1)上,當它反映在錯誤的線條上時(圖像上的線條1)它進入三角形內部並反射,直到它碰撞一個頂點。我知道問題是三角形的線條重疊,如果紅線與線條(1)發生碰撞,我的函數首先檢查,如果它與線條(2)和線條(3)一致, ,所以紅線首先反映在線(1)上,但我不能用另一種方式來解決這個問題。

+0

我想知道爲什麼有人沒有評論就低估了這一點。我認爲這是一個完全合理的問題。 – Dan

+0

@Dan當你試圖鼓勵人們遵循StackOverflow規則時,有時候他們不會很好心,所以downvoting是他們報復的方式。這就是其中的原因...... – Christian

+1

幸運的是,在所有復仇者中,有一千個合理用戶。 :) – Dan

回答

1

用戶可以:

(a)將新的速度矢量(C - P1),其中C是該三角形的中心,P1是頂頂點。換句話說,從三角形彈開。 (b)忽略頂點碰撞。

這取決於您希望模擬的準確程度。對於遊戲,我通常會選擇忽略這種罕見的情況,而不是編寫特殊的代碼來「正確」處理它們。只要結果看起來合理,沒有人會注意到或關心。

+0

我會嘗試(一),它可能工作! – Christian