2012-03-26 9 views
2

Android에서 내 코드에 문제가 있습니다. 나는 공을 움직이기 위해 이것을 사용하고있다. 학위가 90이면 오른쪽으로 이동해야하며 학위가 180이면 등이 내려야합니다.Android에서 죄와 죄의 문제가 발생했습니다.

이것은 내가 수행 한 코드입니다.

int degrees=180; 
int bollspeed=4; 

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

문제는 볼이 180 이동 90 개도를 이동해야 할 때이다, 그것은 180도 이동해야 할 때 내가 생각하는 올 수있는 모든 테스트 한 270가 ... 사람이 오류를 볼 수 이동 내 코드에서 또는 expanation 내가 정말 기뻐할 것입니다. 감사합니다.

답변

8

어때 대략 Math.toRadians(degrees-90)? 극좌표를 사용할 때 0 도는 12 시가 아닌 3시에 있어야합니다.

+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


죄 (0 °) = 죄 (0) = 0

,451,515,

죄 (90 °) = 죄 (π/2) = 1

죄 (180) = 죄 (π) = 0

죄 (270 °) = 죄 (3π/2) = - 1