2012-03-26 11 views
2

Androidで自分のコードに問題があります。私はこれをボールの移動に使用しています。度が90の場合は右に移動し、度が180の場合は下に移動します。Androidのcosとsinの問題

これは私が行ったコードです。

int degrees=180; 
int bollspeed=4; 

bollX += bollspeed*Math.cos(Math.toRadians(degrees)); 
bollY += bollspeed*Math.sin(Math.toRadians(degrees)); 

問題はボールが90度を移動する必要があるとき、それは180を移動させ、それが180度を移動する必要がある場合、それは私が...誰もが任意のエラーを見ることができます考えてみることができるすべてをテストした270を移動させていることです私のコードでは、またはexpanationが本当にうれしいです。 ありがとう

答えて

8

どうすればMath.toRadians(degrees-90)?極座標を使用する場合、0度は3時であり、12時ではないと仮定されます。

+0

それは知らなかった。どうもありがとう –

4

なぜ90度を減算しないのですか?

bollX += bollspeed*Math.cos(Math.toRadians(degrees-90)); 
bollY += bollspeed*Math.sin(Math.toRadians(degrees-90)); 
3

90度はπ/ 2に相当します。コサインπ/ 2 = 0なので、Xのボール速度は変わらないはずです。

π/ 2 = 1の正弦そうYにおけるボール速度が1

度増やす必要が|ラジアン|値


COS(0°)= COS(0)= 1つの

COS(90°)のcos(π/ 2)= 0

のcos(180°)= COSを(= π)= -1

のcos(270°)=コスト(3π/ 2)= 0


SIN(0°)= SIN(0)= 0

SIN(90°)= SIN(π/ 2)= 1つの

罪(180°)= SIN(π)= 0

罪(270°)= SIN(3π/ 2)= - 1

関連する問題