2012-01-09 76 views
0

你好,新年快樂!帶貝塞爾曲線的簡單2D平面軌跡

讓我從嚴格的事實開始,而不是寫這裏的整個場景。

enter image description here

這是我

  • 在二維空間的平面(X,Y)
  • 目的地這架飛機在二維空間中飛(X, Y)
  • 從4個點(A,B,C,D)產生貝塞爾曲線的貝塞爾曲線類

這就是我需要做的

  • 當用戶單擊X空間「 Y」我需要生成一個貝塞爾曲線 這種飛機飛到那裏。

這些都是一些假設

  • 據瞭解,飛機不能在一個地方旋轉,它必須做出一些最小轉彎
  • 據瞭解,當目的地在飛機前面它不作任何轉動

  • 貝塞爾曲線必須從4點計算,其中

  • 點A =實際平面位置
  • 點B =實際平面位置+實際平面方向* 2(所以它前進一點? )
  • 點C =需要計算
  • 點d =平面目的地

這裏有一些這些場景的繪製:

enter image description here

enter image description here

enter image description here

問題

  • 如何計算這個貝塞爾曲線,我已經有了點A,d但我需要的B,C,使這把適當的。

  • 我該如何描述這個貝塞爾,讓我們說planeA比planeB有更小的轉彎?

我已經差不多了,但在這種情況下幾乎沒有什麼,所以我最好在你的幫助下重寫這個。

感謝您的任何幫助,我用這個撓我的腦袋,發現它不是那麼容易,我在想......或者?

回答

0

您所描述的B點(「實際平面位置+實際平面方向」)工作得很好。當飛機開始轉彎時,你沿飛機方向走多遠就會調整。

對於C點,將其設置爲與點D(目的地)相同將會很好地工作。至於轉折率,我不確定你會用(立方)貝塞爾曲線得到很多控制。他們都是關於位置和方向,沒有什麼可以調整二階曲率。調整B點可能是一個很好的折中,但它更多地調整反應時間和路徑,而不是調整速度。

+0

是的,但是如果我完全點擊飛機後面,它仍然不起作用 - 它會在到達B後在一個地方轉身並繼續轉向C(這是D)。好的,這是如此火箭科學,它不能完成? – PeeS 2012-01-10 09:45:29

+0

你是那個想用貝塞爾曲線做的人。在我看來,這樣做會很容易處理所有情況,即可能會讓事情變得更加困難而不是簡單。也許你可以從你的飛機的最佳轉彎速度開始,然後在你指向正確的方向時用一條直線。 – wxffles 2012-01-12 22:29:43

+0

好吧,我會用另一種方法,只是計算到目的地的角度,旋轉我的飛機,直到它的角度+ - 等於目的地角度,飛向那個方向。發現貝塞爾過於複雜這個簡單的遊戲.. – PeeS 2012-01-13 13:42:13