2010-08-05 3 views
1

프레임을 그릴 때마다 X 좌표가 증가하면 Y 좌표가 원주를 따라 이동하도록 수학 라이브러리에서 어떤 공식을 사용할 수 있습니까? 연속적으로 움직이는 중심점 주변에서 궤도를 선회하는 물체의 환영을 만드는 프레임 별 원 프레임?Android 게임에서 동적으로 원의 점 계산

나는 그것이 sin 또는 cos를 포함할지 모르지만 프레임마다 변수를 조정하는 방법을 잘 모르겠습니다. 당신의 X 좌표 절반의 시간을 감소시키는되어야하기 때문에 당신의 X는 모든 시간 단위를 조정하는 경우

많은 감사 당신의 도움이

답변

1

을 위해 당신은 완전한 원을 만들 수 없습니다.

극좌표는 각도에 대한 theta와 반지름에 대한 r입니다. 귀하의 r은 일정하게 유지되며 귀하의 세타는 계속 증가합니다. 그런 다음 x와 y는 다음과 같습니다 원의 (px-ox)^2 + (py-oy)^2 = r^2 정의 :

x = r * cos(theta) 
y = r * sin(theta) 
+0

제 질문에 답변 해 주셔서 감사합니다. 게임 환경에서 수학을 적용하면 전체 주제가 훨씬 더 흥미로워지며, 아이들을 가르 칠 때 이것을 사용해야합니다! – ComethTheNerd

+0

이 공식 덕분에 이제는 아름답게 일합니다. – ComethTheNerd

0

ox,oy이 원의 기원, 그리고 px,py 주어진 r

의 반경, 원의 가장자리에 포인트가 될 수 있습니다

는 평에 대한 해결 :

(py-oy)^2 = r^2 - (px-ox)^2

당신이 당신의 프레임으로 px을 증가 0 (py-oy) = sqrt(r^2 - (px-ox)^2)

py = sqrt(r^2 - (px-ox)^2) + oy <

---

그래서, 당신은 위의 공식을 재 계산하여 적절한 py을 찾을 수 있습니다.

+0

대단히 감사합니다. 나는 가능한 한 매끄럽게 게임을 유지하기 위해 각 프레임의 포인트를 계산하고 각 루프마다 증가하는 인덱스에서 읽을 수있는 배열에 저장한다고 생각합니다. 이 값을 동적으로 계산하려면 surfaceChanged 메서드가 호출되면이 값을 다시 계산해야합니다. 도움 주셔서 대단히 감사합니다. – ComethTheNerd