Essential Mathematics for Computational Design 33 다면체

다면체 (polysurfaces)
 
다면체란 둘 이상의 NURBS곡면이 결합되어 있는 것을 의미합니다. 이러한 결합은 잘린 면들 사이에도 가능합니다. 각각의 면들은 고유의 매개변수와 u와 v 방향을 가지게 됩니다. 다면체와 잘린 면(trimmed surface)은 경계 표현(boundary representation, brep)[1] 이라는 것으로 표현됩니다. 이것은 기본적으로 면(surface)과 가장자리(edge), 그리고 점(vertex)들 사이의 관계와 잘려나간 정보(trimming data)를 표현합니다. 예를 들어 brep은 각각의 면(face)과 이 면들의 가장자리, 그리고 잘려나간 부분들, 법선 방향과 곡면의 관계, 그리고 인접한 면들과의 관계등을 표현합니다. 이러한 Brep은 이것들이 닫혀 있을 때 이것을 솔리드(solid)라고 합니다.
아래 상자의 경우 이것은 6개의 잘리지 않은 면이 결합되어 이루어진 것입니다.

그림 34 다면체는 NURBS 면들이 결합되어 만들어진다.


 
NURBS곡선과 곡면을 편집하는 것은 메우 직관적입니다. 컨트롤 포인트를 움직이면 매우 쉽게 그것들의 형태를 바꿀 수 있습니다. 그러나 다면체를 편집하는 것은 NURBS의 편집처럼 직관적이지 않습니다. 3d 모델링에서 다면체를 편집하는 기능을 제공하고 있지만, 다면체를 깨서(explode) 곡면으로 만든 뒤 이들을 편집하고 다시 합치는 것 또한 일반적입니다. 그러한 과정에서 사용자는 각 곡면들의 가장자리를 오차범위(tolerance)이 내에서 유지시켜야만 곡면들을 다시 결합시킬 수 있습니다.
 

박스와 원을 그립니다.
원을 박스에 투영(project)시킵니다.
투영된 원들을 이용하여 박스의 윗면과 아랫면을 잘라냅니다.
투영된 원들 사이에 ‘말려있는 면’을 생성합니다.
이렇게 생성된 모든 면들을 다시 결합시킵니다.

[1] 역자 주: 3차원 컴퓨터 그래픽스(CG) 표현법의 하나. 입체를 면의 집합으로 표현하고 면과 그것을 둘러싸는 선의 데이터, 선 양쪽 끝의 좌표 등의 정보를 포함하여 그대로의 형으로 여러 가지 애플리케이션에 사용한다. 경계 표현에서 구성 입체 표현(CSG)으로는 변환할 수 없다.
(네이버 용어사전 ‘경계 표현’)

 

Essential Mathematics for Computational Design 32 NURBS곡면

NURBS 곡면 (NURBS surfaces)

NURBS 곡면이란 두 방향을 향하는 NURBS 곡선들이 만드는 격자(grid)와 같다고 생각할 수 있습니다. NURBS 곡면의 형태는 U, V 방향의 차수와 각 방향에 있는 컨트롤 포인트의 개수에 의해 정의됩니다.
 

그림 32 NURBS 평면의 정의역


 
NURBS 곡면은 특정 부분을 잘라낼(trim) 수 있습니다. 잘려진 곡면은 잘리기 전 곡면의 내부에 원하는 형태의 폐곡선으로 새로운 경계를 설정해 주는 것입니다. 각각의 곡면은 그 외부 경계(outer loop)를 정의하는 폐곡선과, 그 외부 경계와 교차하지 않는 또 다른 폐곡선에 의한 내부 경계(inner loop)를 가지고 있게 됩니다. 이를 잘리지 않은 곡면(untrimmed surface)이라고 부릅니다.
 

그림 33 잘려진 (trimmed) NURBS 곡면


 
왼쪽에 있는 곡면은 잘린 부분이 없습니다. 오른쪽에 있는 곡면은 같은 곡면 이지만 그 내부에 타원형으로 생긴 구멍이 있습니다. 이러한 잘림(trimming)이 있어도 NURBS의 기본 구조는 변하지 않습니다.

 
 
NURBS 곡면의 특징 (Characteristics of NURBS surfaces)
NURBS곡면은 NURBS곡선에 비하여 하나의 방향이 더 있을 뿐, 그 둘의 특징은 매우 유사합니다. NURBS곡면은 다음과 같은 정보를 가지고 있습니다.
 
• 치수(Dimension): 일반적으로 3입니다
uv 방향의 차수(Degree): 차수에 1을 더한 위수(order)도 사용됩니다.
uv 방향의 컨트롤 포인트(Control points): 점들의 행렬
• 매듭 벡터(Knot Vector): 수들의 2차원 행렬
• 만약 곡면이 유리(rational)인 경우에는 이것을 명시해야 합니다.
 
3d 모델링 프로그램을 이용하면 쉽게 NURBS곡면을 생성할 수 있기 때문에 NURBS에 대한 자세한 사항을 알 필요는 없습니다. 곡면을 편집하는 중에 필요한 차수와 컨트롤 포인트를 쉽게 설정(rebuild)해줄 수 있습니다. 곡면 또한 곡선처럼 열리거나(open) 닫히거나(close) 부르러운(periodic)면을 가질 수 있습니다. 아래 표는 차수와 컨트롤 포인트의 개수, 그리고 열리거나 부드러움 여부에 따른 곡면의 유형별 정리입니다.

uv방향 모두 1차인 곡면으로 모든 컨트롤 포인트가 곡면 위에 있습니다.
u방향으로 3차이면서 v방향으로 1차인 열린(open) 곡면입니다.
곡면의 모서리에 컨트롤 포인트가 위치하고 있습니다.
u방향으로 3차이면서 v방향으로 1차인 뾰족한(non-periodic) 닫힌(closed) 곡면입니다.
곡면의 이음매에 컨트롤 포인트가 위치하고 있습니다.
이음매가 뾰족한(non-periodic) 곡면의 컨트롤 포인트를 움직이면 곡면의 이음매가 더욱 뾰족해지며 곡면은 더 이상 부드럽지(smoonth) 않게 됩니다.
u방향으로 3차이면서 v방향으로 1차인 부드러운(periodic) 곡면 입니다.

컨트롤 포인트가 이음매에 위치해있지 않습니다.

부드러운(periodic) 곡면의 컨트롤 포인트를 움직여도 곡면은 그 부드러움(smoothness)를 휴지합니다.


 

Essential Mathematics for Computational Design 31 무게

무게(Weigts)

균일한(uniform) NURBS 곡선의 컨트롤 포인트의 무게는 1로 설정되어 있습니다. 이 수치는  유리(rational) NURBS 곡선에서 변할 수 있습니다. 아래 예시는 어떻게 하면 점의 무게를 바꿀 수 있는지를 보여주는 예시입니다.
 

그림 31 NURBS 곡선에서의 무게 분석

Essential Mathematics for Computational Design 30

접힌 NURBS 곡선과 부드러운 NURBS 곡선(Clamped vs. periodic NURBS curves)

Clamped 곡선은 (일반적으로 열린 곡선이며) 곡선 양 끝점이 컨트롤 포인트의 양 끝점과 같은 위치에 있는 곡선을 의미한다. 부드러운 곡선(periodic curve)는 전 구간에서 연속하며 닫힌 곡선입니다. 아래의 예시들은 clamped NURBS 곡선과 컨트롤 포인트, 그리고 매듭 벡터를 보여주고 있습니다.

그림 28 Clamped NURBS 곡선


 
아래는 위와 같은 컨트롤 포인트와 차수를 이용하여 생성한 부드러운 곡선(periodic curve)의 예시입니다.

그림 29 부드러운 곡선(periodic curve) 분석


(역자 주: ‘point’ 컴퍼넌트는 네 개의 점을 가지고 있는 것이다.)
 
부드러운 곡선은 네 개의 점들을 인풋으로 하여 일곱 개의 컨트롤 포인트로 산출한다. 이는 차수에 4를 더한 것과 같다.(4 + degree), 반면 Clamped Curve는 같은 인풋으로 네 개의 컨트롤 포인트를 산출합니다. 부드러운 곡선의 매듭 벡터는 모두 Simple Knot 들인 반면, Clamped Curve의 시작과 끝 매듭은 full multiplicity를 가지고 있습니다.
 
아래는 차수가 2인 곡선의 예시입니다. 예상할 수 있는 것처럼, 부드러운 곡선의 컨트롤 포인트와 매듭의 수는 차수가 변함에 따라 변하게 됩니다.

그림 30 차수가 2인 NURBS 곡선 분석

Essential Mathematics for Computational Design 29 NURBS곡선의 특징

NURBS 곡선의 특징(Characteristics of NURBS curves)
 
NURBS 곡선을 만들기 위해서는 아래와 같은 정보들이 필요합니다.
 
• 치수(Dimension): 일반적으로 3입니다

• 차수(Degree): 차수에 1을 더한 위수(order)도 사용됩니다.

• 컨트롤 포인트(Control points): 점들의 행렬

• 매듭 벡터(Knot Vector): 수들의 행렬

• 만약 곡선이 유리(rational)인 경우에는 이것을 명시해야 합니다. (유리곡선(rational curve)’의 개념은 ‘무게(weight)’와 관련된 내용에서 다루게 될 것입니다.)
 
3d 모델링 프로그램을 사용할 경우 곡선과 컨트롤 포인트들의 차수를 설정해줘야 합니다. NURBS 곡선을 생성하기 위해 필요한 나머지 정보들은 자동으로 생성될 것입니다. 시작점과 끝점을 일치시킬 경우에는 부드러운 닫힌 곡선(periodic closed curve)가 생성될 것입니다. 아래 그림들은 clamped 열린 곡선(clamped open curve)과 끝에 뾰족한 점이 있는 닫힌 곡선 (non-periodic closed curve), 그리고 부드러운 열린 곡선(periodic open curve)를 보여주고 있습니다. 다음 장에서 clamped curve와 부드러운 곡선(periodic curve)의 차이에 대해서 설명할 것입니다.

차수가 1인 열린 곡선입니다.
곡선들이 모든 컨트롤 포인트들을 지나며 각 점들에서 꺾여 있습니다.
차수가 3인 열린 곡선입니다.

곡선의 양 끝이 컨트롤 포인트들 중 양 끝에 있는 것과 일치합니다.

3차인 닫힌 끝이 뾰족한 곡선(non-periodic closed curve)입니다. 곡선의 시작점과 끝점이 하나의 컨트롤 포인트에서 만납니다.
위와 같은 닫힌 끝이 뾰족한 곡선의 시작점과 끝이 만나는 컨트롤 포인트를 움직일 경우 곡선이 뾰족하다는 것을 확인할 수 있습니다.
차수가 3차 이면서 부드러운 닫힌 곡선(periodic closed curve) 입니다. 이 경우 곡선의 시작점과 끝점이 컨트롤 포인트와 만나지 않습니다. 이러한 점을 ‘곡선 이음매(curve seam)’라고 합니다. 이 점은 그림에서 빨간 점으로 표시되어 있습니다.
위와 같은 곡선의 경우 그 컨트롤 포인트를 움직여도 곡선은 부드러움을 유지합니다.

 

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 을 번역한 내용을 추가한 것임을 밝힙니다.

 

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 을 번역한 내용이 추가되었음을 밝힙니다.

Essential Mathematics for Computational Design 26 NURBS곡선의 종류

NURBS 곡선의 종류 (NURBS curves)

NURBS 란 수학적으로 매우 정확도가 높은 곡선과 곡면의 표현 방식이면서, 매우 직관적으로 편집이 가능합니다. NURBS에 관하여 심도 있게 다루고 있는 여러 글과 책들이 있으니 참고하시기 바랍니다. (http://en.wikipedia.org/wiki/NURBS) 가장 기본적인 이해는 여러분이 NURBS 모델링을 더욱 효과적으로 하는데 도움을 줄 것입니다.하나의 NURBS 곡선을 만들기 위해서는 4가지 요소 ‘차수(degree)’, ‘컨트롤 포인트(control points)’, ‘매듭(knots)`, ‘계산을 위한 규칙들 (evaluation rules)’ 가 필요합니다.

차수(Degree)

차수는 양수인 정수입니다. Rhinoceros는 1차부터 어떤 차수의 곡선이라도 그 이용이 가능합니다. 일반적으로는 5차까지 사용되며 6차 이상의 곡선은 잘 사용되지 않습니다. 아래는 곡선과 그 차수의 관계를 이해하기 위한 몇 가지 예시들입니다.

라인(line)과 폴리라인(polyline) 들은 1차인 NURBS 곡선들 입니다.

위수(Order) = 2 ( 위수 = 차수+1)

원(Circle)과 타원(ellipse)는 2차인 NURBS 곡선들 입니다. 이들 또한 유리(rational)면서 비균일(non-uniform) 한 곡선들입니다.

위수 = 3

자유곡선 (Free-form curve)는 일반적으로 3차 NURBS로 표현됩니다.

위수 = 4

컨트롤 포인트(Control Point)

NURBS 곡선은 곡선의 차수에 1을 더한 수 이상의 (degree +1) ‘컨트롤 포인트’를 가집니다. NURBS 곡선의 형태를 바꿀 수 있는 가장 쉬운 방법은 바로 이 컨트롤 포인트들을 움직이는 것입니다.
컨트롤 포인트들은 ‘무게(weight)’와 관련되어 있습니다. 몇 가지 예외를 제외하고, 무게는 양수입니다. 한 곡선의 모든 ’컨트롤 포인트’들이 같은 무게를 가지고 있을 때 (보통 1), 이 곡선을 비유리(non-rational)라고 합니다. 이 후 Grasshopper 정의에서 이러한 컨트롤 포인트들의 무게를 조절하는 방법을 배우게 될 것입니다.

Essential Mathematics for Computational Design 25 NURBS곡선

NURBS 곡선을 위한 De Boor[1] 알고리즘 (De Boor7 algorithm for evaluating NURBS curves)

De Boor 의 알고리즘은 베지에곡선에 사용되는 De Castelijau 알고리즘을 일반화 시킨 것입니다. 이 알고리즘은 수적으로 더욱 안정적이며, NURBS 곡선상의 점을 계산하기 위해 널리 사용됩니다. 아래 그림은 De Boor 알고리즘을 이용하여 3차 NURBS 곡선 위에 있는 점을 계산하는 것을 보여주고 있습니다. [2]
이를 위해 필요한 인풋으로는 P0, P1, P2, P3, P4, P5, P6 이라는 이름을 가진 7개의 컨트롤 포인트와 다음과 같은 매듭 벡터(Knot Vector)가 있습니다.

u0 = 0.0
u1 = 0.0
u2 = 0.0
u3= 0.25
u4 = 0.5
u5 = 0.75
u6 = 1.0
u7 = 1.0
u8 = 1.0
 

아웃풋으로는 u=0.4 인 곡선 위의 한 점입니다. 그 계산 순서는 다음과 같습니다.

1. 첫 번째 iteration의 계수 구하기

Ac = (u – u1) / ( u1+3 – u1) = 0.8

Bc = (u – u2) / ( u2+3 – u2) = 0.53

Cc = (u – u3) / ( u3+3 – u3) = 0.2
 
2. 구해진 계수를 이용하여 점을 구하기

A = 0.2P1 + 0.8P2

B = 0.47 P2 + 0.53 P3

C = 0.8 P3 + 0.2 P4
 

3. 두 번째 iteration의 계수를 구하기

Dc = (u – u2) / (u2+3-1 – u2) = 0.8

Ec = (u – u3) / (u3+3-1 – u3) = 0.3
 
4. 구해진 계수를 이용하여  점을 구하기

D = 0.2A+ 0.8B

E = 0.7B + 0.3C

 

5. 마지막 계수 구하기

Fc = (u – u3)/ (u3+3-2 – u3) = 0.6

 
아래는 DeBoor 알고리즘을 이용하여 매개변수를 u=0.4 로 가지는 NURBS 곡선 위의 점을 찾아내는 Grasshopper 정의 입니다.

그림 27 De Boor 알고리즘을 이용한 NURBS 곡선 상의 점 계산

[1] De Boor’s 알고리즘에 대한 자세한 내용은 http://en.wikipedia.org/wiki/De_Boor’s_algorithm을 참고해주세요.
[2] 알고리즘에 대한 일반적인 내용과 그 예시는http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-Boor.html 에 있습니다.