B-스플라인 곡선

B-스플라인 곡선 (B-spline curve)은 주어진 여러 개의 점에서 정의되는 매끄러운 곡선이다. 각 구간별로 별도의 다항식으로 표현되기 때문에 일부의 제어점을 변경해도 전체 곡선에는 영향을 미치지 않는 성질이있다. 베지어 곡선과 함께 컴퓨터 그래픽 분야에서 널리 이용된다. B-spline은 Basis spline (Basis = 기저)의 약어로서, 기본적으로 곡선은 제어점을 통과하지 않는다.

정의

제어점을 Pi이라 하면, n차의 B-spline곡선

S ( t ) = i = 0 m n 2 P i b i , n ( t )  ,  t [ t n , t m n 1 ] {\displaystyle \mathbf {S} (t)=\sum _{i=0}^{m-n-2}\mathbf {P} _{i}b_{i,n}(t){\mbox{ , }}t\in [t_{n},t_{m-n-1}]} .

으로 표현된다. 여기서 ti은 마디(knot)라고 불리는m개의 실수이다.

t 0 t 1 t m 1 {\displaystyle t_{0}\leq t_{1}\leq \cdots \leq t_{m-1}}

또한 bi,nB-스플라인 기저함수(B-spline basis function)이고 de Boor Cox의 점화식에 의해 다음과 같이 정의된다.

b j , 0 ( t ) := { 1 i f t j t < t j + 1 0 o t h e r w i s e , j = 0 , , m 2 {\displaystyle b_{j,0}(t):=\left\{{\begin{matrix}1&\mathrm {if} \quad t_{j}\leq t<t_{j+1}\\0&\mathrm {otherwise} \end{matrix}}\right.,\qquad j=0,\ldots ,m{-}2}
b j , n ( t ) := t t j t j + n t j b j , n 1 ( t ) + t j + n + 1 t t j + n + 1 t j + 1 b j + 1 , n 1 ( t ) , j = 0 , , m n 2. {\displaystyle b_{j,n}(t):={\frac {t-t_{j}}{t_{j+n}-t_{j}}}b_{j,n-1}(t)+{\frac {t_{j+n+1}-t}{t_{j+n+1}-t_{j+1}}}b_{j+1,n-1}(t),\qquad j=0,\ldots ,m{-}n{-}2.}

같이 보기