3

我試圖在物理引擎的圓度/曲率中給出形狀。定義曲線的方法

我知道的數學定義曲線的各種方法;比如bezier-cruves,橢圓等。但我不確定哪種方法最適合用在我的物理引擎中,因爲必須考慮速度,構造的可行性和每種方法的靈活性。我想要一個系統,用戶可以很容易地形成相當複雜的曲線,但仍然可以使交點計算簡單快捷。

我的物理引擎也純粹連續的,這意味着我必須能夠計算其中曲線將與基於恆定線性/角速度其它曲線與線路碰撞的時間。

  • 有什麼技術可以在數學上定義2D曲線?

  • 在速度,靈活性和結構簡單性方面,每種方式的優點/缺點都有哪些?

  • 該技術是否適用於形狀相交可預測性至關重要的發動機?

回答

3

就像你的標籤所說的,你描述的是Bezier curves。它在數學上定義得很好,所以你可以使用它來進行碰撞檢測,儘管取決於你在做什麼,這可能會使得方程式難以編寫和解決。我對這件事不太瞭解,但似乎是處理樣條的標準方法是NURBS,維基百科似乎在這個主題上有相當多的文章。 NURBS的文章可能涵蓋了所有這些,但是在一組點之間繪製平滑曲線的快速和骯髒的方法是通過在每兩個點之間插入三次多項式以使得一階導數在邊緣處匹配來使用cubic splines。這樣你就可以得到一條貫穿你所有點的曲線,並且在任何地方看起來都很光滑,在最初的點上沒有尖角。