2008-10-24 4 views

답변

6

가장 좋은 방법은 스플라인을 개별 선분으로 나누고 각 선분에 선이 교차하는지 테스트하는 것입니다. 스플라인 개 이상의 지점에 선을 교차 할 수있다, 그래서 당신은 또한에 관심이 어느 하나를 결정해야합니다

+0

동의합니다. 일반적으로 권장되는 방법입니다. 반복적으로 이렇게하면 원하는 해상도를 얻을 때까지 교차점을 찾은 선분을 수정하면 대개보다 효율적입니다. – Kena

7

순수한 수학적 방법 :.

  • 스플라인 등 라인을 변환 그 선은 X 축에 놓여있다.
  • Y = 0 인 스플라인의 점을 계산합니다 (스플라인의 순서에 따라 다름).
  • 이 점들을 원래의 좌표계로 다시 변형하십시오.

이것이 필요한 경우 수식을 만들 수 있습니다.

+0

저는 접근법을 좋아하지만 스플라인 Y = 0 일 때 어떻게 풀습니까? 스플라인 세그먼트를 평가하고 그것을 근사하려고하는 것 이외의 다른 방법이 있습니까? – Herms

+0

스플라인 순서에 따라 스플라인 방정식에 대한 기존 솔루션이 있습니다 (적어도 큐빅 스플라인까지). 수식은 매우 어색한 경향이 있으며 숫자 오류가 낮은 것은 아닙니다. 내가 말했듯이 : 순수한 수학적 접근법. –

7

내가 들어 본 가장 효율적인 알고리즘은 베 지어 클리핑이라고합니다.

여기에 book chapter on curve and spline intersection (pdf)입니다.

+1

베 지어와 B 스플라인 함수에 대한 다항식 루트 찾기가 쉽기 때문에이 소스에서 솔루션을 구현하는 데 성공했습니다. 특히 7.3 절을 참조하십시오. –