내 대답은 베 지어 곡선 코드 높이 (sagitta?)를 찾는 데 있으며, 프로세스를 세분화하지는 않습니다.
제어점 P0, P1, P2, P3을 사용하는 입방체 베 지어를 고려합니다. Sagitta는 코드 세그먼트 C = P0P3에서 최대 거리입니다. 곡선의 방향 벡터 (hodograph, 1 차 미분)가 코드 벡터와 평행 할 때 최대 거리에 도달합니다. 큐빅 베 지어 곡선의 Hodograph 제어점과 차 베지에 곡선 (Sederberg book CAGD, section 2.7)는 그들의 외적이 영일 때
D0=3(P1-P0), D1=3(P2-P1), D2=3(P3-P2)
벡터가 평행 그래서 우리가 식
Cx*Dy-CyDx=0 or
(P3x-P0x)*((P1y-P0y)*(1-t)^2+2*(P2y-P1y)*t*(1-t)+(P3y-P2y)*t^2) =
(P3y-P0y)*((P1x-P0x)*(1-t)^2+2*(P2x-P1x)*t*(1-t)+(P3x-P2x)*t^2)
이 차 방정식, 그래요 범위 [0..1]의 t에 대해 0, 1 또는 2 해를 가질 수 있습니다 (S 자 곡선의 경우 2가 가능함). 그런 다음 방정식에서 찾은 t 매개 변수에서 베 지어 곡선을 계산하고 코드까지의 거리를 계산할 수 있습니다.
출처
2013-04-12 06:30:49
MBo
몇 개의 세그먼트가 있습니까? 그리고 교두로 당신은 무엇을 할 것입니까? – MBo
세그먼트 수는 커브 곡선의 결과입니다. Cusps는 좋은 질문입니다. 적절한 수학적 솔루션이 놀라 울 것이고 그 시점에서 무한대로 갈 것이라고 상상할 수 있습니다. 그러나 반복적 인 솔루션의 일부는 주변에서 약간 불안정 해지고 정상적인 곡선으로 취급 될 것입니다. 나는 그 순간에 첨단이 없다고 말하는 것이 안전하다고 생각합니다. – Ben