물체의 속도를 전체 곡선에서 일정한 값으로 유지하려는 것처럼 들립니다. 호 길이를 알면 도움이되지 않습니다. 객체가 해당 속도로 진행중인 경우 종말점에 도달하는 시간을 계산하는 데 도움이 되므로 현재 상태보다 낫습니다 (객체는 모든 포인트간에 동일한 평균 속도를 가짐). 물체의 실제 속도는 곡선 주위를 이동할 때 여전히 변합니다.
더 나은 솔루션은 우리의 파라 메트릭 매개 변수를 변경하는 것 (0 ~ 내가 전화 할게 1, 간다 매개 변수 s
와 회피 혼란 t = time
) 가변 속도 ds/dt
는 물체가 움직이고 싶은 일정 속도 무엇에 의해 결정된다, 커브상의 점. 다시 말해, s
각 프레임 당 0.01 씩 변경 하는 대신 한 프레임 당 0.005, 다음 프레임에서 0.02 씩 변경할 수 있습니다.
각 프레임 의 x
( dx/ds
) 및 y
( dy/ds
) 의 미분 값을 계산 한 다음 설정하여
ds / dt = 속도 / sqrt ((dx / ds) 2 + (dy / ds) 2 )
즉, 우리가 가고자하는 속도를 가져 와서 s
고정 된 증분 으로 변경하면 실제로 가고있는 속도로 나눕니다 .
증명
우리는 물체의 속도가 일정하기를 원합니다. 그 상수에 이름을 부여합시다 speed
.
우리는 2 학년 수학이, 파라 메트릭 방정식에서 학습 x(s)
과 y(s)
,
속도 = sqrt ((dx / dt) 2 + (dy / dt) 2 )
우리는 또한
dx / dt = dx / ds * ds / dt (체인 규칙)
그러므로,
속도 = sqrt ((dx / ds) 2 (ds / dt) 2 + (dy / ds) 2 (ds / dt) 2 )
를 풀면 ds/dt
명시된 방정식이 나온다.
파생 상품 계산
나는 그 특정 스플라인 함께 일한 적이 있지만, 나는 그들이 그냥주고 이해 x(s)
와 y(s)
의 입방 방정식의 관점에서 s
. 따라서 파생 상품을 dx/ds
쉽게 찾을 수 있습니다.
x (s) = a * s 3 + b * s 2 + c * s + e
그때
dx / ds = 3a * s 2 + 2b * s + c
(동일에 대한 dy/ds
) 물론, 당신의 정확한 값을 알아야합니다 a
, b
그리고 c
이 작업을 수행 할 수 있습니다. 이 페이지 에 따르면 이러한 값을 쉽게 찾을 수 있습니다.
마지막으로, 제목의 질문에 답하기 위해 : 파라 메트릭 함수의 호-길이 방정식을 찾는 것은 상당히 복잡한 명확한 적분을 푸는 것입니다 . 입방 방정식의 간단한 경우에도 일반적으로 수행 할 수 없습니다.
따라서, 정수 를 추정 해야합니다 . "10 개 직선으로 스플라인 절단과 길이를 합산" 당신이 제안대로 것은 이 일을 한 아주 간단한 방법은 ; 그러나 더 적은 수의 라인 세그먼트를 사용하여 훨씬 정확한 결과를 제공하는 약간 더 복잡한 방법 이 있습니다.