2016-08-20 15 views
2

私はゲームAPIを使用しているプロジェクトでは、ジェットコースターを作成しようとしています。このジェットコースターは3次元ベクトルを使ってどこに行くかをカートに伝えます。角度に基づいて加速度を計算する

変数(I)を使用して、どのポイントに移動するかを指示します。たとえば、I = 1は、カートがレール上のポイント1に移動することを意味します。実際のジェットコースターのようにトラックに沿って動かすベクトル配列の終わりまで私はインクリメントすることができます。

これは、カートの動きが線形で、レールの角度に応じて加速しないことを意味します。

カートが現在持っている角度とどの加速度が必要なのかに基づいて、カートをどのレールに移動させるべきかを計算するアルゴリズムを探したいと思います。私は以下のイメージがこれをよりよく説明してくれることを願っています

説明1

Explanation 1

説明2

Explanation 2

+0

画像へのリンクを投稿すると良いことではありません –

+0

@EdHeal StackOverflowは画像埋め込みをサポートしています:画像が投稿に役立つ場合は、素晴らしいアイデアです。 – naomik

+0

私は画像へのリンクを言った –

答えて

1

これはレベルの数学で覆われている比較的単純力学、です。

自由落下では重力加速度が10ミリ秒である^ -2と=ミリアンペアFを使用し、我々はあなたがそこに傾斜軌道に乗っている場合、我々は今G.

を呼ぶであろう重力による力を計算することができますトラックに垂直な反力である。これは、その方向の重力の成分をバランスさせ、基本的にカートがトラックを通り抜けないことを意味する。トラックに平行な重力の別のコンポーネントがあります。このコンポーネントは加減速を与えます。

次にトラックが二つの成分水平に対して角度θである場合、これらの第二は興味深いものである

G cos(theta)   perpendicular to the track 
    G sin(theta)   parallel to the track 

あろう。トラックに沿った方向に加速を 10 sin(theta)とする。

\ 
    \ 
    \  ^R 
    \ /
    \ /
     \/
     |\ 
     | \ 
     | \ 
    G V \ 
      \ 

カートに作用する2つの力。

\ 
    \ 
    \  
    \  
    \ 
     \ \ 
     \ \ 
     \ V 
     \ G sin(theta) 
      \ 
      \ 

結果としての力。

ここで、時刻t以降の位置を計算するために、Equations of motionを使用できるアクセラレーションがわかりました。我々が望む式

R = R0 + V Tを+ 0.5 T^R0が初期位置である2

は、Vは加速度であり、tは経過時間であり、初期速度です。あなたのトラックが湾曲しているので、tで多くの小さなステップを使用し、それぞれの加速度を計算し、速度がトラックに沿っていることを確認する方が良いでしょう。

トラックを区分線形と見なす場合は、あるセグメントの開始から次のセグメントの開始までの時間を計算することができます。

+0

おかげさまでありがとうございました。私はカートが私のシステムで加速したり減速したりするかどうかをどのように判断するのかと思っています。 1本のレールが完全に垂直であれば、上がるか下がるかのいずれかです。申し訳ありませんが私は何かを逃した場合...私は趣味のためのプログラムとおそらく十分にこのことを理解するのに十分な年齢ではないです。 –

+0

加速度は常に下向きです。カートが丘を上っている場合、ネットの結果は減速になります。 –

関連する問題