B-스플라인 곡선
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
B-스플라인 곡선은 제어점들을 연결하여 부드러운 곡선을 생성하는 데 사용되는 수학적 표현 방식이다. n차 B-스플라인 곡선은 B-스플라인 기저 함수와 제어점의 선형 결합으로 표현되며, 드 보어-콕스 점화식을 통해 B-스플라인 기저 함수를 정의한다. B-스플라인은 매듭(knot)이라고 불리는 실수들의 시퀀스에 의해 정의되며, 매듭의 배치에 따라 균일, 개방 균일, 비균일 B-스플라인으로 나뉜다. B-스플라인은 베지어 곡선의 일반화된 형태로, 컴퓨터 지원 설계(CAD), 컴퓨터 그래픽스, 곡선 근사 등 다양한 분야에서 활용된다. B-스플라인을 확장한 NURBS(Non-Uniform Rational B-Spline)는 가중치를 사용하여 더욱 유연한 곡선과 표면을 표현할 수 있게 해준다.
더 읽어볼만한 페이지
- 스플라인 - 스플라인 보간법
스플라인 보간법은 주어진 데이터 점들을 부드럽게 연결하는 곡선을 생성하는 방법으로, 원래 기술 도면을 그릴 때 사용된 탄성 자에서 유래되었으며, 수학적으로는 일련의 다항식을 사용하여 곡선을 모델링하고, 3차 스플라인을 포함한 다양한 형태가 존재하며, 컴퓨터 그래픽스 등 다양한 분야에서 활용된다. - 스플라인 - 캣멀롬 스플라인
캣멀롬 스플라인은 네 개의 제어점과 노트를 활용하여 곡선을 정의하며, 주어진 점들을 부드럽게 연결하고 0에서 1 사이의 알파 값으로 다양한 형태를 구현한다. - 보간법 - 선형 보간법
선형 보간법은 두 점 사이의 값을 직선으로 추정하는 방법으로, 다양한 분야에서 활용되지만 비선형 데이터에는 정확도가 낮아 다른 방법으로 대체될 수 있다. - 보간법 - 보외법
보외법은 수치 데이터가 없는 범위의 값을 추정하는 방법으로, 다양한 외삽 방법이 존재하며 데이터 생성 프로세스에 대한 사전 지식에 따라 적용 방법을 선택한다.
B-스플라인 곡선 |
---|
2. 정의
제어점을 '''P'''''i''이라 하면, ''n''차의 B-스플라인 곡선은
:
으로 표현된다. 여기서 ''ti''은 마디(knot)라고 불리는 ''m''개의 실수이다.
:
또한 ''bi,n''은 '''B-스플라인 기저함수'''(B-spline basis function)이고 '''드 보어-콕스(de Boor-Cox) 점화식'''에 의해 다음과 같이 정의된다.
:
:
차 B-스플라인은 변수 에 대한 차 구간별 다항식 함수 의 모음이다.
다항식 조각들이 만나는 의 값은 매듭이라고 알려져 있으며, 로 표시하고 증가하지 않는 순서로 정렬된다.
주어진 매듭 시퀀스에 대해, 스케일링 인수를 제외하고, 다음을 만족하는 고유한 스플라인 가 존재한다.
:
만약 다음의 추가 제약 조건을 추가하면:
:
매듭 와 사이의 모든 에 대해, 의 스케일링 인수는 고정된다.
와 사이의 (포함하지 않는) 매듭은 내부 매듭이라고 불린다.
B-스플라인은 Cox–de Boor 재귀 공식을 사용하여 구성할 수 있다.
우리는 차수 의 B-스플라인, 즉 구간별 상수 다항식으로 시작한다.
:
더 높은 차 B-스플라인은 재귀적으로 정의된다.
:
매개변수 상에 개의 값 (노트)를 취하고, 차수를 으로 한다.
제어점을 라고 하면, 차 B-스플라인 곡선 는 다음과 같이 정의된다.
:.
이때 는 '''B-스플라인 기저 함수'''라고 불리며, '''de Boor Cox 재귀식'''에 의해 다음과 같이 정의된다.
:
:
2. 1. B-스플라인 기저 함수
제어점을 '''P'''''i''이라 하면, ''n''차의 B-스플라인 곡선은:
으로 표현된다. 여기서 ''ti''은 마디(''knot'')라고 불리는 ''m''개의 실수이다.
:
또한 ''bi,n''은 '''B-스플라인 기저함수'''(B-spline basis function)이고 '''드 보어-콕스(de Boor-Cox) 점화식'''에 의해 다음과 같이 정의된다.
:
:
매개변수 상에 개의 값 (노트)를 취하고, 차수를 으로 한다.
제어점을 라고 하면, 차 B-스플라인 곡선 는 다음과 같이 정의된다.
: .
이때 는 '''B-스플라인 기저 함수'''라고 불리며, '''de Boor Cox 재귀식'''에 의해 다음과 같이 정의된다.
:
:
2. 2. 드 보어-콕스 점화식
제어점을 '''P'''''i''이라 하면, ''n''차의 B-스플라인 곡선은:
으로 표현된다. 여기서 ''ti''은 마디(knot)라고 불리는 ''m''개의 실수이다.
:
또한 ''bi,n''은 B-스플라인 기저 함수이고 드 보어-콕스(de Boor-Cox) 점화식에 의해 다음과 같이 정의된다.
:
:
매개변수 상에 개의 값 (노트)를 취하고, 차수를 으로 한다.
제어점을 라고 하면, 차 B-스플라인 곡선 는 다음과 같이 정의된다.
:.
이때 는 B-스플라인 기저 함수라고 불리며, 드 보어-콕스(de Boor-Cox) 재귀식에 의해 다음과 같이 정의된다.
:
:
3. 성질
B-스플라인 함수는 제어점이라고 하는 여러 점으로 제어되는 유연한 밴드의 조합으로, 부드러운 곡선을 만든다.[5] 이러한 함수는 여러 점을 사용하여 복잡한 모양과 표면을 생성하고 관리하는 데 사용되며, 형상 최적화 방법론에서 광범위하게 적용된다.[5]
''n''차 B-스플라인은 변수 ''x''에 대한 ''n'' - 1차의 구간 다항식 함수이다. 이는 매듭 또는 중단점이라고 하는 1 + ''n''개의 위치 에서 정의되며, 이는 비감소 순서 이어야 한다. B-스플라인은 이러한 매듭의 처음과 마지막 사이의 범위에서만 기여하며 다른 곳에서는 0이다. 각 매듭이 이전 매듭과 동일한 거리 ''h''(''h'' = )만큼 떨어져 있으면, 매듭 벡터와 해당 B-스플라인을 "균일"이라고 한다.
0이 아닌 각 유한 매듭 구간에서 B-스플라인은 ''n'' - 1차의 다항식이다. B-스플라인은 매듭에서 연속 함수이다.[6] B-스플라인에 속하는 모든 매듭이 서로 다르면, 그 도함수도 ''n'' - 2차의 도함수까지 연속이다. 매듭이 주어진 ''x'' 값에서 일치하면, 도함수 차수의 연속성은 각 추가 일치 매듭에 대해 1씩 감소한다. B-스플라인은 매듭의 하위 집합을 공유할 수 있지만, 정확히 동일한 매듭에서 정의된 두 개의 B-스플라인은 동일하다. 즉, B-스플라인은 매듭에 의해 고유하게 정의된다.
내부 매듭은 관심 있는 ''x'' 도메인을 덮는다. 단일 B-스플라인이 이미 1 + ''n''개의 매듭에 걸쳐 있으므로, 내부 매듭은 처음과 마지막 B-스플라인에 전체 지원을 제공하기 위해 각 측면에 ''n'' - 1개의 끝점으로 확장되어야 한다.
B-스플라인의 유용성은 주어진 매듭 집합에서 ''n''차의 모든 스플라인 함수를 B-스플라인의 선형 결합으로 표현할 수 있다는 사실에 있다.
:
B-스플라인은 스플라인 함수 공간에 대한 기저 함수 역할을 하므로, 이러한 이름이 붙었다. 이 속성은 모든 조각이 매듭에서, 개별 지원 범위 내에서 동일한 연속성 속성을 갖는다는 사실에서 비롯된다.[7]
B-스플라인 기저 함수는 지역적인 지지를 가지므로, B-스플라인은 일반적으로 드 보어 알고리즘과 같이 0인 기저 함수를 평가할 필요가 없는 알고리즘에 의해 계산된다.
3. 1. 연속성
3. 2. 미분 가능성
차수 ''k''인 B-스플라인의 미분은 차수 ''k'' − 1인 B-스플라인의 함수이다.[15]:
이는 스플라인 함수의 미분과 차수가 1 작은 B-스플라인 사이에 간단한 관계가 있음을 보여준다.
:
3. 3. 국소 지지 (Local Support)
B-스플라인 기저 함수는 특정 구간에서만 0이 아닌 값을 가지는 성질이 있으며, 제어점의 변화가 곡선의 일부에만 영향을 미치게 한다.[37] 예를 들어, 연속된 여러 노드에 동일한 값을 부여함으로써, 대응하는 제어점에 곡선을 통과시킬 수 있다. 2차 B-스플라인 곡선의 경우, 곡선의 시작점이 0번째 제어점과 일치한다. 노트 벡터의 처음 n + 1개와 마지막 n + 1개를 동일하게 하면, 곡선의 단점은 처음과 마지막 제어점이 되고 고정(clamped)된다.[37]4. 종류
B-스플라인에서의 노트(knot)는 파라미터 t의 값으로, 세그먼트의 구분을 정하는 것이다. 노트 벡터(knot vector)는 오름차순으로 정렬된 노트의 열이다.
노트 벡터는 여러 종류로 나눌 수 있다. 다음은 그 예시이다.
- 균일 노트 벡터
- 열린 균일 노트 벡터
- 비균일 노트 벡터
uniform knot vector영어는 노트가 등간격으로 배치된 노트 벡터이다. 즉, 요소가 등차수열 형태로 배열된 노트 벡터가 일양 노트 벡터이다.
'''개방 균일 B-스플라인'''(Open Uniform B-spline)은 양 끝 매듭이 중복되어 곡선의 양 끝점이 처음과 마지막 제어점과 일치하는 B-스플라인이다. open uniform knot vector영어 또는 uniformly-spaced knot vector영어라고도 한다.
비균일 노트 벡터(非一様ノットベクトル, non-uniform knot vector영어)는 노트가 불규칙하게 배치된 노트 벡터이다.
4. 1. 균일 B-스플라인 (Uniform B-spline)
균일 B-스플라인(Uniform B-spline)은 매듭 간 간격이 일정한 B-스플라인으로, 카디널 B-스플라인(Cardinal B-spline)이 대표적인 예시이다.[12] 카디널 B-스플라인은 주어진 차수 ''n''에 대해 서로 이동된 복사본일 뿐이며, 더 간단한 정의로부터 유도할 수 있다.[12]:
여기서 "자리 표시자" 표기법은 변수 ''t''와 ''x''의 함수 의 ''n''차 나눗셈 차이를 구할 때, ''x''를 고정하고 를 ''t''만의 함수로 간주하여 계산해야 함을 의미한다.
카디널 B-스플라인은 균일하게 간격을 둔 매듭을 가지므로, 매듭 사이의 보간은 스무딩 커널과의 컨볼루션과 같다. 예를 들어 B-스플라인 노드() 사이에 세 개의 값을 보간하려는 경우, 신호를 다음과 같이 표현할 수 있다.
:
이 신호 와 사각형 함수 의 컨볼루션을 통해 1차 보간 B-스플라인 값을 얻는다. 2차 B-스플라인 보간은 사각형 함수와의 두 번의 컨볼루션 으로 얻어지며, 반복적인 필터링을 통해 고차 보간을 얻을 수 있다.
균일한 샘플 도메인에서 빠른 B-스플라인 보간은 반복적인 평균 필터링을 통해 수행할 수 있다. 또는, 사각형 함수는 푸리에 변환 도메인에서 싱크 함수와 같으므로, 3차 스플라인 보간은 푸리에 변환 도메인에서 신호에 sinc4를 곱하는 것과 같다.
1~4차 카디널 B-스플라인에 대한 대수식은 Irwin–Hall 분포#특수 경우에서 확인할 수 있다.
uniform knot vector영어는 노트가 등간격으로 배치된 노트 벡터이다.[30][31] 개의 노트로 구성된 일양 노트 벡터는 번째 요소 가 다음과 같이 정의된다.[32]
:
즉, 요소가 등차수열 형태로 배열된 노트 벡터가 일양 노트 벡터이다.[31]
균일한 노드에서의 2차 B-스플라인 곡선에서 B-스플라인 기저 함수는 다음과 같다.
:
이를 행렬 형식으로 표현하면 다음과 같다.
: for
4. 2. 개방 균일 B-스플라인 (Open Uniform B-spline)
'''개방 균일 B-스플라인'''(Open Uniform B-spline)은 양 끝 매듭이 중복되어 곡선의 양 끝점이 처음과 마지막 제어점과 일치하는 B-스플라인이다.[33][32] open uniform knot vector영어 또는 uniformly-spaced knot vector영어라고도 한다.[37][34]개방 균일 노트 벡터는 다음 순서로 만들어진다.
- 처음 n + 1개는 0으로 한다.
- 마지막 n + 1개는 1로 한다.
- 나머지 m - 2 (n + 1)개는 0보다 크고 1보다 작은 값으로 균등 간격으로 채운다.
예를 들어, n = 2, m = 7인 경우 제어점은 4개이고 노트 벡터는 [0 0 0 0.5 1 1 1]이다. 이 노트 벡터의 생성 방식에서는 곡선의 양 끝점이 처음과 마지막 제어점이 된다. 또한, 제어점의 수가 n + 1개인 경우에는 n차 베지어 곡선과 동일해진다.
4. 3. 비균일 B-스플라인 (Non-uniform B-spline)
비균일 노트 벡터(非一様ノットベクトル, non-uniform knot vector영어)는 노트가 불규칙하게 배치된 노트 벡터이다.[35][36]4. 4. 카디널 B-스플라인 (Cardinal B-spline)
카디널 B-스플라인은 매듭 사이의 간격 ''h''가 일정한 B-스플라인을 의미한다.[12] 주어진 차수 ''n''에 대한 카디널 B-스플라인은 서로 평행 이동된 복사본으로 구성된다. 카디널 B-스플라인은 다음과 같이 정의할 수 있다.:
여기서 "자리 표시자" 표기법은 변수 ''t''와 ''x''의 함수 의 ''n''차 나눗셈 차이를 구할 때, ''x''를 고정하고 를 ''t''만의 함수로 간주하여 계산해야 함을 의미한다.
카디널 B-스플라인은 균일하게 간격을 둔 매듭을 가지므로, 매듭 사이의 보간은 스무딩 커널과의 컨볼루션과 같다. 예를 들어 B-스플라인 노드() 사이에 세 개의 값을 보간하는 경우, 신호는 다음과 같이 표현할 수 있다.
:
이 신호 와 사각형 함수 의 컨볼루션을 통해 1차 보간 B-스플라인 값을 얻는다. 2차 B-스플라인 보간은 사각형 함수와의 두 번의 컨볼루션 으로 얻어지며, 사각형 함수를 사용한 반복적인 필터링을 통해 고차 보간을 얻을 수 있다.
균일한 샘플 도메인에서 빠른 B-스플라인 보간은 반복적인 평균 필터링으로 수행 가능하다. 또는, 사각형 함수는 푸리에 변환 도메인에서 싱크 함수와 같으므로, 3차 스플라인 보간은 푸리에 변환 도메인에서 신호에 sinc4를 곱하는 것과 같다.
1~4차 카디널 B-스플라인에 대한 대수식은 Irwin–Hall 분포#특수 경우에서 확인할 수 있다.
4. 5. P-스플라인 (P-spline)
P-스플라인은 "페널티화된 B-스플라인"을 의미한다. 이는 B-스플라인 표현 방식을 사용하며, 여기서 계수는 곡선 맞춤을 위한 데이터와 과적합을 방지하기 위해 평활도를 부과하는 추가적인 페널티 함수에 의해 부분적으로 결정된다.[13]데이터의 2차원 및 다차원 P-스플라인 근사는 계산 연산을 최소화하기 위해 행렬의 면 분할 곱을 사용할 수 있다.[14]
5. 베지어 곡선과의 관계
베지어 곡선은 B-스플라인 곡선의 특수한 경우이다.[18][19] B-스플라인 곡선은 재귀의 모든 항이 동일한 정의 영역을 갖는 베지어 곡선과 달리, B-스플라인 재귀의 두 항의 지지(support)는 다르다. 이는 제어점이 매우 많은 베지어 곡선이 대부분 독립적인 세그먼트로 구성되는 반면, B-스플라인은 부분 구간에서 부드럽게 전환됨을 의미한다. 베지어 곡선에서 이와 유사한 결과를 얻으려면 세그먼트 간의 전환에 대한 매끄러움 조건을 부과해야 하며, 이는 베지어 스플라인을 생성한다.[18][19]
n차 B-스플라인 곡선에서 제어점의 수를 개, 노트(knot)의 수를 개, t가 0에서 1까지 변화할때, 노드는 및 으로 제한하면 n차 베지어 곡선과 동일한 형태가 된다.
6. 응용
컴퓨터 지원 설계 및 컴퓨터 그래픽스 응용 분야에서 스플라인 곡선은 때때로 로 표현되는데, 여기서 는 어떤 실수 매개변수이다. 이 경우 곡선 는 두 개 또는 세 개의 별도 좌표 함수 또는 로 취급할 수 있다. 좌표 함수 , 및 는 각각 스플라인 함수이며 공통적인 매듭 값 집합 을 가진다.
B-스플라인이 기저 함수를 형성하기 때문에, 각 좌표 함수는 B-스플라인의 선형 합으로 표현될 수 있으며, 따라서 다음을 얻는다.
:
가중치 , 및 는 3차원 공간에서 점 를 형성하기 위해 결합될 수 있다. 이 점 는 일반적으로 제어점이라고 알려져 있다.
반대로, 제어점 시퀀스, 매듭 값 및 B-스플라인의 차수는 매개변수 곡선을 정의한다. 제어점으로 곡선을 표현하는 것은 몇 가지 유용한 속성을 가진다.
# 제어점 는 곡선을 정의한다. 제어점이 이동, 회전, 스케일링 또는 임의의 아핀 변환으로 이동되는 등 어떤 방식으로든 함께 변환되면 해당 곡선도 동일한 방식으로 변환된다.
# B-스플라인은 유한한 수의 매듭 간격 동안에만 0이 아니므로, 단일 제어점이 이동하면 매개변수 곡선에 대한 해당 변경 사항은 소수의 매듭 간격의 매개변수 범위에 걸쳐 나타난다.
# 이고 항상 각 이므로, 곡선은 제어점의 경계 상자 내에 유지된다. 또한, 어떤 의미에서 곡선은 대체로 제어점을 따른다.
덜 바람직한 특징은 매개변수 곡선이 제어점을 보간하지 않는다는 것이다. 일반적으로 곡선은 제어점을 통과하지 않는다.
6. 1. 컴퓨터 지원 설계 (CAD)
컴퓨터 지원 설계에서 스플라인 곡선은 C(t)로 표현될 수 있으며, 이때 t는 실수 매개변수이다. 곡선 C(t)는 두 개 또는 세 개의 좌표 함수 (x(t), y(t)) 또는 (x(t), y(t), z(t))로 나타낼 수 있다. 각 좌표 함수 x(t), y(t), z(t)는 B-스플라인의 선형 합으로 표현 가능하다.:
가중치 xi, yi, zi는 3차원 공간에서 점 Pi = (xi, yi, zi)를 형성하며, 이 점들은 제어점이라고 불린다.
제어점, 매듭 값, B-스플라인의 차수는 매개변수 곡선을 정의한다. 제어점으로 곡선을 표현하면 제어점이 이동, 회전, 스케일링 등의 변환을 할 때 곡선도 동일하게 변환된다는 특징을 가진다. 또한 B-스플라인은 유한한 수의 매듭 간격 동안에만 0이 아니므로, 단일 제어점이 이동하면 곡선의 해당 변경 사항은 소수 매듭 간격의 매개변수 범위에 걸쳐 나타난다. 이고 항상 각 이므로, 곡선은 제어점의 경계 상자 내에 유지되며, 곡선은 대체로 제어점을 따른다.
하지만, 매개변수 곡선이 제어점을 보간하지 않는다는 특징이 있는데, 일반적으로 곡선은 제어점을 통과하지 않는다.
6. 2. 컴퓨터 그래픽스
컴퓨터 지원 설계 및 컴퓨터 그래픽스에서 B-스플라인 곡선은 로 표현될 수 있으며, 이는 두 개 또는 세 개의 좌표 함수 또는 로 구성된다. 각 좌표 함수는 B-스플라인의 선형 합으로 표현 가능하다.:
가중치 , , 는 3차원 공간에서 제어점 를 형성한다. 제어점은 곡선을 정의하며, 제어점이 변환되면 곡선도 동일하게 변환된다. B-스플라인은 유한한 수의 매듭 간격 동안에만 0이 아니므로, 단일 제어점 이동은 소수 매듭 간격에만 영향을 미친다. 또한, 곡선은 제어점의 경계 상자 내에 유지되며, 대체로 제어점을 따른다. B-스플라인 곡선은 일반적으로 제어점을 보간하지 않으며, 곡선은 제어점을 통과하지 않는다. B-스플라인은 부드러운 곡선과 곡면을 생성하는데 사용되며, 애니메이션 및 시각 효과 제작에 활용된다.
6. 3. 곡선 근사 (Curve Fitting)
일반적으로 곡선 맞춤에서 일련의 데이터 점은 어떤 수학적 함수로 정의된 곡선에 맞게 조정된다. 예를 들어 다항식 또는 일련의 지수 함수를 사용한다.[20][21] 맞춤 함수를 선택할 이론적 근거가 없는 경우, B-스플라인의 합으로 구성된 스플라인 함수를 최소 제곱법을 사용하여 곡선에 맞출 수 있다. 차수 ''k''인 스플라인 함수에 대한 최소 제곱 최소화의 목적 함수는 다음과 같다.:
여기서 ''W''(''x'')는 가중치이고, ''y''(''x'')는 ''x''에서의 데이터 값이다. 계수 는 결정되어야 하는 매개변수이다. 매듭 값은 고정되거나 매개변수로 취급될 수 있다.
이 과정에서 사용할 매듭의 수와 위치를 결정하는 것이 가장 큰 어려움이다. 드 보어(de Boor)는 이 문제를 해결하기 위한 다양한 전략을 제시한다. 예를 들어, 매듭 간의 간격은 데이터의 곡률(2차 도함수)에 비례하여 감소한다. 단일 로렌츠 및 가우시안 곡선을 맞추기 위한 B-스플라인의 사용이 연구되었다.[22] 5, 6, 7개의 매듭의 대칭 배열을 기반으로 하는 3~7차의 최적 스플라인 함수가 계산되었고, 분광 곡선의 평활화 및 미분화에 적용되었다.[22] Savitzky–Golay 필터링의 2차원 버전과 스플라인 방법이 이동 평균 또는 체비쇼프 필터링보다 더 나은 결과를 생성했다.[23]
7. NURBS (Non-Uniform Rational B-Spline)
컴퓨터 지원 설계, 컴퓨터 지원 제조, 컴퓨터 그래픽스에서 B-스플라인의 확장판은 비균일 유리 B-스플라인(NURBS)이다.[24] NURBS는 동차 좌표계의 B-스플라인이며, B-스플라인과 마찬가지로 차수, 매듭 벡터, 제어점 집합으로 정의되지만, 제어점 각각에는 가중치가 있다.[24] 가중치가 1과 같을 때 NURBS는 단순히 B-스플라인이며, NURBS는 B-스플라인과 베지어 곡선 및 표면을 일반화한다. 제어점의 가중치는 NURBS 곡선을 "유리"하게 만드는 주요 특징이다.
NURBS 제어점은 곡선의 모양을 결정한다. 곡선의 각 점은 여러 제어점의 가중 합을 계산하여 계산된다. 각 점의 가중치는 지배적인 매개변수에 따라 달라지며, 차수 ''d''의 곡선의 경우, 임의의 제어점의 영향은 매개변수 공간의 ''d''+1 구간(매듭 스팬)에서만 0이 아니다. 해당 구간 내에서 가중치는 차수 ''d''의 다항식 함수(기저 함수)에 따라 변경된다.[24]
매듭 벡터는 제어점이 NURBS 곡선에 영향을 미치는 위치와 방식을 결정하는 매개변수 값의 시퀀스이다. 매듭의 수는 항상 제어점 수 + 곡선 차수 + 1과 같다. 매개변수 값이 새로운 매듭 스팬에 들어갈 때마다 새로운 제어점이 활성화되는 반면, 오래된 제어점은 버려진다.[24]
NURBS 곡선은 다음과 같은 형식을 취한다.[24]
:
여기서 ''u''는 독립 변수, ''k''는 제어점 수, ''N''은 B-스플라인, ''n''은 다항식 차수, ''P''는 제어점, ''w''는 가중치이다. 분모는 모든 가중치가 1인 경우 1로 평가되는 정규화 인자이다.
이것을 다음과 같이 쓰는 것이 일반적이다.[24]
:
여기에서 함수
:
는 유리 기저 함수로 알려져 있다.
NURBS 표면은 두 NURBS 곡선의 텐서 곱으로 얻어지므로 두 개의 독립적인 매개변수 ''u''와 ''v''(각각 인덱스 ''i''와 ''j'' 사용)를 사용한다:[25]
:
여기서
:
는 유리 기저 함수이다.
7. 1. 유리 기저 함수 (Rational Basis Function)
7. 2. NURBS 곡면 (NURBS Surface)
방향으로 차수, 방향으로 차수의 B-스플라인 곡면은 다음과 같이 표현된다.[38]:.
노트와 기저 함수는 곡선과 동일하다. 제어점의 개수는 개다. B-스플라인 곡면은 두 개의 B-스플라인 곡선을 텐서 곱하여 얻어지며, 복잡한 3차원 형상을 표현하는 데 사용된다.
참조
[1]
서적
Curves and surfaces for CAGD: a practical guide
Morgan Kaufmann
2002
[2]
문서
[3]
서적
Interpolating cubic splines
https://books.google[...]
Springer
2000
[4]
서적
Bézier and B-Spline Techniques
Springer Science & Business Media
[5]
간행물
Shape design optimization of cylindrical tank using b-spline curves
[6]
문서
[7]
문서
[8]
문서
[9]
문서
[10]
간행물
A Simplified B-Spline Computation Routine
1982-12
[11]
간행물
Comments on some B-spline algorithms
[12]
문서
[13]
문서
Flexible smoothing with B-splines and penalties (with comments and rejoinder)
1996
[14]
간행물
Multivariate calibration with temperature interaction using two-dimensional penalized signal regression
[15]
문서
[16]
간행물
B-splines, hypergeometric functions, and Dirichlet averages
[17]
간행물
Probabilistic treatment of the uncertainty from the finite size of weighted Monte Carlo data
[18]
서적
Handbook on Splines for the User
https://books.google[...]
CRC Press
1995-07-14
[19]
서적
The Inventor Mentor: Programming Object-Oriented 3D Graphics with Open Inventor, Release 2
http://www-evasion.i[...]
Addison-Wesley Longman Publishing Co., Inc.
1993
[20]
문서
[21]
문서
[22]
간행물
Smoothing and Differentiation of Spectroscopic Curves Using Spline Functions
[23]
간행물
Time-Domain Filtering of Two-Dimensional Fluorescence Data
http://www.dtic.mil/[...]
[24]
문서
[25]
문서
[26]
문서
[27]
웹사이트
B-spline Basis Functions: Definition - CS3621 Introduction to Computing with Geometry Notes
http://pages.mtu.edu[...]
[28]
문서
[29]
문서
[30]
문서
[31]
문서
[32]
웹사이트
B-splines - Advanced Graphics and HCI
https://www.cl.cam.a[...]
[33]
문서
[34]
웹사이트
Knot Vector Generation for B-Spline Interpolation - Wolfram Demonstrations Project
http://demonstration[...]
[35]
문서
[36]
서적
[37]
웹사이트
Knot Vector Generation - CS3621 Introduction to Computing with Geometry Notes
http://pages.mtu.edu[...]
[38]
웹사이트
B-spline Surfaces: Construction - CS3621 Introduction to Computing with Geometry Notes
http://pages.mtu.edu[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com