2014-05-25 11 views
3

A, B, C, D로 정의 된 3 차 - 베 지어 곡선을가집니다. 여기서 A는 시작점이고, B와 C는 제어점이며 D는 끝점입니다. 어떤 값 t에서 위치를 찾는 방법을 이해합니다. 0 < = t < = 1이고 그 개념은 곡선을 생성하는 선형 보간 함수에 대한 소수의 호출을 사용하기 때문에 일반적으로 그 개념입니다. (here on wikipedia 머리글 고차 곡선 바로 아래)주어진 점에 대한 3 차 베 지어 곡선의 가장 가까운 점

이제 공간의 일부 지점에 가장 가까운 곡선에서 점을 찾으려고합니다. Google은 여러 토론을 이끌었지만 그들 중 누구도 내 두뇌의 뉴런을 "우"로 가게하지 않습니다. 사실, 그들은 정직하기 위해 모두 제 머리 위로 날아갑니다. 내 수학 지식은 내가 원하는 것보다 조금 더 제한되어야하며 파생물이 언급 될 때 조각으로 떨어집니다. 여기

구글이 나를 이끌었다 장소 중 일부입니다 : 내가 발굴 할 수없는 것 액션의 구현을 포함 중에서도

gamedev.net

stackoverflow.com (quadratic)

stackoverflow.com (close but I don't understand it)

다시, 나는 여기에 대답/코멘트 어딘가에 그것을 발견 했어 ...

누구든지이 정보가 내 두뇌를 클릭하는 데 도움이되는 지식과 인내심을 가지고 있습니까? "충분히 근접한"접근 방식을 사용하고 라인에서 가장 가까운 점을 사용하고 매우 작은 단계로 곡선을 반복하는 것을 고려하고 있습니다. 이것은 느리고 정확성은 사라질 것입니다. 내 특정 상황에서 정확성은 속도보다 우려가 덜하지만, 나는 둘 다 가질 수있는 방법이 있다고 느낍니다 ...

미리 감사드립니다. cmaster가 말한대로

+0

[this] (http://www.tinaja.com/glib/cmindist.pdf)와 관련이 있습니까?포스트 스크립트에서 이것을 구현 한 것 같습니다. – harold

+2

파생물을 사용하지 않고 설명하기에 상당히 복잡한 문제를 선택했습니다. 나는이 문제가 수학적으로 건전한 방법으로 해결 될 수 있을지 의심 스럽다. 나는 다섯 번째 루트를 해결해야한다고 믿는다. 계산할 수있는 공식이 없다. (http://en.wikipedia.org/wiki/Quintic_equation #Finding_roots_of_a_quintic_equation). 근사치를 사용하면 어쨌든 최선을 다할 수 있습니다. – cmaster

+0

나는 얼마 전에 그것을 들여다 보았고 비어 있었다. 분명히 근사치가 우리가 할 수있는 최선입니다. – BonzaiThePenguin

답변

3

,이

는 2D 또는 3D의 경우 정말 중요하지 않습니다 다항식 여섯 번째 정도의 최소를 찾기 위해 다섯 번째 다항식의 솔루션으로 이어집니다. 최소화 함수 X는 주어진 점 및 P (t) 다항식 곡선

f(t)=0.5*dot(p(t)-X,p(t)-X) such that 0<=t<=1 

다항식 여섯 정도이며 dot는 유클리드 내적을 나타낸다. 최소화 간격은 내부의 유도체

f'(t)=dot(p'(t), p(t)-X) 

의 뿌리를 모두 찾아 뿌리와 구간의 끝점에서의 함수 값을 비교함으로써 달성 될 수있다.

파생 상품을 사용하지 않는 최소화 방법이 있으며 주로 다항식보다 복잡한 함수에 사용됩니다. 브렌트, RP (1973), Algorithms for Minimization without Derivatives, 뉴저지 주 잉글 우드 클리프

에서 인스턴스 5 장 참조 : 프렌 티스 홀, ISBN이 0-13-022335-2 책은 그럼에도 불구하고 파생 상품에 다양한 섹션이 포함되어

(그리고 테일러 다항식). 이 방법이나 주요 아이디어는 "Numerical recipes"에서 "golden section search"으로 찾을 수 있습니다.