Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

cscvn

“자연” 또는 주기적 보간 3차 스플라인 곡선

설명

예제

curve = cscvn(points) 는 주어진 시퀀스 점 (:j), j = 1:end를 통과하는 모수적 변분 또는 자연 3차 스플라인 곡선을 ppform으로 반환합니다. j번째 점의 파라미터 값 t(j)는 현 길이의 누적 제곱근으로서 Eugene Lee의 구심 방식을 따릅니다[1].

i<jpoints(:,i+1)points (:,i)2

첫 번째 점과 마지막 점이 만나고 반복되는 다른 점이 없는 경우 함수는 주기적 3차 스플라인 곡선을 생성합니다. 그러나 이중 점이 있는 경우 코너가 발생합니다.

예제

모두 축소

이 예제에서는 cscvn 함수를 사용하여 여러 보간 3차 스플라인 곡선을 생성 및 플로팅하는 방법을 보여줍니다.

다음 코드는 점 시퀀스를 생성한 다음 cscvn 함수에서 생성된 3차 스플라인을 플로팅합니다. 선택된 점은 원으로 표시되어 있습니다.

points=[0 1 1 0 -1 -1 0 0; 0 0 1 2 1 0 -1 -2]; 
fnplt(cscvn(points)); hold on, 
plot(points(1,:),points(2,:),'o'), hold off

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

다음 코드는 (적용된 주기적 경계 조건으로 인해) 표준 다이아몬드의 꼭짓점 4개를 통과하는 원형 곡선을 플로팅합니다.

 fnplt(cscvn( [1 0 -1    0 1;0 1 0   -1 0] ))

Figure contains an axes object. The axes object contains an object of type line.

다음 코드는 이중 점과 곡선 끝점에서 발생한 코너를 보여줍니다.

 fnplt(cscvn( [1 0 -1 -1 0 1;0 1 0 0 -1 0] ))

Figure contains an axes object. The axes object contains an object of type line.

마지막으로, 다음 코드는 하나의 이중 점을 가진 닫힌 곡선을 생성하며, 이중 점에서는 코너가 발생한 것을 볼 수 있습니다. 소중한 사람들에게 마음을 전해 보세요.

c=fnplt(cscvn([0 .82 .92 0 0 -.92 -.82 0; .66 .9 0 ...
-.83 -.83 0 .9 .66])); fill(c(1,:),c(2,:),'r'), axis equal

Figure contains an axes object. The axes object contains an object of type patch.

입력 인수

모두 축소

모수적 "자연" 3차 스플라인이 보간되는 점 시퀀스로, 스칼라, 벡터 또는 행렬로 지정됩니다.

출력 인수

모두 축소

ppform 형식의 스플라인으로, 다음 필드를 갖는 구조체로 반환됩니다.

스플라인 형식으로, pp로 반환됩니다. pp는 스플라인이 조각별 다항식 형식으로 주어졌음을 나타냅니다.

스플라인의 매듭 위치로, 벡터로 반환되거나 다변량 데이터에 대해서는 벡터로 구성된 셀형 배열로 반환됩니다. 벡터는 다항식 조각이 정의된 각 구간의 시작과 끝을 나타내는 순증가하는 요소를 포함합니다.

각 조각에 대한 다항식의 계수로, 행렬로 반환되거나 다변량 데이터에 대해서는 배열로 반환됩니다.

스플라인을 설명하는 다항식 조각의 개수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수에 있는 조각 개수로 구성된 벡터로 반환됩니다.

스플라인의 각 다항식 조각을 설명하는 다항식 함수의 위수로, 스칼라로 반환되거나 다변량 데이터에 대해서는 각 변수의 위수를 포함하는 벡터로 반환됩니다.

대상 함수의 차원 수로, 스칼라로 반환됩니다.

알고리즘

cscvn 함수는 절점 시퀀스 t를 다음과 같이 결정합니다.

tk={0,k=1i=1k1(j=1d(pi+1,jpi,j)2)14,k>1

여기서 tkt의 위치 k(1 ≤ k ≤ n–1)에 있는 요소이고 p는 d×n 행렬 points의 전치입니다. points에 반복되는 점이 포함되어 있는 경우 cscvn 함수는 csape를 주기적 끝점 조건(periodic) 또는 변분 끝점 조건(variational)과 함께 사용하여 매끄러운 조각을 생성합니다. cscvn 함수는 curve 출력 인수의 breaks 필드에 있는 절점 시퀀스 t를 반환합니다.

참고 문헌

[1] E. T. Y. Lee. “Choosing nodes in parametric curve interpolation.” Computer-Aided Design 21 (1989), 363–370.

버전 내역

R2006b에 개발됨