2012-12-12 2 views
0

난 당신이 내가 회전을 가지고 보통이기본적인 수학 회전, 잘못된 결과

좀 도와 내가 객체를 회전 할 위치를 얻으려고 수 있다면 멋질 것, 기본 대수를 해결하기 위해 너무 멍청 해요

var rads : Number = rotation/180 * Math.PI; 
position.x = Math.cos(rads); 
position.y = Math.sin(rads); 

이 시간에 당신의 도움이

편집 사전에, 덕분에 나는 위치를 가지고 있지만 회전을하고 싶지만 내가 노력 모든 거짓 : 같은 문제를 가지고 사람들과 액션 스크립트를 사용하기위한 3 (또는이 기능을 가진 모든 것) 실험 위트 h Math.atan2() 그것은 당신에게 많은 어려움을 덜어 줄 수 있습니다 - 더 빠르고 쉽게

답변

1

대부분의 언어는 네 개의 사분면에 정답 을 제공 상승을 소요하고 실행하고 당신을 위해 모든 무거운 않습니다 atan2()라는 함수를 제공합니다.

>>> math.atan2(-1, 1) 
-0.7853981633974483 
>>> math.atan2(-1, 1) * 180/math.pi 
-45.0 
+0

jeah 방금 이것을 발견했습니다. Works perfekt 덕분에, 첫 번째 대답은 비록 언어가 atan2를 지원하지 않는다면 작동해야합니다. – tschery

+0

가장 중요한 비 장난감 언어 (및 상당수 장난감 언어)가 지원합니다. –

+0

haha ​​ok 많은 언어에 익숙하지 않은데, 나를 위해 잘 작동합니다. (as3 사용) – tschery

1

저는 긍정적 인 x 축과 원점에서 시작하는 선분 사이의 각을 얻는 방법을 묻고 있다고 생각합니다 (x, y). x와 y는 토론을 단순화하기 때문에 긍정적 인 것으로 가정하고, 그렇지 않은 경우에는 긍정적 인 방향으로 만들고 해당 축을 가로 질러 그 각도를 반영 할 수 있습니다.

각도의 코사인은 x/Math.sqrt(x*x + y*y)으로 얻을 수 있습니다. 그러면 그 값에 대한 Math.Acos는 arccos (찾고있는 각도의 값)를 라디안 단위로 계산합니다.

+0

제 아 당신이 맞습니다. 나는 그것을 요구하는 법을 알지 못했습니다. X와 Y는 양수가 아니므로 해당 축을 가로 질러 각도를 어떻게 반영합니까? thanks alot =) – tschery

+0

X가 음수이면 -1을 곱한 다음 위의 계산을 수행 한 다음 Math.PI에서 결과를 뺍니다. Y가 음수이면 -1을 곱한 다음 위의 계산을 수행 한 다음 2 * Math.PI에서 결과를 뺍니다. X와 Y가 모두 음수이면 -1을 곱한 다음 위의 계산을 수행 한 다음 결과를 Math.PI에 추가합니다. (나는 이것을 빨리 써야한다. 그러나 그것이 효과가 있다고 생각한다.) – David

+0

고마워요. 모든 것을 아주 잘 설명하고 제아무리 일을해야합니다. 지금 시도해보십시오. – tschery