Main Content

spcrv

균일 분할에 의한 스플라인 곡선

구문

spcrv(c,k)
spcrv(c)
spcrv(c,k,maxpnt)

설명

spcrv(c,k) 는 B-스플라인 계수 c를 사용하여 위수가 k인 균일 B-스플라인 곡선 f 위에 있는 점들에 대한 밀집 시퀀스 f(tt)를 제공합니다. 명시적으로, 이는 다음과 같은 곡선입니다.

f:t|j=1nB(tk/2|j,...,j+k) c(j), k2tn+k2

여기서 B(·|a,...,z)는 매듭 a,...,z를 갖는 B-스플라인이고 nc의 계수의 개수입니다(즉, [d,n]size(c)와 같음).

spcrv(c) 는 위수 k가 4가 되도록 선택합니다.

spcrv(c,k,maxpnt) 는 최소 maxpnt개의 점을 생성합니다. 생성할 지점의 최대 개수 tt의 디폴트 값은 100입니다.

지점 시퀀스 tt가 균일하게 채우는 파라미터 구간은 구간 [k/2 .. (n-k/2)]입니다.

출력은 배열 f(tt)로 구성됩니다.

예제

다음 예제는 문제가 되는 끊어진 선과 평활화된 버전을 보여줍니다.

points = [0 0 1 1 0 -1 -1 0 0 ;
        0 0 0 1 2 1 0 -1 -2]; 
plot(points(1,:),points(2,:),':') 
values = spcrv(points,3); 
hold on, plot(values(1,:),values(2,:)), hold off

알고리즘

최소 maxpnt개의 지점이 있을 때까지 반복적인 중간 지점 매듭 삽입이 사용됩니다. fnplt를 사용하는 것이 더 효율적인 경우도 있습니다.

참고 항목