Essential Mathematics for Computational Design 27 매듭-1

매듭 혹은 매듭벡터(Knots or knot vector)[1]

매듭(knot)이란 곡선의 차수에 그 컨트롤 포인트의 개수를 더한 뒤 여기서 다시 1을 뺀 만큼의 개수(차수+N-1, N은 컨트롤 포인트의 개수를 가진 수들의 목록을 의미합니다. 이러한 수의 집합을 매듭 벡터(knot vector)라고도 하는데, 여기서의 벡터는 3d에서 사용되는 방향을 의미하지 않습니다.
모든 NURBS 곡선들은 이 매듭 벡터라고 불리는 수들과 밀접한 연관을 가지고 있습니다. 매듭들은 이해하고 사용하기에 조금 어려운 개념이지만 라이노에서는 이러한 기능을 하는 ‘SDK‘컴퍼넌트가 있어 그 사용이 어렵지 않습니다.
 
매듭은 매개변수 값이다 (Knots are parameter values)
이러한 수의 목록이 ‘매듭’이 되기 위해서는 여러 가지 조건을 만족시켜야 합니다. 먼저 목록 내의 수가 뒤에 써있을수록 수의 값이 그대로 이거나 증가해야 합니다. 또한 같은 값이 반복될 경우 그 횟수는 곡선의 차수보다 클 수 없습니다. 예를 들어 3차에 11개의 컨트롤 포인트를 가진 NURBS 곡선의 경우, 0,0,0,1,2,2,2,3,7,7,9,9,9을 그 매듭으로 가질 수 있습니다. 하지만 0,0,0,1,2,2,2,2,7,7,9,9,9 는 성립하지 않는데 그 이유는 2가 네 개이기 때문입니다.
 
매듭의 반복횟수(Knot multiplicity)
매듭 내에서 특정 수가 반복될 경우 그 횟수를 ‘매듭 반복횟수(knot’s multiplicity)’ 라고 합니다. 위의 예를 다시 보면 매듭값 0은 반복횟수가 3이며, 1은 1, 2는 3, 1은 1, 7은 2, 9는 3입니다. 반복횟수가 차수와 같을 경우 이 매듭을 ‘최대반복매듭(full-multiplicity knot)’이라고 합니다. 즉 이 예시에서 최대반복매듭은 0, 2, 9입니다. 매듭 값이 한 번만 나타나는 경우에는 이를 단순 매듭(simple knot)이라고 합니다. 위 예시의 경우 1과 3이 바로 ‘단순 매듭’입니다.
이것은 해당 곡선의 차수보다 클 수 없습니다. 매듭의 곱 값은 그 매듭 값에 해당하는 곡선상 점의 연속성을 제어하는데 사용됩니다.
 
최대반복매듭(Full-multiplicity knot)
최대반복매듭은 곡선의 차수와 같은 multiplicity를 가진 매듭을 의미합니다. 최대반복매듭에는 각각에 상응하는 컨트롤 포인트가 있으며, 곡선은 이 점들을 지나게 됩니다. 예를 들어, clamped curve들은 곡선의 양 끝에 최대반복매듭을 가진 매듭들을 가지고 있습니다. 이것이 바로 가장 끝의 두 컨트롤 포인트가 곡선의 끝점과 일치하는 이유입니다. 곡선의 양쪽 끝이 아닌 중간에 최대반복매듭이 있는 경우 곡선은 이에 해당하는 점에서 급격하게 (kink) 변화를 하게 됩니다.

만약 매듭값의 목록이 ‘최대반복매듭’으로 시작하여 ‘단순 매듭’으로 이어지고 다시 ‘최대반복매듭’으로 끝나며, 값들 사이의 크기가 일정한 경우, 이러한 매듭을 균일(uniform)하다 라고 말할 수 있습니다. 예를 들어 차수가 3이고 7개의 컨트롤 포인트를 가진 NURBS 곡선이 0,0,0,1,2,3,4,4,4 이라는 매듭을 가진 경우 매듭값들이 일정하게 1만큼 증가하므로 이 NURBS 곡선은 균일(uniform) 하다고 부를 수 있습니다. 하지만 0,0,0,1,2,5,6,6,6의 경우 그렇지 않음으로 이 곡선은 비균일(non-uniform)합니다. NURBS(Non-Uniform Rational B-Spline)는 이처럼 매듭의 값이 일정하게 증가하지 않아도 되는 것을 (non-uniform) 의미합니다.

이러한 매듭 값이 시작과 끝이 아닌 중간에서 반복 된다면, 이것은 해당 NURBS 곡선이 덜 부드럽다는 것을 의미합니다. 극단적으로 어떤 NURBS곡선에서 ‘최대반복매듭’이 매듭 목록의 중간에 있다면 이 곡선은 이 부분에서 더욱 급하게(kink) 구부러지는 것을 의미합니다. 이러한 특성을 이애한다면 컨트롤 포인트를 움직이는 것뿐만 아니라 매듭을 더하거나 제거하면서 곡면을 디자인 하는 것이 가능합니다. 매듭을 NURBS커브에 더해도 그 형상은 바뀌지 않습니다. 하지만 매듭을 제거하게 되면 일반적으로 커브의 형상은 변하게 됩니다.

[1] 역자 주: 이 부분은 이해를 돕기 위하여 http://www.rhino3d.com/nurbs.htm 을 번역한 내용이 추가되었음을 밝힙니다.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s