簡體   English   中英

汽車轉向算法?

[英]Car steering algorithm?

我已經問過類似的問題,但現在我有一個問題來管理和實現一個簡單的 2d(自上而下)賽車游戲的“現實”轉向。

我怎樣才能為汽車做一個“真實”的轉向? (我使用 c#,但歡迎使用另一種語言;))使用 Sin 和 Cos ? 如果是,如何? 提前致謝!

我正在午休,所以我無法對“最佳”答案做出巨大的判斷,但偽代碼如下所示:

y_change = sin(rotation) * speed;
x_change = cos(rotation) * speed;

car.x += x_change;
car.y += y_change;

您將在每一幀中執行此代碼; 旋轉將由您的轉向輸入控制,速度將由您的加速度輸入控制。

您可能想要使用其他人已經創建的物理引擎。 我聽說過有關XNA Physics API 的好消息

我想你將不得不使用正弦和余弦,但這只是一個非常大的冰山一角......

算法是:

  1. 記錄其他人的駕駛方式(使用開發版游戲)

  2. (可選)針對各種常見情況將錄音拆分為片段。

  3. 在游戲中回放錄音。 (使用合適的片段並可能在它們之間插入軌跡)。

您也可以嘗試模糊邏輯和簡單的轉向器模型。

模型將是:

x = integrate horiz_velocity by t
horiz_velocity = intergate steering_angle by t
and steering_angle = fuzzy_steering_function(...)

對於要求不高的應用程序, Brian Driscoll十年前的有用回答就是您需要了解的全部信息。 我經常使用由控制器加速度修改的速度矢量對位置進行歐拉積分。

輪式車輛的一個有趣側面是它們不會圍繞重心旋轉。 一輛典型的汽車沿着穿過后軸的線繞一個點旋轉,但很好地向側面偏移。

阿克曼轉向幾何示意圖

這個概念對於真實車輛很重要。 他們的轉向機構試圖符合阿克曼轉向幾何學,以最大限度地減少由於滑動造成的磨損。 在模擬車輛中,這些考慮因素對於模擬瞬時曲率和預測未來路徑很重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM