1

我正在玩android,想尝试用正弦波模拟手榴弹运动。有人可以帮我语法吗?

这是我用我所拥有的小数学知识所尝试的:

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 回答