2011-04-09 42 views
0

我有2個變量。作爲一個變量增加另一個減少

float Speed;

float SteeringAngle;

我的速度值目前增加。我想要做的是隨着速度的增加而減小轉向角度。這應該是一個簡單的等式,但我似乎無法解決這個問題。

感謝

+0

乘以1 /速度。 – 2011-04-09 18:51:49

+0

不幸的是,我不認爲這會工作,因爲速度可以爲0. – MulletDevil 2011-04-09 19:05:33

回答

1

最明顯的辦法是這樣的:

Speed = factor/steeringAngle; 

編輯:哎呀 - 我誤解你的要求。如果你想減少轉向角隨着速度的增加,你想要的東西,如:

if (speed > 0) 
    steeringAngle -= factor/speed; 
+0

重新排列這個給steeringAngle將是 'steeringAngle = factor/speed' 這意味着我認爲可能會發生除以0。 – MulletDevil 2011-04-09 19:08:09

+0

謝謝你。現在工作了,歡呼。如果(steeringAngle_ <0)' 'steeringAngle_ * = -1;我必須添加另一個if語句來停止轉向角度爲負數 ' – MulletDevil 2011-04-09 19:41:59

1

你可以試試這個公式:

  • 因素 - 一些範圍1..N用於縮小轉向角度。
  • maxSpeed - 最大系數應用於減小轉向角的預期最大速度值。
  • requestedAngle - 當前所需的轉向角

float factor; 
float maxSpeed; 
float requestedAngle; 
float Speed; 

float SteeringAngle = requestedAngle/((Speed * factor/maxSpeed) + 1); 

有很多可能的公式。

我建議你嘗試繪製速度和角度的圖表

相關問題