전산 전산 선박 선박 설계 설계 Part 2.
Part 2. 곡선 곡선 , , 곡면 곡면
2006.9.
서울대학교 조선해양공학과
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
2/196
목 목 차 차
Ch1. 학습 목표
y 주어진 점을 지나는 곡선/곡면 생성방법 습득 Æ 선박 형상 곡면 생성
Ch2. 곡선(Curve)
2.1 Parametric function/curves
2.2 Bezier curves (de Casteljau algorithm)
2.3 B-spline curves (de Boor algorithm, C1 C2 continuity)
Ch3. 곡면(Surface)
3.1 Parametric surfaces
3.2 Tensor product Bezier surfaces 3.3 Tensor product B-spline surfaces 3.4 B-spline surface interpolation
Ch4. 과제(Term Project)
y 선박의 Offset data로부터 선박 형상 B-spline 곡면 생성 및 가시화
Ch1.
Ch1. 학습목표 학습목표
1.1 주어진 점을 지나는 곡선 만들기
1.1 1.1 주어진 주어진 점을 점을 지나는 지나는 곡선 곡선 만들기 만들기
1.1.1 함수/곡선의 다항식 표현 1.1.2 3차 Bezier 곡선 보간
1.1.3 3차 B-spline 곡선 보간
1.1.4 선형 표현을 위한 주요 곡선 – Section line
1.1.5 선형 표현을 위한 주요 곡선 – Water line 생성
1.1.1
1.1.1 함수 함수 / / 곡선의 곡선의 다항식 다항식 표현 표현
Given :
Find : cubic polynomial function
[ ]
⎥ ⎥
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎢
⎣
⎡
= +
+ +
=
3 2 3
3 2
2 1
0
1 )
(
t t t t
t t
t a a a a a a a a
r
0 1 2 3The monomial form :
a
3a a
a
0,
1,
2,
) (t r
The Bezier form :
3 3
3 2
3 2 1
3 1 0
3 0
3 3 2 2 1
2 0
3
) ( )
( )
( )
(
) 1 ( 3 )
1 ( 3 )
1 ( ) (
b b
b b
b b
b b
r
t B t
B t
B t
B
t t
t t
t t
t
+ +
+
=
+
− +
− +
−
=
[ ] [ ]
-1
3 2
1 0
3 2
1
0
b b b a a a a
b
⎥ ⎥
⎥ ⎥
⎤
⎢ ⎢
⎢ ⎢
⎡
−
−
−
−
= 0 0 3 3
3 6
3 0
1 3
3 1
[ ]
⎥⎥
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢⎢
⎢
⎣
⎡
=
(t) (t) (t) (t) b
b b
b
0 1 2 33 3
3 2 3 1
3 0
B
B
B
B
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
6/196
1.1.2 3
1.1.2 3 차 차 Bezier Bezier 곡선 곡선 보간방법 보간방법 (1) (1)
If we are given fitting points P
iand we wish to pass a curve through them. There, the points are 2D, but the curve might as well be 3D.
This is called “curve interpolation”.
p 1
p 3 p 2
p 0
We may choose among many kinds of curves; for right now, we will use a cubic Bezier curve.
Æ “cubic Bezier curve interpolation”
) (t r
3 3
3 2
3 2 1
3 1 0
3
0
( ) ( ) ( ) ( )
)
( b b b b
r t = B t + B t + B t + B t
Given parameter t
icorresponding to P
i, we want a cubic Bezier curve such that:
. 3 , 2 , 1 , 0
; )
( t i = p i i =
r
1.1.2 3
1.1.2 3 차 차 Bezier Bezier 곡선 곡선 보간방법 보간방법 (2) (2)
The cubic Bezier curve of the form:
All interpolation conditions are:
. ) ( )
( )
( )
( )
(
03b
0 13b
1 23b
2 33b
3r t = B t + B t + B t + B t
. ) ( )
( )
( )
(
, )
( )
( )
( )
(
, ) ( )
( )
( )
(
, )
( )
( )
( )
(
3 3 3
3 2
3 3 2 1
3 3 1 0
3 3 0 3
3 3 2
3 2
3 2 2 1
3 2 1 0
3 2 0 2
3 3 1
3 2
3 1 2 1
3 1 1 0
3 1 0 1
3 3 0
3 2
3 0 2 1
3 0 1 0
3 0 0 0
b b
b b
p
b b
b b
p
b b
b b
p
b b
b b
p
t B t
B t
B t
B
t B t
B t
B t
B
t B t
B t
B t
B
t B t
B t
B t
B
+ +
+
=
+ +
+
=
+ +
+
=
+ +
+
=
4 Unknown Vectors, 4 Vector Equations
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
8/196
1.1.2 3
1.1.2 3 차 차 Bezier Bezier 곡선 곡선 보간방법 보간방법 (3) (3)
To find the solution of these four equations for four unknowns, we can write in matrix form:
To abbreviate the above form as:
The solution is:
Although it is looks like the solution to one linear system but it is the two or three systems depending on the dimensionality of the .
. )
( )
( )
( )
(
) ( )
( )
( )
(
) ( )
( )
( )
(
) ( )
( )
( )
(
3 2 3 3
3 3 3
2 3 3
1 3 3
0
3 2 3 3 2
2 3 2
1 3 2
0
3 1 3 3 1
2 3 1
1 3 1
0
3 0 3 3 0
2 3 0
1 3 0
0 1
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
=
⎥ ⎥
⎥ ⎥
⎦
⎤
⎢ ⎢
⎢ ⎢
⎣
⎡
b b b b
p p p p
1 0
3 2 0
t B t
B t
B t
B
t B t
B t
B t
B
t B
t B t
B t
B
t B
t B t
B t
B
. MB P =
1
P . M B =
−p i
[ x y ]
Tor [ x y z ]
Tex
)p
0 = 0 00 0 0
1.1.3 3
1.1.3 3 차 차 B B - - spliine spliine 곡선 곡선 보간방법 보간방법
Given:
Find:
곡선 상의 점 pi 곡선의 놋트ui 양끝단의 접선 벡터
곡선 상의 점 pi을 지나고 C2 연속 조건을 만족하는 3차 B-Spline 곡선
(B-Spline 조정점)
p
0p
1p
4p
3p
2p
5가정 : 각 곡선 세그먼트는 3차 Bezier Curve 이다.
u
2u
3u
4u
5u
6u
1u
0Δ
2Δ
3Δ
4Δ
5u
7u
8u
9Δ
6u
-1u
10v
0v
1v
2v
3v
4v
5v
6v
7u
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
10/196
곡선 부분
직선 부분직선 부분
호 부분
St. 19.75
St. 15p
0p
1p
2p
3p
4p
5p
6p
7p
8p
9p
10p
11p
12p
13p
14p
1p
2p
3p
41.1.4
1.1.4 선형 선형 표현을 표현을 위한 위한 주요 주요 곡선들 곡선들 - - Section Line Section Line
선형 좌표계에서 y-z 평면에 존재하는 곡선을 말하며, 이러한 선형 곡선들이 모여 선도(lines)의 정면도(Body Plan)를 구성
보통 선형의 section line은 선박의 길이(LBP)를 20 등분한 station이라는 위치에서 주어지므로 station line이라고도 말함
St. 19.75
St. 1
1.1.5
1.1.5 선형 선형 표현을 표현을 위한 위한 주요 주요 곡선들 곡선들 - - Water Line Water Line 생성 생성 (1) (1)
St.15 St.19
St.19.75
¨ z = a 평면과 주요 곡선 및 모든 section line들과의 교차 계산을 통해 waterline 생성
z = a
z = a에서의 waterline 생성을 위한 교차점
Z
Y
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
12/196
1.1.5
1.1.5 선형 선형 표현을 표현을 위한 위한 주요 주요 곡선들 곡선들 - - Water Line Water Line 생성 생성 (2) (2)
z = a 위치에서의 모든 교차점들을 NURB 곡선을 이용하여 보간(fitting)
¨ z = a에서의 waterline 생성
z = a 위치에서의 교차점들
section line(station)
원하는z 위치에 대해 위 과정을 반복 수행
Waterline 생성
ª
St.15 St.19
St.19.75
z = a Z
Y
1.1.5
1.1.5 선형 선형 표현을 표현을 위한 위한 주요 주요 곡선들 곡선들 - - Water Line Water Line 생성 생성 (3) (3)
1.2 1.2 주어진 주어진 점을 점을 지나는 지나는 곡면 곡면 만들기 만들기
1.2.1 요트 형상의 선박형상곡면 생성
1.2.2 구상선수를 갖는 선박형상곡면 생성
1.2.1
1.2.1 요트 요트 형상의 형상의 선박형상 선박형상 곡면 곡면 생성 생성 (1) (1)
* 출처 : 서울대 조선해양공학과 2005년 2학년 교과목『 조선해양공학계획』강좌 중에 학생들이 설계한 선형
사각형 패치의 꼭지점 결정
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
16/196
1.2.1
1.2.1 요트 요트 형상의 형상의 선박형상 선박형상 곡면 곡면 생성 생성 (2) (2)
점들의 x좌표 사이의 거리가 거의 일정하도록 점을 추출한 후 Æ 이 점 data로부터 선형곡면을 생성한 결과
11x11 points
1.2.2
1.2.2 구상선수를 구상선수를 갖는 갖는 선박형상곡면 선박형상곡면 생성 생성 (1) (1)
선수부
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
18/196
1.2.2
1.2.2 구상선수를 구상선수를 갖는 갖는 선박형상곡면 선박형상곡면 생성 생성 (2) (2)
주어진 곡선그물망 이외의 보조선을 생성하여 곡선 보간에 적합한 점 data를 생성한 후, 점 data로부터 선수부 선형곡면을 생성한 결과
왜곡 감소
Ch 2.
Ch 2. 곡선 곡선 (Curves) (Curves)
2.1 Parametric function/curves 2.2 Bezier Curves
2.1 Parametric function/
2.1 Parametric function/
curves curves
2.1.1 양함수/음함수/매개변수 함수 2.1.2 매개변수 함수의 특징
2.1.3 일반함수의 매개변수 함수 표현 2.1.4 매개변수 함수의 직관적 표현방법
2.1.1 Explicit / Implicit / Parametric function 2.1.1 Explicit / Implicit / Parametric function
Explicit function(양함수식)
y 함수가 y=f(x) 의 형태로 나타내어지면
양함수라고 함y x가 주어지면 y를 쉽게 구할 수 있음
Implicit function(음함수식)
y 변수가 x, y 두 개일 때, 함수 f(x, y) = 0 와 같은 형태로 표현되는 식을
음함수라고 함y 주어진 점이 곡선의 내부 또는 외부, 왼쪽 또는 오른쪽 )에 있는지 판단하기 쉬움
y f(x, y) = 0인 함수를 y에 대해 풀어서 y = f(x)의 형태가 얻어지면 양함수로 변환이 가능함 . 모든 음함수가 양함수로 변환될 수 있는 것은 아님
Parametric function(매개 변수 함수식)
y 2변수 함수가 매개 변수 t를 이용하여, x = f(t),
y = g(t)로 나타내어지면 이를
매개 변수 함수라고 함y 즉, 매개 변수 t를 매개로 하여 x와 y를 표현하는 형식
2
) y r
2x ex = −
0 ) x
2+ y
2− r
2= ex
x y
t
(rcost , rsint)
x y
r
( ) ( )
( ) ( ) 0
0 0
0 )
2 2 2
2 2 2
>
− +
<
− +
r r
r
r ex
2
) y r
2x
ex = ± −
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
22/196
2.1.2
2.1.2 매개변수 매개변수 함수 함수 (Parametric function) (Parametric function) 의 의 특징 특징 (1) (1)
일반적인 함수
y 하나의 x 값에 대해 y 값이 두 개이상 나올 수 있음 (multi-value function)
y 미분 계수를 표현하기 어려운 경우가 있음
매개 변수 함수
y 하나의 매개 변수 값에 대해 하나의 값만이 나옴
y 미분 계수를 표현하기 쉬움
Ædy/dx를 각 요소별로 나누어서 계산함: dy/dt, dx/dt
x y1
y2
2 2
2 y r
x + =
2 2
2
y r
x + = y = ± r
2− x
2t r
t y t r
t
x
( ) = cos , ( ) = sinx y
t
(rcost , rsint)
t dt r
t dy dt r
dx
= − sin ,= cos
x y
x y
r
r
= ∞=r
dx
xdy
,
2.1.2
2.1.2 매개변수 매개변수 함수 함수 (Parametric function) (Parametric function) 의 의 특징 특징 (2) (2)
y = f(x)의 양함수식
y 원래의 양함수 곡선을 회전 ,이동 등을 통하여 변형한 후 , 이를 다시 양함수 곡선으로 표현 * 하기 어려움
f(x, y) = 0의 음함수식
y 곡선 상의 점을 순차적으로 계산할 수 없다
y 차원 확장이 어렵다. x = f(t), y = g(t)의 매개 변수식
y 매개 변수를 통해 곡선 상의 점을 순차적으로 계산할 수 있다.
y 차원을 쉽게 확장할 수 있다.
¨ CAD 시스템에서 매개 변수식을 많이 사용하는 이유
*차원확장
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
24/196
The curve is defined by parametric functions
If the curve is rotated by 90°,
형상은 변하지 않고, 위치만 변함
⎥ ⎦
⎢ ⎤
⎣
⎡
= −
⎥ ⎦
⎢ ⎤
⎣
⎡
2 2
2 t t t
y x
⎥ ⎦
⎢ ⎤
⎣
⎡ − +
⎥ =
⎦
⎢ ⎤
⎣
⎡
t
t t
y
x 2 2 2
x y
x y
2.1.2
2.1.2 매개변수 매개변수 함수 함수 (Parametric function) (Parametric function) 의 의 특징 특징 (3) (3)
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (1) (1) 1
2 4
2 3 − 2 + +
= x x x
y
1 1.1 1.2 1.3 1.4 1.5 1.6
Given:
x
y
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
26/196
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (2) (2) 1
2 4
2 3 − 2 + +
= x x x
y
⎥ ⎦
⎢ ⎤
⎣
⎡
+ +
= −
⎥ ⎦
⎢ ⎤
⎣
= ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
1 2
4 2
) (
) ) (
(
3 2t t
t
t t
y t x y
t x r
⎥ ⎦
⎢ ⎤
⎣
⎡
+
− +
− +
−
+
− +
− +
= −
⎥ ⎦
⎢ ⎤
⎣
= ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
3 3 2
2 1
2 0
3
3 3 2
2 1
2 0
3
) 1 ( 3 )
1 ( 3 )
1 (
) 1 ( 3 )
1 ( 3 )
1 ( )
( ) ) (
( t y t t y t t y t y
x t x
t t
x t t
x t t
y t x y
t x r
⎥ ⎦
⎢ ⎤
⎣
⎡
+
− +
− +
−
+
− +
− +
= −
⎥ ⎦
⎢ ⎤
⎣
⎡
+ +
−
3 0 2 1 2 2 3 33 3 2
2 1
2 0
3 2
3
( 1 ) 3 ( 1 ) 3 ( 1 )
) 1
( 3 )
1 ( 3 )
1 ( 1
2 4
2 t y t t y t t y t y
x t x
t t
x t t
x t t
t t
t
• 이러한 함수식과
계수 2, -4, 2, 1 으로는
그래프의 모양을 “직관적”으로 예상하기 어려움
• 함수식을 아래와 같은 형태로
표현할 수 있다면
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (3) (3)
t x
t x
t t
x t t
x
t + − + − + =
− )
3 03 ( 1 )
2 13
2( 1 )
2 3 31
(
0 3
3
0 3
6 3
1 3
3 0
3 2
1 0
2 1
0
1 0
0
= +
− +
−
= +
−
= +
−
=
x x
x x
x x
x
x x
x
1 3 / 2
3 / 1
0
3 2 1 0
=
=
=
=
x x x x
Linear Precision
n x i
b x i 0 = i =
상수의 계수 :
u의 계수: ¨
u
2의 계수 :
u
3의 계수 :
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
28/196
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (4) (4)
2 3
3
4 3
6 3
2 3
3 1
3 2
1 0
2 1
0
1 0
0
= +
− +
−
−
= +
−
= +
−
=
y y
y y
y y
y
y y
y
1 2
4 2
) 1 ( 3 )
1 ( 3 )
1
( − t
3y
0+ t − t
2y
1+ t
2− t y
2+ t
3y
3= t
3− t
2+ t +
1 1
3 / 5 1
3 2 1 0
=
=
=
=
y y y
상수의 계수 : y
t의 계수: ¨
t2
의 계수 :
t3
의 계수 :
1.1 1.2 1.3 1.4 1.5 1.6
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (5) (5)
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣
− ⎡
⎥ +
⎦
⎢ ⎤
⎣
− ⎡
⎥ +
⎦
⎢ ⎤
⎣
− ⎡
=
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⋅ +
⋅
− +
⋅
− +
⋅
−
⋅ +
⋅
− +
⋅
− +
⋅
= −
⎥ ⎦
⎢ ⎤
⎣
⎡
+ +
= −
⎥ ⎦
⎢ ⎤
⎣
= ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
1 ) 1 1 (
) ( )
1 ( ) 0 (
1 1 ) 1
1 ( 3 )
1 ( 1 3
) 0 1
(
1 1
) 1 ( 3 3
) 5 1
( 3 1 ) 1 (
3 1 ) 2 1
( 3 3
) 1 1
( 3 0 ) 1 ( 1
2 4
2 )
( ) ) (
(
3 3 23
3 2 53
13 3
1 3
0
3 3 2 2
53 13 2 3
3 2
2 3
3 2
2 3
2 3
t B t
B t
B t
B
t t
t t
t t
t t
t t
t t
t t
t t
t t
t t
t
t t
y t x y
t x
r
y
• 새로운 함수들에 곱해지는 계수들을 점으로 가시화 하면, 처음 점과 마지막 점은 곡선을 지나고,
• 점들을 직선으로 연결하면, 곡선의 모양과 비슷한
형태임을 알 수 있다.
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
30/196
2.1.3
2.1.3 일반 일반 함수의 함수의 매개변수 매개변수 함수 함수 표현 표현 (6) (6)
•
매개변수 t를 시각이라고 생각하면 , r(t)는 어떠한 물체(rigid body)가 이동하는 궤적 (trajectory)을 표현한 것으로 생각할 수 있다.
• 양함수, 음함수 함수식에서는 이동하는 물체의 궤적의 형상만 표현할 수 있지만, 매개변수 함수식으로는 이동하는 물체의 궤적의 형상뿐만 아니라
특정시각 t 에서의 위치 r(t)의 관계
를 함께 살펴볼 수 있다 .
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⋅ +
⋅
− +
⋅
− +
⋅
−
⋅ +
⋅
− +
⋅
− +
⋅
= −
⎥ ⎦
⎢ ⎤
⎣
⎡
+ +
= −
⎥ ⎦
⎢ ⎤
⎣
= ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
1 1
) 1 ( 3 3
) 5 1
( 3 1 ) 1 (
3 1 ) 2 1
( 3 3
) 1 1
( 3 0 ) 1 ( 1
2 4
2 )
( ) ) (
(
3 2
2 3
3 2
2 3
2
3
t t t t t t
t t
t t
t t
t t
t
t t
y t x y
t x r
sec t = 0
sec t = 1
sec t = 2
가속도 물체의
속도 물체의
궤적
물체의
r r
r
(t
): , &(t
): , &&(t
):2.1.4
2.1.4 매개 매개 변수 변수 함수의 함수의 ‘ ‘ 직관적 직관적 ’ ’ 표현 표현 방법 방법
For any polynomial degree, on the cubic case
위와 같이 어떠한 함수도 매개 변수 형태로 표현할 수 있음 . 그러나 r(t)가 다항식으로 표현되는 경우는 직관적으로 곡선의 형상을 예상하기 어려움
<문제 제기> 어떻게 하면 함수를 직관적으로 알아 볼 수 있게 표현할 수 있을까?
The polynomial in terms of a combination of points;
= 3 n
b
b3
b0
b1
⎥ ⎦
⎢ ⎤
⎣
⎡
−
−
−
+
−
= −
⎥⎦ ⎤
⎢⎣ ⎡
=
23 3 2) 1 ( 3 )
1 ( 3
) 1 ) (
( t t t t
t t
y t x
r
3 3 3 2
3 2 1
3 1 0
3 0
3 3 3
2 3
1 3
0
3 2
2 3
2 2
3 3
0 1 1
0 1
0 0
1
0 1 1
) 0 1 ( 1 3
) 0 1 ( 0 3
) 1 (1
) 1 ( 3 )
1 ( 3
) 1 ) (
(
b b
b b
r
B B
B B
B B
B B
t t
t t
t t
t t t
t
t t
y t x
+ +
+
=
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣
⎡ + −
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡−
⎥ ⎦
⎢ ⎤
⎣ + ⎡
⎥ ⎦
⎢ ⎤
⎣
⎡
− −
⎥ +
⎦
⎢ ⎤
⎣
− ⎡
⎥ +
⎦
⎢ ⎤
⎣
− ⎡−
=
⎥ ⎥
⎦
⎤
⎢ ⎢
⎣
⎡
−
−
−
+
−
= −
⎥ ⎦
⎢ ⎤
⎣
= ⎡
• 시작 조정점과 끝 조정점은 곡선상에 위치하고,
조정점들을
연결한 직선의 곡선의 모양과 비슷한 형상이다
Æ 조정점으로 곡선의 형태를 직관적으로 예상할 수 있음
Æ 프랑스 르노자동차의 엔지니어인 P. Bezier가 1971년 발견
2.2 Bezier curves 2.2 Bezier curves
2.2.1 Definition & Characteristics of Bezier curves 2.2.2 Degree Elevation/Reduction of Bezier curves 2.2.3 de Casteljau algorithm
2.2.4 Bezier Curve Interpolation / Approximation
2.2.1 Definition &
2.2.1 Definition &
Characteristics of Characteristics of
Bezier curves Bezier curves
2.2.1.1 Definition of Bezier curves
2.2.1.2 1st Derivatives of Cubic Bezier curves 2.2.1.3 Characteristics of Bezier curves
2.2.1.4 Higher order Bezier curves
2.2.1.5 1st Derivatives of higher order Bezier curves
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
34/196
2.2.1.1 Definition of c
2.2.1.1 Definition of c ubic ubic “ “ Bezier Bezier ” ” c c urves urves
The cubic Bezier curve is defined by
where, : Bezier control points (bix, biy) or (bix, biy, biz) : cubic Bernstein polynomial
or Bernstein basis function : Bezier curve parameter
b
i3 3 2
2 1
2 0
3
3 1 3 1
1 )
( ) (
) ( )
( )
( ( ) b ( ) b ( ) b b
z y x y
) x (
r t t t t t t
t t t t or
t t = − + − + − +
⎥ ⎥
⎥
⎦
⎤
⎢ ⎢
⎢
⎣
⎡
⎥ ⎦
⎢ ⎤
⎣
= ⎡
1 0 ≤ t ≤
b
0b
1b
2b
3= 0
t
=1
t )
3
( t B
ilinearly independent (
어떤 하나라도 다른 것으로 표현할 수 없음)
0 ) ( 1
)
(
33 0
3
= ≥
∑
=B t , B
it
i i
3 3
3 2
3 2 1
3 1 0
3
0
( t ) b B ( t ) b B ( t ) b B ( t ) b
B + + +
=
2.2.1.2 1
2.2.1.2 1 st st Derivatives Derivatives of Cubic Bezier Curves (1) of Cubic Bezier Curves (1)
First derivatives: Tangent vector of the curve : “시간 t에서의 물체의 속도”
where, : forward differences
) (
3
3 )
1 ( 6
) 1 ( 3
] [
3 )
1 ](
[ 6 )
1 ](
[ 3
3 ]
3 )
1 ( 6 [
] ) 1 ( 6 )
1 ( 3 [ )
1 ( ) 3
(
2 2 2 2
1 1 2
0 0
2 2 1
2 0
2 2 3
1 2
2 0
1
3 2 2
2
1 2
0 2
B B
B
t t
t t
t t
t t
t t
t t
t t t
dt t t d
b b
b
b b
b
b b
b b
b b
b b
b r b
Δ + Δ
+ Δ
=
Δ +
− Δ
+
− Δ
=
− +
−
− +
−
−
=
+
−
− +
−
−
− +
−
−
=
3 3 2
2 1
2 0
3
3 1 3 1
1 ) b ( ) b ( ) b b
( )
(
r t = − t + − t t + − t t + t
i i
i b b
b = −
Δ +1
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
36/196
2.2.1.2 1
2.2.1.2 1 st st Derivatives Derivatives of Cubic Bezier Curves(2) of Cubic Bezier Curves(2)
The derivative of the cubic curve is quadratic curve.
y where, :
quadratic Bernstein basis function. Most important tangent vectors at the curve’s is Endpoints tangent vectors:
).
( ) 3
) (
(
0B
02 1B
12 2B
22dt
t
t d r b b b
r & = = Δ + Δ + Δ
i 2
B
) (
3 3
) 1 (
), (
3 3
) 0 (
2 3
2 0
b b
b r
b b
b
r
1 o−
= Δ
=
−
= Δ
=
&
&
b
2b
3b
0b
12.2.1.3 Characteristics of
2.2.1.3 Characteristics of Bezier Curves Bezier Curves (1) (1)
b
2b 3
b 0
b 1 시작점에서의
접선 벡터의 방향
끝점에서의 접선 벡터의
방향 Convex Hull
Bezier 곡선은 최외각 조정점들로 구성되는 Convex Hull 내에 존재함
처음 두 개의 조정점과 마지막 두 개의 조정점으로부터 시작점 및 끝점에서의 접선 벡터의 방향을 구할 수 있음
Bezier 조정점은 일종의 등대
( Q ∑
3i=0B
i3( t ) = 1 )
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
38/196
2.2.1.3 Characteristics of
2.2.1.3 Characteristics of Bezier Curves Bezier Curves (2) (2)
loop
cusp
Two inflection points
b
2b
3b
0b
1b
0b
1b
2b
3b
0b
1b
2b
32.2.1.4 Higher order
2.2.1.4 Higher order Bezier Curves Bezier Curves (1) (1)
A Bezier Curve of degree can be defined by;
where, : Bernstein Polynomial Function.
For cubic case, the Bezier curve as:
).
( ...
) ( )
( )
(
t b
0B
0nt b
1B
1nt b
nB
nnt
r
= + + +) (t
B
in).
( )
( )
( )
( )
( t b 0 B 0 3 t b B 1 3 t b 2 B 2 3 t b 3 B 3 3 t
r = + 1 + +
n
else
0
if
⎪⎩
⎪⎨
⎧ ≤ ≤
= −
⎟⎟=
⎠
⎜⎜ ⎞
⎝
⎛
⎟⎟ −
⎠
⎜⎜ ⎞
⎝
= ⎛ −
n i i
n i
n i C
n
t i t
t n B
i n
i n i
n i
)! 0 (
!
!
, ) 1 ( )
(
1 ) ( with )
( )
1 ( ) ( )
( t = tB
−−11t + − t B
−1t B
00t ≡
B
in in in서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
40/196
2.2.1.4 Higher order
2.2.1.4 Higher order Bezier Curves Bezier Curves (2) (2)
( )
[ ] ( ) ( )
( )
[ ] [ ( ) ] [ ( ) ]
( ) ( ) ( )
( )
[ ] [ ( ) ] [ ( ) ]
( ) ( ) ( ) ( )
) ( )
( )
( )
( )
(
1 4 1
6 1
4 1
1 1
1
), ( )
( )
( )
(
1 3 1
3 1
1 1
1
), ( )
( )
(
1 2 1
1
4 4 4
3 4
2 4
1 4
0
4 3
2 2 3
4
3 4
3 3 3
2 3
1 3
0
3 2 2
3
2 3
2 2 2
1 2
0 2 2 2
t B t
B t
B t
B t
B
t t
t t
t t
t t
t t t
t t
t
t B t
B t
B t
B
t t
t t
t t
t t t
t t
t
t B t
B t
B
t t t t
t t
+ +
+ +
=
+
− +
− +
− +
−
=
+
− +
−
= +
−
+ +
+
=
+
− +
− +
−
=
+
− +
−
= +
−
+ +
=
+
− +
−
= +
−
• Bernstein Polynomial Function:
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
파스칼의 삼각형
2.2.1.4 Higher order
2.2.1.4 Higher order Bezier Curves Bezier Curves (3) (3)
5
th-degree Bezier curve 6
th-degree Bezier curve
7
th-degree Bezier curve
7
th-degree Bezier curve
서울대학교
서울대학교조선해양공학과조선해양공학과학부학부33학년학년교과목교과목““전산선박설계전산선박설계””, 2006, 2006학년도학년도2학기2학기
42/196
2.2.1.5
2.2.1.5 Derivatives Derivatives of Higher Order of Higher Order Bezier Curves Bezier Curves (1) (1)
For Cubic Case(n=3),
For degree=n,
where : forward difference.
Bezier CurveÆ differentiated by more than one by parameter
For the times derivative:
].
[ 3 )
( t b
0B
02b
1B
12b
2B
22r & = Δ + Δ + Δ
].
...
[ )
( t = n Δ b 0 B 0 n − 1 + Δ b 1 B 1 n − 1 + + Δ b n − 1 B n n − − 1 1 r&
i i
i
b b
b = −
Δ
+1)].
( )...
( )
( )! [
(
! )
(
1 1 0
0
B t B t B t
k n
n dt
t
d
n kk n k n k k
n k
k n k
k
k −
−
− −
−