Essential Mathematics for Computational Design 28 매듭-2

간단 매듭(Simple Knot)
나의 곡선에 있는 매듭값 중 그 값이 한 번만 나타나는 매듭들을 ‘간단 매듭(Simple Knot)’이라고 합니다.

균일 매듭 벡터(Uniform Knot Vector)
균일 매듭 벡터는 두 가지 특징이 있습니다.

최대반복매듭으로 시작하고 끝나며 그 사이에는 단순 매듭들이 있습니다. 그 값들은 일정한 값으로 증가합니다. 이것이 일반적인 clamped curve 입니다. 부드러운 곡선(periodic curve)[1] 는 이와 다른 특징을 가지며 이는 글의 뒷부분에서 다뤄질 것입니다.
아래 예시는 똑같은 컨트롤 포인트를 가졌지만 다른 매듭 벡터들을 가진 두 곡선을 비교한 것입니다.

 
매듭과 컨트롤 포인트 (Knots and control point) [2]
흔히 하나의 매듭과 하나의 컨트롤 포인트가 쌍으로 묶여있다고 오해합니다. 이것은 1차 NURBS 커브(폴리라인)의 경우에만 성립합니다. 하지만 더 높은 차수의 NURBS커브의 경우 차수에 2를 곱한 수의 매듭이 차수에 1을 더한 수 만큼의 컨트롤 포인트와 상응하게 됩니다. 예를 들어 7개의 컨트롤 포인트를 가진 3차 NURBS 커브가 0,0,0,1,2,5,8,8,8 이라는 매듭을 가지고 있다고 합시다. 이 경우 처음 네 개의 컨트롤 포인트 들은 처음 여섯 개의 매듭들과 하나의 그룹으로 묶여있습니다. 두 번째에서 다섯 번째 컨트롤 포인트의 경우 이것은 매듭 0,0,1,2,5,8과 묶여 있으며 세 번째에서 여섯 번째 컨트롤 포인트의 경우 0,1,2,5,8,8이라는 매듭과 묶여 있습니다. 마지막 네개의 컨트롤 포인트는 뒤에서 여섯 개의 컨트롤 포인트들과 묶여 있습니다.
 

차수 = 3
컨트롤 포인트의 개수 = 7
매듭 벡터 = (0,0,0,1,2,3,5,5,5)
차수 = 3
컨트롤 포인트의 개수 = 7
매듭 벡터 = (0,0,0,1,1,1,4,4,4)
주의: 곡선이 가운데 있는 컨트롤 포인트를 지나면서 그 점에서 뾰족하게(kink)됩니다. 이는 해당 컨트롤 포인트가 Full knot multiplicity 를 가졌기 때문입니다.

계산의 규칙(Evaluation rule)
곡선을 계산하는 방식은 하나의 수를 취하고 이것에 점을 부여하는 수학적 공식입니다. 이는 차수, 컨트롤 포인트, 그리고 매듭에 관한 공식으로 B-spline에 기반하는 함수가 있습니다. NURBS 의 B와 S 는 basis spline을 의미합니다. 이 계산 방식에서 사용되는 수를 ‘매개변수(parameter)’라고 합니다. 쉽게 생각해서 이러한 매개변수들이 들어가는 상자가 있고, 이 상자는 점의 위치를 산출해 냅니다. 그리고 차수, 매듭, 컨트롤 포인트가 바로 이 상자가 작동하는 방식을 의미합니다.
이러한 공식을 이용하여 SDK는 곡선의 매개변수를 이용, 해당 곡선 위에 점들을 산출해냅니다. 이 때의 매개변수는 해당 곡선의 정의역 내에 있는 하나의 수입니다. 정의역은 일반적으로 증가하며, 그들은 두 개의 수로 구성됩니다. 정의역 중 가장 작은 매개변수(minimum domain parameter)인 (m_t(0))는 일반적으로 곡선의 시작에 있으며 최대값인 (m_t(1))은 곡선의 끝에 있게 됩니다.

 
 
 
 

[1] 역자주: periodic curve와 non-periodic curve의 비교는 http://blog.naver.com/repeatone?Redirect=Log&logNo=40111088478 참조
 
[2] 역자 주: 이 부분은 이해를 돕기 위하여 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