• 검색 결과가 없습니다.

14장. 스플라인

N/A
N/A
Protected

Academic year: 2022

Share "14장. 스플라인"

Copied!
56
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

1

14장. 스플라인

학습목표

• 제어점, 지역성, 컨벡스 헐 등의 용어가 지닌 개념을 명확히 이해한다.

• 선형조합에 의해 곡선을 만드는 방법을 이해한다.

• 구간별 곡선의 연결에 가해지는 제약조건을 이해한다.

• 허미트 스플라인, 베지에 스플라인, 너브스의 특징과 장단점을 이해한다.

• 곡선을 확장하여 곡면을 생성하는 방법을 이해한다.

(2)

스플라인(Splines)

목수들이 부드러운 곡선을 긋기 위해 사용하던 얇은 금속 띠

• 추(Ducks)의 무게에 의해 부드러운 곡선

• 수학의 발전에 의해 다항식으로 표현. 다항식 곡선=스플라인

용도

(3)

3

제어점(CP: Control Points)

곡선의 모양을 제어하는 특징적인 점

• 제어점의 추가, 삭제, 위치변경 등에 의해 곡선의 모습을 제어

• 구간(Segment) = 한 쌍의 제어점 사이

스플라인 = 구간별 다항식(Piecewise Polynomials) 곡선에 대한 어파인 변환

• 제어점에 어파인 변환을 가한 후

• 변환된 제어점에 곡선의 식을 가함.

(4)

스플라인 분류

보간 스플라인(Interpolating Splines)

• 제어점을 통과(Pass-Throughness) 근사 스플라인(Approximating Splines)

• 부드러움을 위해 제어점을 통과하지 않음

• 제어점은 곡선을 끌어당기는 역할 (Remote Control)

• 경우에 따라서 첫점과 마지막 점은 통과

(5)

5

스플라인의 지역성

지역성(Locality)

• 제어점을 움직일 때 여타 구간에 미치는 영향력

• 이미 설계완료된 부분에 영향을 미치지 않도록 작을수록 좋음.

• 3개 구간 vs. 9개 구간

• 구간별로 서로 다른 계수의 다항식: 지역성 향상을 위함.

(6)

제어 그래프, 컨벡스 헐

제어 그래프(Control Graph, Control Polygon, Defining Polygon)

• 제어점들을 순서대로 선분으로 연결한 그래프

컨벡스 헐(Convex Hull)

• 제어 그래프 일부에 대해서 시작점과 끝점을 연결한 도형

• 구간별 3차 다항식: 4개의 인접한 제어점

• 구간별 2차 다항식: 3개의 인접한 제어점

(7)

7

컨벡스 헐 특성

컨벡스 헐 특성(Convex Hull Property)

• 스플라인이 컨벡스 헐 내부에만 존재할 경우

• 진동(Oscillation)이나 이탈(Overshoot)을 방지

• 제어점이 일직선(Co-linear)이면 스플라인은 직선

▪ 직선도 곡선과 동일하게 취급

(8)

파라미터 표현

y = x + 1 (0 ≤ x ≤ 4)

• (t, t + 1) or (t2, t2 + 1) or (3t, 3t + 1) 정규화 파라미터(Normalized Parameter)

• (4t, 4t + 1)

• 파라미터는 범위가 (0 ≤ t ≤ 1) 파라미터 표현의 장점

• 균등 길이

• 유한 기울기(예: x = 1)

(9)

9

스플라인의 연속성(Continuity)

곡선의 부드러움(Smoothness)

• 제어점 부근에서의 곡선의 기울기(Slope)와 곡률(Curvature)

• 불연속, C0, C1, G1, C2

C1 연속

• 들어오는기울기 = 나가는기울기. 기울기 = 접선 = 1차 미분계수 G1 연속

• 기하학적(Geometric) 또는 시각적(Visual) 연속성

• 나가는 기울기가 들어오는 기울기의 상수배, 방향만 같음.

C2 연속

• 들어오는 기울기의 변화율(Curvature, 곡률, 기울기의 기울기, 2차 미분계 수) = 나가는 기울기의 변화율. 가장 부드러운 곡선. 이를 위해 제어점을 피해 갈수 있음 = 근사 스플라인

(10)

바이어스(Bias), 텐션(Tension)

Barsky의 Beta Spline

• 텐션(Tension)

▪ 곡선의 장력 즉 긴장도.

▪ 두 개의 제어점에 의해 정의된 하나의 구간에 적용

▪ 구간 BC가 AB보다 텐션이 높음.

• 바이어스(Bias)

▪ 제어점 근처에서의 곡선 행동

▪ 제어점 B에서 (a)는 나가는 방향으로 바이어스, (b)는 들어오는 방향으로 바이어스가 걸려있음.

(11)

11

카디날 스플라인(Cardinal Splines)

혼합함수(Blending Function)

• 점을 섞어 선분의 식을 표시

• 기반함수(Basis Function), 가중치 함수(Weighting Function)

• 이 경우 혼합함수는 (1-t), (t)이므로 선형 혼합함수

(12)

카디날 스플라인 (Cardinal Splines)

선분의 선형조합

m(t1)에서 t1 = 0 인 점 p1은 p(t)로 볼 때 t = 0인 점

m(t1)에서 t1 = 1 인 점 p2는 p(t)에서 t = 1/2 인 중간점으로 간주 m(t2)에서 t2 = 0 인 점 p2는 t = 1/2

(13)

13

카디날 스플라인 (Cardinal Splines)

곡선의 선형조합

• p2, p3 사이의 곡선. 굴절곡선은 2차함수로는 안되고 3차함수

(14)

카디날 스플라인 (Cardinal Splines)

제어점 p1, p2, p3, p4가 주어지면 곡선은 p2-p3 구간에서만 정의된다.

주어진 제어점들을 정확히 통과하는 보간 스플라인 C1 연속성을 지님.

지역성으로 인해 더 이상의 혼합을 가하지 않음.

4 개의 3차 기반함수에 의해 제어점 p1, p2, p3, p4를 혼합

• 기반함수:

(15)

15

허미트 스플라인(Hermite Splines) 양 끝점의 위치와 해당 점에서의 기울기에 의해 정의

(16)

허미트 스플라인(Hermite Splines)

좌변 첫 행렬의 역행렬을 곱해 MhPt를 구함

(17)

17

허미트 스플라인(Hermite Splines)

곡선의 개형

• 기울기 크기 변화, 기울기 방향변화

(18)

베지에 스플라인(Bezier Splines) 3 개의 제어점에 의한 베지에 곡선

베지에가 제안하기 이전에 이미 번스타인(Bernstein)에 의해 수학적으로 유도가 완

(19)

19

베지에 스플라인(Bezier Splines)

선형혼합에 의함. 예시: 3개의 제어점, 4개의 제어점.

• 그림은 t = 1/3일 경우의 예

(20)

베지에 스플라인(Bezier Splines)

일반식

3개의 제어점에 의한 2차 베지에

(21)

21

베지에 스플라인(Bezier Splines)

2차 베지에 기반함수

• J2,0(t),= (1-t)2, J2,1(t) = 2t(1-t), J2,2(t) = t2 기반함수

• 제어점이 곡선을 자신 쪽으로 끌어당기는 영향력 (가중치)

• t = 0 인 p0 에서는 J2,0(t)의 영향력만 1. 따라서 t = 0인 점에서의 곡선의 위치는 p0 점 자체

• t = .5인 p1 에서는 p0 점의 영향력은 J2,0(.5) = .25, p1 점의 영향력은 J2,1(.5)=.5, p2점의 영향력은 J2,1(.5) = .25 만큼. 따라서 근사 스플라인

(22)

베지에 스플라인(Bezier Splines)

3차 베지에 곡선

(23)

23

베지에 스플라인(Bezier Splines)

베지에 곡선의 특성

• 주어진 제어점 중 처음 점과 마지막 점만 통과

• 주어진 제어점에 의해 형성되는 컨벡스 헐 내부에만 곡선이 존재(임의의 t에서 기 반함수 값이 모두 양이며 그 합이 항상 1)

• 처음 점과 마지막 점에서 곡선의 기울기는 제어 그래프와 일치

• 4 개의 제어점에 의한 3차 베지에 곡선은 제어점 p0, p1, p2, p3 전 구간에서 정의됨. cf. 카디날 스플라인

• n 개의 제어점이 주어지면 베지에 곡선은 파라미터 t에 대한 (n - 1)차 함수. 지 역성을 감안하면 3차 정도가 좋으므로 4 개의 제어점 단위로 구간 구간을 잘라서 정의.

(24)

베지에 스플라인

개형

(25)

25

베지에 스플라인

구간별 베지에 곡선의 연결조건

• G1 연속성이 요구됨.

베지에 스플라인은 허미트 스플라인의 특수한 경우

(26)

베지에 스플라인

중점 분할(Midpoint Subdivision)

• 재귀 호출(Recursive Call)에 의해 베지에 곡선을 그리는 방법

• 1개의 구간이 2개의 구간으로 나뉘어짐. 이를 반복적으로 적용

• 구간별 연속성이 보장됨(7-9-8이 직선상에 존재)

(27)

27

B-스플라인

구간별 연결에 C2 연속성 보장

• 더욱 부드러운 곡선

• 일반적으로 제어점을 통과하지 않음

• 인접한 곡선끼리 제어점을 공유

• 3차 스플라인이라면 3개의 제어점을 공유

(28)

B-스플라인

3차 B-스플라인

• 제어점 4개에 의해 1개의 구간 곡선이 정의됨.

• 3개의 제어점이 공유되므로 q0, ..., q6 까지 6개의 구간 곡선 구간별 파라미터

• [0, 1]의 범위 대신 [i, i+1]의 범위에서 움직임.

• 나트(매듭, Knot): t = i일 때의 곡선 상의 점

• 나트벡터(Knot Vector): 연속된 나트 값의 집합.

• B-스플라인의 나트벡터: 균등 나트벡터(Uniform Knot Vector)

• 나트벡터: 제어점에 추가로 곡선에 대한 제어를 강화

(29)

29

B-스플라인

B-스플라인의 B는 기반함수(Basis)를 의미함.

(30)

B-스플라인

제어점 p3가 영향을 미치는 구간곡선

• q0에 대해서 B3, q1에 대해서 B2, q2에 대해서 B1, q3에 대해서 B0의 가중치.

• 제어점 p3가 이웃한 4개의 곡선에 주는 영향

▪ 점 a, a', b, b', c는 나트에서의 기반함수 값. 다항식이므로 C2 연속을 보 장

(31)

31

B-스플라인

제어점별 기반함수의 중첩

(32)

B-스플라인

곡선을 제어점 쪽으로 끌어당길 필요성이 존재

• 방법 1: 제어점 반복

• 수학적으로는 모두 C2 연속

• 시각적으로는 (b)는 G1 연속, (c)는 G0 연속

(33)

33

B-스플라인

• 방법 2: 나트 반복.

▪ 3번 제어점 으로 당기기 위해 동일한 나트 값을 2번 나열. 나트 t4=t5=1 로 설정

(34)

B-스플라인

차등 B-스플라인(Non-Uniform B-Splines)

• 나트간격을 불규칙하게 함으로써 곡선의 모습을 제어

(35)

35

B-스플라인

일반적인 B-스플라인 = 차등 B-스플라인

• 재귀호출에 의한 B-스플라인 기반함수 생성

(36)

B-스플라인

균등 나트벡터의 기반함수와 결과

(37)

37

B-스플라인

차등 나트벡터의 기반함수와 결과

(38)

B-스플라인

차등 나트벡터의 사용

• 나트벡터 변경 결과 곡선의 모습을 예측하기 어려움

• 첫 제어점과 마지막 제어점을 통과하도록 하는데 사용

▪ 예: 나트벡터 (0.0, 0.0, 0.0, 3.0, 4.0, 5.0, 6.0, 7.0)

• 뾰족한 부분(Kink)이나 각진 모서리(Corner)를 표현할 때 사용

▪ 예: 나트벡터 (0.0, 1.0, 2.0, 3.0, 3.0, 5.0, 6.0, 7.0)

▪ 제어점 p2의 나트 값을 2번 나열 k차 기반함수

• 나트에서 C(k-1)의 연속성. 2차 기반함수는 나트에서 C1 연속성

• 나트 값이 한 번 중복될 때마다 연속성이 1차씩 감소. 아래 2차 기반함수에서는 원래 C1 연속이 C0 연속으로 바뀜.

(39)

39

너브스(NURBS)

원근변환

• 원근변환 된 모습의 곡선을 그려내려면 기반함수 자체가 유리함수(Rational Function)이어야 함

너브스(NURBS)

• 차등 유리 B-스플라인(Non-Uniform Rational B Spline)

• 제어점 마다 가중치 wi를 부여: 규칙곡선이 가능

(40)

너브스(NURBS)

너브스 표현

• 는 크기 조절이 가해진 기반 함수

• 크게 봐서 의 형태

(41)

41

너브스(NURBS) 곡선의 제어

3 가지 방법

• 나트벡터의 간격. 예: 불규칙 나트벡터

• 나트벡터의 반복. 곡선을 제어점쪽으로 끌어당김

• 제어점의 가중치. 곡선을 제어점쪽으로 끌어당김 
 베지어 곡선

• 너브스의 특수한 경우

• 양 끝 제어점을 통과

▪ 예:불규칙나트벡터 (0, 0, 0, 0, 1, 1, 1, 1)을 가진 너브스

• 모든 베지어 곡선은 너브스로 표현가능

(42)

스플라인 연산

첫번째 함수호출에 따른 오버헤드를 없앤 것이 두번째.

세번째 호르너 규칙(Horner’s Rule) 적용: 연산속도, 정밀성 향상

q(t) = 5 + 7t + 4t 2 + 2t 3

(43)

43

스플라인의 분할

더욱 정밀한 제어를 위해

• 베지어 곡선: 중점 분할, 1/3점 분할, …

• 너브스 곡선: 나트 추가에 의한 새로운 제어점 생성

(44)

스플라인 곡면(Spline Surfaces)

곡면은 평면의 집합으로 근사화

• 균등분할(Uniform Subdivision), 가변분할(Adaptive Subdivision)

• 스플라인 곡선의 직접적인 확장이 스플라인 곡면

▪ 곡선의 제어 그래프가 서로 교차

(45)

45

스플라인 곡면

스플라인 곡선

양방향 3차 곡면(Parametric Bicubic Surface)

• u, w 파라미터가 필요함

• 우변 두 번째 행렬 M에 보간 방법과 점 p의 위치를 반영

(46)

공간상의 4 점이 주어졌을 경우 4점으로 채워진 곡면

(47)

47

2 개의 공간곡선이 주어졌을 경우 공간곡선(Space Curve)

• 3차원 곡선

괘선 면(Ruled Surface)

(48)

4 개의 경계곡선이 주어질 경우

4개 곡선의 영향력을 모두 감안

윗 식의 오류

(49)

49

허미트 곡면(Hermite Surfaces)

(a)의 하단 곡선 이 곡선을 위로 올림

p1(w), p2(w)도 허미트 곡선.

(50)

베지어 곡면(Bezier Surface)

선형보간에 의함

• 1차 베지어 곡면

• 1차 베지어 곡면, 2차 베지어 곡면

(51)

51

베지어 곡면(Bezier Surface)

3차 베지어 곡면

• 4 by 4 = 16개의 제어점

• J 는 베지어 곡선의 공식

• 양방향의 스플라인을 직접 곱하는 형식 = 직교적(直交積, Cartesian Product, Tensor Product)

(52)

베지어 곡면(Bezier Surface)

베지어 곡면의 연결

• 베지어 곡선과 마찬가지로 연결성에 유의

• u, w 양 방향 모두에 대해 제어점이 일직선 위에 놓이게 제한

(53)

53

베지어 곡면(Bezier Surface)

(54)

B-스플라인 곡면(B-Spline Surfaces)

B-스플라인 곡선의 직교적

C2 연속성을 보장. cf. 베지에 곡면: G1 연속성

적은 수의 제어점만으로 규칙적인 입체 표면을 완벽히 표현

(55)

55

2차곡면(Quadric Surfaces)

파라미터 표현이 아님.

x, y, z에 관한 2차 함수. x, y, z 사이의 직접적인 관계에 의해 표현

• 예: 원구

일반적인 2차곡면

• 대각선 행렬(Diagonal Matrix). 대각선을 중심으로 서로 대칭

(56)

2차곡면(Quadric Surfaces)

장점

• 어떤 점이 표면 위에 존재하는지 검증하기 쉽다.

• x, y 좌표가 주어졌을 때 z 좌표를 계산하기 쉽다. (은면 제거에 이용)

• 선분과의 교차점을 계산하기 쉽다. (레이트레이싱에 적용)

• 표면의 법선벡터를 계산하기 쉽다.

법선벡터

참조

관련 문서

control points, basis functions, Bezier control points, basis functions, Bezier curve, B-spline curve.y. Why we

기존의 연구 11) 에서는 치근의 수와 근관의 수가 일치하는 경우 해부학적 근단 공의 위치에 따라 생리학적 근단공을 명명하였으나 Wei ne 6) 에 의한 근관계의

대소변 재활용

고분자의 계면 활성화를 위해 저온 플라즈마를 사용하는 것은 이미 1968년 Beauchamp와 Buttri l l 에 의해 제시되었다.고분자끼리 혹은 다른 물질과의 접

It showed the study that makes the tangent continuous approximated to become the curvature continuous in the connection points of Bezier curves.. Key Words :

원뿔곡선은 이차유리 베지에(quadratic rational Bezier curve)로 표현가능하며, 사실상

2.2.4 Bezier Curve Interpolation / Approximation 2.2.1 Definition & Characteristics of Bezier curves 2.2.2 Degree Elevation/Reduction of Bezier curves 2.2.3

Key word : homogeneous barycentric coordinate, quadratic rational Bezier curve, isogonal conjugate, isotomic conjugate, centroid, incenter... 이차 유리