2011-11-05 4 views
2

평면에서 2 점 사이의 움직임을 시뮬레이션하는 데 도움이 필요합니다. 두 점 P1을 고려하십시오. (x, y1)P2 : (x2, y2). P1과 P2 사이의 거리를 계산합니다 (예 : D). 임의의 속도를 선택합니다 (예 : V). 다음으로 P1에서 P2로 이동하는 데 필요한 시간을 계산합니다 (예 : ). 마지막으로, P1과 P2 사이의 직선의 방정식을 y = mx + b로 계산합니다.2D에서 움직임 시뮬레이션

예를 들어, T = 10 초로합시다. 처음 9 초 동안 나는 10 초에 P2 지점에 도달 할 때까지 직선에서 초당 포인트를 생성하고 싶습니다. 그렇게 해주면 제발 도와 주실 수 있겠습니까?

답변

4

가장 좋은 방법은 파라 메트릭 식

t 0 1 (실시 예 0.5 반 수단)로부터가는 "시간"파라미터
x = x1 + t*(x2 - x1) 
y = y1 + t*(y2 - y1) 

을 사용하는 것이다. 당신은 또한 당신의 운동은 "소프트"로 좋아하는 경우에

이 수정 방정식

w = 3*t*t - 2*t*t*t 
x = x1 + w*(x2 - x1) 
y = y1 + w*(y2 - y1) 

을 사용할 수 있습니다 (다음 가속 감속 및 도착 지점에 정지 한 후, 0의 속도에서 시작) 다음은이다 11 점 (t = 0.0, 0.1, ... 0.9, 1.0)과 선형 분포 t에 비해 w 곡선의 플롯 : 응답 용

enter image description here

+0

감사합니다. 매개 변수 t를 이해했는지 확인하고 싶습니다. 위의 예에서 P1에서는 t = 0이고 P2에서는 t = 1입니다. P1과 P2 사이에 9 개의 좌표를 생성하려면 t는 0.1, 0.2, ..., 0.9가됩니다. 그게 맞습니까? – NewToAndroid

+0

@NewToAndroid : 예 ... 두 공식의 차이점은 첫 번째 경우 점이 균등하게 간격을두고 두 번째 점은 가속 - 감속 곡선을 사용하여 분포된다는 것입니다. – 6502