2010-07-12 6 views
1

나는 그 패스의 꼭대기에서 특정 좌표를 통과하기를 원하는 발사체를 가지고 있습니다. 나는 giogadi가 here의 윤곽을 그렸던 뛰어난 방정식을 chipmunk의 cpBodyApplyImpulse 함수로 생성 한 속도 값을 연결하여 사용 해왔다.투영 거리의 꼭대기에서 좌표 히트 좌표

방정식에는 내가 알아 내지 못했던 한 가지 단점이 있습니다. 그것은 내가 칠하고자하는 좌표가 대포 (나의 발사체가 시작되는 곳)보다 y 값이 높을 때에 만 작동합니다. 이것은 내가 아래쪽 각도로 쏠 수 없다는 것을 의미합니다.

대상이 대포와 관련된 위치에 관계없이 적합한 방정식을 찾도록 도와 줄 수 있습니까?

+0

캐논을 아래쪽으로 향하게하고 땅에 떨어질 염려가 없다면 경로에 꼭지점이 없습니다 (즉, 속도의 수직 구성 요소가 0 인 지점). 속도의 수직 성분은 경계없이 간단히 증가합니다. 발사체가 그 지점을 통과하기를 원합니까? 나는 이것이 당신에게 선택할 수있는 경로의 수를 무제한으로 줄 것이라고 생각합니다. –

+0

대상이 대포 아래에 있으면 경로의 꼭대기 (가장 높은 지점)에서 대상을 칠 수 없습니다. 각도가 수평보다 작 으면 꼭지점이 발사체의 시작점입니다! – Leftium

+0

너희들이 맞다. 나는 내 질문에 대해 더 잘 표현해야한다. 대포 아래에서 촬영할 때, 나는 그것이 목표물을 통과하기를 원할뿐입니다. – Rob

답변

0

위에서 지적한 것처럼, 정점을 대포 높이보다 낮게 만들 수있는 방법이 없습니다 (중력을 거꾸로 가하지 않고). 그러나 발사체가 대포 아래 지점을 지나갈 수 있습니다. 방정식은 모두 here입니다. 당신이 해결해야 할 방정식은 다음과

당신이 속도를 선택하고 대상의 x와 y 위치를 연결
angle = arctan((v^2 [+-]sqrt(v^4 - g*(x^2+2*y*v^2)))/g*x) 

- 대포를 가정하고 (0,0)입니다. [+-] 것은 루트를 선택할 수 있음을 의미합니다. 제곱근 함수에 대한 인수가 음수 (허수 루트)이면 큰 속도가 필요합니다. 그래서, 만약 당신이 "범위 안에"있다면, 어떤 특정한 속도에 대해 두 개의 각도를 가질 수 있습니다 (두 개의 뿌리가 같은 답을 주어야하는 최대 범위 45 도의 경우를 제외하고).

나는 하나의 궤적이 다른 것보다 훨씬 더 현명한 경향이 있다고 생각하지만, 일단 작업을하면 그 주변에서 놀아 볼만한 것이 있습니다. 표적이 대포보다 위에있는 경우에 대해 정점 방목 코드를 고수 할 수 있습니다.

+0

매력처럼 작동했습니다. 앤드류 감사합니다! – Rob