2014-09-05 1 views
0

각도가 주어지면 발사체의 이동 벡터 (프레임 당 x와 y를 얼마나 변경해야하는지)를 계산하려고합니다.각도에서 이동 벡터 계산에 대한 조언

x = Acos (각도), y = Asin (각도)으로 값을 얻으려고했으나 발사체 움직임의 방향이 절대 각도와 일치하지 않는 것 같습니다.

근본적으로 나는 발사체가 마치 줄을 버리는 것처럼 여행하기를 원합니다.

나는 XNA 프레임 워크 C#에서이 쓰고, 일체의 조언이 크게이 시도

답변

1

을 감상 할 수있다 :

x=x0+v*cos(ang)*t 
y=y0+v*sin(ang)*t 
vx=v*cos(ang) 
vy=v*sin(ang) 
vx0=cos(ang) 
vy0=sin(ang) 
  • X, Y, 시간
  • 총알 위치입니다
  • VX가 VY 총알 속도 벡터
  • vx0이다 vy0 총알 방향 단위 벡터
  • X0이고, Y0은 bulet 개시는 위치
  • V는 총알 속도에게 있습니다
  • t
  • 중앙 총알의 각도 (위치 X0, Y0에서) 촬영의 beginig에서 전달 시간 (에 왜냐하면 각 죄에 대한 올바른 단위에 반드시 당신의 플랫폼 라디안 /도) 당신의 각도가 화면이 다음 좌표계 일치하지 않는 경우
  • 당신이 하나 개의 축 (보통 Y) 나는 당신의`x0`과`y0`을 삭제해야한다고 생각
+0

를 반전해야 할 것이다 방정식. 예 :로 변경 'x = v * cos (ang)'. 현재 발사체 위치는 속도 벡터 (이 경우)와 관련이 없습니다. – Floris

+0

@Floris 예 답변의 마지막 부분에 쓴 것처럼 나는 그것이 결국 어쨌든 그가 필요로하는 위치 방정식을 제공합니다. 그리고 그에게 움직임 벡터가 정확히 무엇인지 말하기는 어렵습니다 ... – Spektre

+0

그렇다면 여전히 작동하지 않습니다. 증분 위치 벡터는 예를 들어, x = x + v * cos (ang) 여기서 x = x0을 초기화합니다. – Floris