@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Computer Aided Ship design -Part II. Hull Form Modeling-
September, 2009 Prof. Kyu-Yeul Lee
Department of Naval Architecture and Ocean Engineering, Seoul National University of College of Engineering
학부3학년 교과목“전산선박설계(Computer Aided ship design)”강의 교재
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Ch 3. 곡면(Surfaces)
3.1 Parametric Surfaces 3.2 Bezier Surfaces
3.3 B-spline surfaces
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.1 Parametric Surfaces
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.1 Parametric Surfaces
곡면 양함수
음함수
매개 변수
2 2
2 x y
d
z
2 2
2
2 y z d
x
sin
cos sin
cos cos
d z
d y
d x
)) , ( ), , ( ), , (
( x y z
r r
구를 2개의 매개변수 로 표현하 면 간단히 수식화 할 수 있다.
) , (
- Chap3. Surface
4/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2 Bezier surfaces
3.2.1 Generation of Bezier surfaces by de Casteljau algorithm
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1 Generation of Bezier surfaces by de Casteljau algorithm
3.2.1.1 Bi-linear Bezier Surface Patch
3.2.1.2 Bi-quadratic Bezier Surface Patch 3.2.1.3 Bi-Cubic Bezier Surface Patch
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling 2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1.1 Bi-linear Bezier Surface Patch
- Given: 2x2 Bezier control point
- Find: Points on bi-linear Bezier Surface Patch
0
b 0
1
b 0
b 11
b 10
u
v
P
uq
uu
u 1
v
v 1
u v
0 1
1
u v
) u 1
( u b 0 0 b 1 0
P
u
) u 1
( u b 0 1 b 1 1 q
u
v )
1
( v
) , ( v u
r P
uq
u.
) (
1
0
,
1 1 0 0
있다 수
얻을 곡면을
하는 꼭지점으로
을 점
계산하면 를
증가하며 까지
에서 를
1 0 1
0
, b , b , b b
r u,v v u
2x2개의 Bezier 조정점을 이용하여 Bi-linear Interpolation 으로 곡면식을 구할 수 있다.
v ) 1 ( v )
, ( v u
r
u )
1
( u b 0 1 b 1 1
) 1
( u b 0 0 ( 1 v ) u b 1 0
v
1 1
0 0
1 0
1 0
b b
b
b
u
u) 1
( 1 v) v ( )
, ( v u
r
u
u 1
방법: u, v 방향으로‘de Casteljau algorithm’ 사용
- Chap3. Surface 7/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1.2 Bi-quadratic Bezier Surface Patch
- Given: 3x3 Bezier control point
- Find: Points on bi-quadratic Bezier Surface Patch
u v
방법: u, v 방향으로‘de Casteljau algorithm’ 사용
b
02b
12b
22u
1 u u
1 u
u 1 u
2
p
uq
2u2
r
ub
01b
11b
21u
1 u u
1 u
u 1 u
1
p
uq
1u1
r
ub
00b
10b
20u
1 u u
1 u
u 1 u
0
p
uq
0u0
r
u
00 10
10 2
0
0 0
1 1
u
u
u u
u u
p q
b b
b b
01 11
11 2
1
1 1
1 1
u
u
u u
u u
p q
b b
b b
02 12
12 2
2
2 2
1 1
u
u
u u
u u
p q
b b
b b
0
0 u 1 u p 0 u u q u r
2 2
00 10 20
2 2
01 11 21
2 2
02 12 22
0
1
2
1 2 1
1 2 1
1 2 1
u
u
u
u u u u
u u u u
u u u u
r r
b b b
b b
b b b
r
b
2
00 10 20
01 11 21
2
02 12 22
0 1 2
1
2 1
u u u
u
u u
u
r r
b b b r
b
b b
b b b
1
1 u 1 u p 1 u u q u r
2
2 u 1 u p 2 u u q u r
- Chap3. Surface
8/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1.2 Bi-quadratic Bezier Surface Patch
- Given: 3x3 Bezier control point
- Find: Points on bi-quadratic Bezier Surface Patch
u v
방법: u, v 방향으로‘de Casteljau algorithm’ 사용
b
02b
12b
22 2r
ub
01b
11b
21 1r
ub
00b
10b
20 0r
u
2
00 10 20
01 11 21
2
02 12 22
0 1 2
1
2 1
u u u
u
u u
u
r r
b b
b r
b
b b
b b b
1
s
v0
s
vv 1 v
v
1 v
u v ,
r
v 1 v
0 1
1 2
0
1
1 1
u u
v
v u u
v v
v v
s
s
r r
r r
u v , 1 v s 0 v v s 1 v
r
2 2 2
0 1
1 2 1
, v u v v u v u
u v r r
r r
2 2 1 0 2
1 2
, 1
u u u
v v v
v v
u
r r r r
2
00 10 20
2 2
01 11 21
2
02 12 22
1
1 2 1 2 1
,
u
v v v v u u
u v
u
b b b
b b b
b b r
b
3x3개의 조정점을 이용하여
Bi-Quadratic Bezier Patch를 구할 수 있다.
- Chap3. Surface
9/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1.3 Bi-cubic Bezier Surface Patch
- Given: 4x4 Bezier control point
- Find: Points on bi-cubic Bezier Surface Patch
u
u 1
u 1 u
u
u 1
u 1 u u
u 1
u v
4x4개의 조정점을 이용하여 Bi-Cubic Bezier Patch를 구할 수 있다.
3
1 0 2 3 0 0
3
1 1 2 1 3 1
3 3 3 3 1
0 1 2 3 3
0 2 1 2 2 3 2 2
3
0 3 1 3 2 3 3 3 3
( )
( , ) ( ) ( ) ( ) ( ) ( )
( ) ( ) B v u v B u B u B u B u B v
B v B v
0,0 , ,0 ,
0, ,1 , ,
, , ,2 ,
, , , ,
b b b b
b b b b
b b b b b
b b b b
방법: u, v 방향으로‘de Casteljau algorithm’ 사용
10/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.1.3 Bi-cubic Bezier Surface Patch
- Given: 4x4 Bezier control point
- Find: Points on bi-cubic Bezier Surface Patch
u v
4x4개의 조정점을 이용하여 Bi-Cubic Bezier Patch를 구할 수 있다.
3
1 0 2 3 0 0
3
1 1 2 1 3 1
3 3 3 3 1
0 1 2 3 3
0 2 1 2 2 3 2 2
3
0 3 1 3 2 3 3 3 3
( )
( , ) ( ) ( ) ( ) ( ) ( )
( ) ( ) B v u v B u B u B u B u B v
B v B v
0,0 , ,0 ,
0, ,1 , ,
, , ,2 ,
, , , ,
b b b b
b b b b
b b b b b
b b b b
방법: u, v 방향으로‘de Casteljau algorithm’ 사용
11/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.2.2 Generation of Bezier surfaces by tensor-product approach
3.2.2.1 Tensor-product approach
3.2.2.2 Tensor-product biquadratic Bezier surface 3.2.2.3 Tensor-product bicubic Bezier surface
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.4.1 Tensor product approach (1)
매우 탄력적인 재질의 고무 밀대라고 가정
나무판
End moving curve Directional curve
Moving curve
makes a surface
Start moving curve
13/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.4.1 Tensor product approach (2)
u v
r(u) 곡선을 v 방향으로 sweeping
u v
r(v) 곡선을 u 방향으로 sweeping
moving curve가 일정한 차수의 Bezier curve
이고, moving curve의Bezier control points의 궤적을 나타내는directional curve도 Bezier curve일 때, 이러한 방법으로 생성되는 곡면을
“Tensor product Bezier surface” 라고 한다.
* CAGD, Ch14.3, Tensor Product Approach
moving Curvedirectional Curve
directional Curve
moving Curve
- Chap3. Surface
14/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
)
1
( v b
3.4.2 Tensor-product bi-quadratic Bezier surface (1)
- Given: Control Points of bi-quadratic Bezier Surface - Find: Points on bi-quadratic Bezier Surface
b
10b
00b
20u
0 v
1 v
) (
) (
) (
) (
) (
) (
2 2 2 1
2 0
22 21
20
12 11
10
02 01
00
2 1 0
v B
v B
v B
v v v
b b
b
b b
b
b b
b
b b b
b
02b
01b
21b
22b
11) ( )
( )
( )
( u 00 B 0 2 u 10 B 1 2 u 20 B 2 2 u
S b b b
b
Given 3x3 Points b ij ,
Generate start/end moving curves and directional curves in quadratic Bezier form
b
12 0 u
1 u
) ( )
( )
( )
( u 02 B 0 2 u 12 B 1 2 u 22 B 2 2 u
E b b b
b
)
S
(u b
)
E
(u b
)
0
( v b
)
2
( v b
) ( )
( )
( )
( 00 0 2 01 1 2 02 2 2
0 v b B v b B v b B v
b
) ( )
( )
( )
( 10 0 2 11 1 2 12 2 2
1 v b B v b B v b B v
b
) ( )
( )
( )
( 20 0 2 21 1 2 22 2 2
2 v b B v b B v b B v
b
- Chap3. Surface
15/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling- Chap3. Surface
3.4.2 Tensor-product bi-quadratic Bezier surface (2)
- Given: Control Points of bi-quadratic Bezier Surface - Find: Points on bi-quadratic Bezier Surface
b
10b
00b
20u
0 v
1 v
b
02b
01b
21b
22b
11 Given 3x3 Points b ij ,
Moving curve can be
represented in the following form:
b
12 0 u
1 u
)
S
(u b
)
E
(u b
)
0
( v b
)
1
( v b
)
2
( v
) b
, ( v u
b b ( u , v ) b 0 ( v ) B 0 2 ( u ) b 1 ( v ) B 1 2 ( u ) b 2 ( v ) B 2 2 ( u )
) (
) (
) ( )
( )
( )
(
2 1 0 2
2 2
1 2
0
v v v u
B u B u B
b b b
) (
) (
) (
) (
) (
) (
2 2 2 1
2 0
22 21
20
12 11
10
02 01
00
2 1 0
v B
v B
v B
v v v
b b
b
b b
b
b b
b
b b b
) (
) (
) ( )
( )
( )
( )
, (
2 2 2 1
2 0
22 21
20
12 11
10
02 01
00 2
2 2
1 2
0
v B
v B
v B u
B u B u B v
u
b b
b
b b
b
b b
b b
2
0 2
0
2 2 ( ) ( )
j i
j i
ij B u B v
b Bezier surface
control points
16/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.4.2 Tensor-product bi-cubic Bezier surface (1)
- Given: Control Points of bi-cubic Bezier Surface - Find: Points on bi-cubic Bezier Surface
b
10b
00b
30u
0 v
1 v
) (
) (
) (
) (
) (
) (
) (
) (
3 3 3 2 3 1
3 0
33 32
31 30
23 22
21 20
13 12
11 10
03 02
01 00
3 2 1 0
v B
v B
v B
v B
v v v v
b b
b b
b b
b b
b b
b b
b b
b b
b b b b
b
03b
01b
31b
33 Given 4x4 Points b ij ,
Generate start/end moving curves and directional curves in cubic Bezier form
b
13 0 u
1 u
) ( )
( )
( )
( )
( u 03 B 0 3 u 13 B 1 3 u 23 B 2 3 u 33 B 3 3 u
E b b b b
b
)
S
(u b
)
E
(u b
)
0
( v b
)
3
( v b
) ( )
( )
( )
( )
( 00 0 3 01 1 3 02 2 3 03 3 3
0 v b B v b B v b B v b B v
b
)
1
( v
b b
2( v )
b
02b
23b
20b
32) ( )
( )
( )
( )
( u 00 B 0 3 u 10 B 1 3 u 20 B 2 3 u 30 B 3 3 u
S b b b b
b
) ( )
( )
( )
( )
( 10 0 3 11 1 3 12 2 3 13 3 3
1 v b B v b B v b B v b B v
b
) ( )
( )
( )
( )
( 20 0 3 21 1 3 22 2 3 23 3 3
2 v b B v b B v b B v b B v
b
) ( )
( )
( )
( )
( 30 0 3 31 1 3 32 2 3 33 3 3
3 v b B v b B v b B v b B v
b
- Chap3. Surface
17/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling- Chap3. Surface
3.4.2 Tensor-product bi-cubic Bezier surface (2)
- Given: Control Points of bi-cubic Bezier Surface - Find: Points on bi-cubic Bezier Surface
b
10b
00b
30u
0 v
1 v
b
03b
01b
31b
33b
11b
13 0 u
1 u
)
S
(u b
)
E
(u b
)
0
( v b
)
1
( v b
)
3
( v b )
2
( v b
b
02b
23b
20b
32) , ( v u b
Given 4x4 Points b ij ,
Moving curve can be
represented in the following form:
) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
,
( u v b
0v B
03u b
1v B
13u b
2v B
23u b
3v B
33u
b
) (
) (
) (
) ( ) ( ) ( ) ( ) (
3 2 1 0
3 3 3
2 3
1 3
0
v v v v u
B u B u B u B
b b b b
) (
) (
) (
) (
) (
) (
) (
) (
3 3 3 2 3 1
3 0
33 32 31 30
23 22 21 20
13 12 11 10
03 02 01 00
3 2 1 0
v B
v B
v B
v B
v v v v
b b b b
b b b b
b b b b
b b b b
b b b
b
) (
) (
) (
) ( )
( ) ( ) ( ) ( )
, (
3 3 3 2 3 1
3 0
33 32 31 30
23 22 21 20
13 12 11 10
03 02 01 00
3 3 3
2 3
1 3
0
v B
v B
v B
v B u
B u B u B u B v u
b b b b
b b b b
b b b b
b b b b b
3
0 3
0
3 3 ( ) ( )
j i
j i
ij B u B v
b
18/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3 B-spline surfaces
3.3.1 Generation of B-spline surfaces by tensor-product approach 3.3.2 B-spline surface Interpolation
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
Naval Architecture & Ocean Enginee ring
@ SDALAdvanced Ship Design Automation Lab.
http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1 Generation of B-spline surfaces by tensor-product approach
3.3.1.1 Tensor-product bicubic B-spline surface 3.3.1.2 Programming Guide of Tensor-product bicubic B-spline surface
- Chap3. Surface
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1.1 Tensor-product bicubic B-spline surface (1)
- Given: Control Points of bicubic B-spline surface - Find: Points on bicubic B-spline surface
Given 5x5 Control Points d ij , u-knots, v-knots,
u-degree(=3), v-degree(=3),
Generate start/end moving
curves and directional curves in cubic B-spline form:
d
10d
40d
00 20d
d
3000
u u40.4 u51
u21
u
u3 7
u6 u u8
u
d
14d
44d
04d
24d
3400 v v21
v v3
51 v v76
v v8
v4
d
03d
02d
01)
0
( v d
d
11d
12)
1
( v d
d
23d
22d
21)
2
( v d
d
33d
32d
31)
3
( v d
d
43d
42d
41d
4( v )
00 03
01 13
02 23
03 33
04 43
0
v N v d N v N v d N v d N v
d d d
10 03
11 13
12 23
13 33
14 43
1
v N v d N v N v d N v d N v
d d d
20 03
21 13
22 23
23 33
24 43
2
v N v d N v N v d N v d N v
d d d
30 03
31 13
32 23
33 33
34 43
3
v N v d N v N v d N v d N v
d d d
40 03
41 13
42 23
43 33
44 43
4
v N v d N v N v d N v d N v
d d d
3
00 01 02 03 04 0
3
10 11 12 13 14 1
3
20 21 22 23 24 2
3
30 31 32 33 34 3
3
40 41 42 43 44
0
2
4 4
1
3
N v N v N v N v N v v
v v v v
d d d
d d d d d
d d d d d
d d
d
d d d d
d d d d d
d d d d d
- Chap3. Surface
21/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling 2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1.1 Tensor-product bicubic B-spline surface (1)
- Given: Control Points of bicubic B-spline surface - Find: Points on bicubic B-spline surface
Given 5x5 Control Points d ij , u-knots, v-knots,
u-degree(=3), v-degree(=3),
Moving curve can be
represented in the following form:
d
10d
40d
00 20d
d
3000
u u40.4 u51
u21
u
u3 7
u6 u u8
u
d
14d
44d
04d
24d
3400 v v21
v v3
51 v v76
v v8
v4
d
03d
02d
01)
0
( v d
)
1
( v
d d
2( v )
)
3
( v d
d
43d
42d
41)
4
( v d
) , ( v u r
) (
) (
) (
) (
) ( )
( ) ( ) ( ) ( ) ( ) , (
3 4 3 3 3 2 3 1 3 0
44 43 42 41 40
34 33 32 31 30
24 23 22 21 20
14 13 12 11 10
04 03 02 01 00
3 4 3
3 3
2 3
1 3
0
v N
v N
v N
v N
v N u
N u N u N u N u N v u
d d d d d
d d d d d
d d d d d
d d d d d
d d d d d
r
50 5
0
3 3
( ) ( )
j i
j i
ij
N u N v
d
0
1
2
3 3 3 3 3
0 1 2 3 3 4 4
, v N u v N u v N u v N u
u v d d v N u
r d d d
0
3 3 3 3 3
0 4
1 2
1 2
3 4
N u N u N u N
3u N u
v v v v v
d d d d d
3
00 01 02 03 04 0
3
10 11 12 13 14 1
3
20 21 22 23 24 2
3
30 31 32 33 34 3
3
40 41 42 43 44
0
2
4 4
1
3
N v N v N v N v N v v
v v v v
d d d
d d d d d
d d d d d
d d
d
d d d d
d d d d d
d d d d d
- Chap3. Surface 22/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1.2 Programming Guide of
Tensor-product bicubic B-spline surface
- Member Variables of Class
class CBsplineSurface {
public:
// member variables int m_nDegree;
double* m_pKnot_U;
int m_nNumOfKnot_U;
double* m_pKnot_V;
int m_nNumOfKnot_V;
Vector** m_pCP;
int m_nNumOfCP_U;
int m_nNumOfCP_V;
// member functions
… };
차수
u 방향 Knot와 개수
v 방향 Knot와 개수
Control Point, u, v 방향 개수
d10
d40
d00 d20
d30
00
u u40.4 u51
u21
u
u3 uu76
u8
u
d14
d44
d04
d24
d34
00 v v21
v v3
51 v v76
v v8
v4
d03
d02
d01
)
0(v d
)
1(v
d d2(v)
)
3(v d
d43
d42
d41
)
4(v d
) , ( v u r
(3차)
(9개)
(9개)
(u 방향 5개, v 방향 5개)
- Chap3. Surface
23/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1.2 Programming Guide of
Tensor-product bicubic B-spline surface
- Member Functions of Class
class CBsplineSurface {
public:
// member variables
…
// member functions
…
void SetKnot(double* pKnot_U, int nNumOfKnot_U, double* pKnot_V, int nNumOfKnot_V);
double N(int n, int i, double u, int uv);
Vector GetPoint(double u, double v);
};
Knot 설정
d10
d40
d00 d20
d30
00
u u40.4 u51
u21
u
u3 uu76
u8
u
d14
d44
d04
d24
d34
00 v v21
v v3
51 v v76
v v8
v4
d03
d02
d01
)
0(v d
)
1(v
d d2(v)
)
3(v d
d43
d42
d41
)
4(v d
) , ( v u r
u 방향 Knot
v 방향 Knot
- Chap3. Surface
24/52
@ SDAL
Advanced Ship Design Automation Lab.http://asdal.snu.ac.kr Seoul
National Univ.
2009 Fall, Computer Aided Ship Design – Part2. Hull Form Modeling
3.3.1.2 Programming Guide of
Tensor-product bicubic B-spline surface
- Member Functions of Class
class CBsplineSurface {
public:
// member variables
…
// member functions
…
void SetKnot(double* pKnot_U, int nNumOfKnot_U, double* pKnot_V, int nNumOfKnot_V);
double N(int n, int i, double u, int uv);
Vector GetPoint(double u, double v);
};
B-spline Basis Function 계산
d10
d40
d00 d20
d30
00
u u40.4 u51
u21
u
u3 uu76
u8
u
d14
d44
d04
d24
d34
00 v v21
v v3
51 v v76
v v8
v4
d03
d02
d01
)
0(v d
)
1(v
d d2(v)
)
3(v d
d43
d42
d41
)
4(v d
) , ( v u r
B-spline Basis Function 계산
(Cox-de Boor Recurrence Formula)
) ( )
( )
( 1 1 1
1 1
1 N u
u u
u u u
u N u
u u u
N i n
i n i
n n i
i i n
i n i
i
else
0
if ) 1
( 1
0 i i
i
u u u u
N
u, v 방향을 구분하는 flag
- Chap3. Surface
25/52