1

私はアンドロイドで遊んでいて、正弦波で手榴弾の動きをシミュレートしたいと思っています。誰かが構文を手伝ってくれませんか?

これは、私が持っている小さな数学の知識で試したものです。

mPositionX += mSpeed;
mPositionY = (float) (0.5f * Math.sin(mTargetX * mPositionX));
setPosition(mPositionX, mPositionY);

しかし、それは本当に私が期待したことをしません..

私の mPositionX/Ys の初期値は手榴弾のスポーンポイントであり、mTargetX/Y は、正弦波が半波 (半円のように) したい場所です。手榴弾が着弾する場所。

私の位置の値はパーセンテージであるため、言及する価値がある場合は、0.5 がキャンバスの半分などです。

4

1 に答える 1

1

正弦波に使用した概念は奇妙に思えます。正弦波では、式は次のとおりです。

y=sin(x);

これは正弦波で機能するはずです

mSpeed=constant;
mTargetX = constant2;
mOriginalX=constant3;
mDistanceX=mTargetX-mOriginalX;

今、繰り返し呼び出されたonDraw

mPositionX+=mDistanceX/mSpeed; //Distance divided by speed
mPositionY=(float) (0.5* Math.sin(Math.PI*(Math.abs(mPositionX-mOriginalX))/mDistanceX); 
            //Assuming you want it to go to pi degrees
            //Divide current distance by total distance * total angle reqd
于 2013-01-25T04:28:36.490 に答える