2011-01-08 7 views
2

これはちょっと明白かもしれませんが、数学は学校での私の強い訴訟ではありませんでした。私は壁に向かって頭を強く叩いていたので、ついに私は頼むと思った。パラボラ放物線の方程式と任意の時刻の正接の角度

私は、点Aから点Bまでの2D放物線経路に沿って移動するスプライトをアニメートしようとしています。両方の点は同じy座標にあります。開始/終了のy座標からの放物線の所望の高さも与えられる(または所望の場合、所望の速度)。現在私のコードでは、タイマーは高い周波数で起動しています。私は、経過した時間に基づいてボールの新しい位置を計算したいと思います。したがって、パラボラ放物線方程式はうまくいくはずです。

私の要件が大きくなるまで、私はthis answer from GameDevが適切であることを発見しました。(私はその本当の放物線のパスがわかりませんが...私は提供された最後の式の導出に従うことができません)。今、私はスプラットをパラボリックなパスに沿って異なるポイントで押しつぶしたりストレッチしたりしたいと思います。しかし、正しく動作させるには、スプライトを回転させて、主軸がパスの接線になるようにする必要があります。だから私は、任意の場所/時間で接線の角度を導き出すことができる必要があります。

私は、これらの要件(パラボラ放物線、ある点での接線など)のすべての種類の方程式を見つけることができますが、それらをすべて統一する方法はわかりません。より多くの数学的スキルを持つ人が、仲間のコーダーを助け、働く数式を提供できますか?あまりにも事前にありがとう。

+0

スプライトを一定の速度で動かすか、速度の水平成分を一定にしますか? – user434507

+0

一定の水平速度。ボールが投げられるように。 –

答えて

1

XをAからBまでの距離、Yを放物線の所望の高さ、Vを水平速度とする。

x = Vt 

y = Y - (4Y/X^2) (X/2-Vt)^2 

tangent dy/dx = (8Y/X^2) (X/2-Vt) 
+0

ありがとう、これは完全に動作します。 –

3

何が欠けていることは、これは次のとおりです。

Slope = TAN(angle)  // in radians 

スロープとは何ですか?どのくらい移動するかは、どれだけ移動するかによって異なります(他の回答ではdy/dx)。 xyの両方が時間の関数であるため、実際には(dy/dt)/(dx/dt)です。

そこで軌道x(t)=Vx*ty(t)=Vy*t-1/2*g*t^2ため傾きはVx初期水平速度、及びVy初期垂直速度でSlope=(Vy-g*t)/Vxあります。 gは重力(垂直加速下)です。そう度での回転が

angle = ATAN((Vy-g*t)/Vx) * 180/PI 

なければならない基本的に傾きが水平速度と垂直速度の比に等しいです。

+0

私はこれをやろうとしましたが、スプライトが点Aから点Bに移動することはありませんでした。正しい軌道を計算する必要があります。しかしそれ以外のところは素晴らしい答えです。角度と傾き(dydx)の関係について必要な理解を与えてくれました。 –

関連する問題