Page 1
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
1. (de Casteljau Algorithm) 다음 그림은 어느 선박의 선수부 Section Line을 나타낸 것이다. 5개
의 조정점(Control Point) 0b , 1b , 2b , 3b , 4b 이 주어졌을 때, 조정점을 잇는 각각의 선분을
( )ˆ ˆ: 1u u- 로 4번 연속적으로 내분하는 점은 4차 곡선 상에 있게 된다.
uu%
0b
1b
2b
3b
4b
000
111
0 1
Page 2
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
1) de Casteljau Algorithm을 이용하여 u에서의 곡선 상의 점을 구하고 그 점이 조정점 0b , 1b ,
2b , 3b , 4b 으로 정의되는 4차 Bezier 곡선 상의 점임을 보여라. (식 유도 과정을 적으시오.)
<풀이>
de Casteljau algorithm을 단계별로 적용하면 그림 1, 2, 3, 4와 같다.
0b
1b
2b
3b
4b
u
ˆ1 u-
11b
12b
13b
14b
u
u
u
ˆ1 u-
ˆ1 u-
ˆ1 u-
uu%0
000
1111
그림 1 de Casteljau algorithm 1회 수행
주어진 조정점 0b , 1b , 2b , 3b , 4b 를 잇는 각 선분을 ( )ˆ ˆ: 1u u- 으로 한번 내분하여 얻은 점
11b ,
12b ,
13b ,
14b 은 다음과 같다.
( )( )( )( )
1 0 01 0 1
1 0 02 1 2
1 0 03 2 3
1 0 04 3 4
ˆ ˆ1
ˆ ˆ1
ˆ ˆ1
ˆ ˆ1
u u
u u
u u
u u
= - +
= - +
= - +
= - +
b b b
b b b
b b b
b b b
(1)
Page 3
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
0b
1b
2b
3b
4b
u
ˆ1 u-
11b
12b
13b
14b
u
u
u
ˆ1 u-
ˆ1 u-
ˆ1 u-
u
ˆ1 u-
22b
23b
24b
uˆ1 u-
ˆ1 u-
u
uu%0
000
1111
그림 2 de Casteljau algorithm 2회 수행
점 11b ,
12b ,
13b ,
14b 를 잇는 각 선분을 ( )ˆ ˆ: 1u u- 으로 다시 내분하면 점
22b ,
23b ,
24b 를 얻을 수
있다.
( )( )( )
2 1 12 1 2
2 1 13 2 3
2 1 14 3 4
ˆ ˆ1
ˆ ˆ1
ˆ ˆ1
u u
u u
u u
= - +
= - +
= - +
b b b
b b b
b b b
(2)
0b
1b
2b
3b
4b
u
ˆ1 u-
11b
12b
13b
14b
u
u
u
ˆ1 u-
ˆ1 u-
ˆ1 u-
u
ˆ1 u-
22b
23b
24b
uˆ1 u-
ˆ1 u-
u
u
u
ˆ1 u-ˆ1 u-
33b
34b
uu%0
000
1111
그림 3 de Casteljau algorithm 3회 수행
Page 4
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
점 22b ,
23b ,
24b 를 잇는 각 선분을 ( )ˆ ˆ: 1u u- 으로 다시 내분하면 점
33b ,
34b 를 얻을 수 있다.
( )( )
3 2 23 2 3
3 2 24 3 4
ˆ ˆ1
ˆ ˆ1
u u
u u
= - +
= - +
b b b
b b b (3)
0b
1b
2b
3b
4b
u
ˆ1 u-
11b
12b
13b
14b
u
u
u
ˆ1 u-
ˆ1 u-
ˆ1 u-
u
ˆ1 u-
22b
23b
24b
uˆ1 u-
ˆ1 u-
u
u
u
ˆ1 u-ˆ1 u-
33b
34b
44b
ˆ1 u-u
uu%0
000
1111
그림 4 de Casteljau algorithm 4회 수행
마지막으로 점 33b ,
34b 를 잇는 각 선분을 ( )ˆ ˆ: 1u u- 으로 다시 내분하면 점
44b 를 얻을 수 있다.
( )4 3 34 3 4ˆ ˆ1 u u= - +b b b (4)
위의 식 (1), (2), (3), (4) 를 이용하여 점 44b 를 주어진 조정점 0b , 1b , 2b , 3b , 4b 로 나타내면
다음과 같다.
( )( )( )( )
1 0 01 0 1
1 0 02 1 2
1 0 03 2 3
1 0 04 3 4
ˆ ˆ1
ˆ ˆ1
ˆ ˆ1
ˆ ˆ1
u u
u u
u u
u u
= - +
= - +
= - +
= - +
b b b
b b b
b b b
b b b
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
22 1 1 0 0 0 0 0 0 2 02 1 2 0 1 1 2 0 1 2
22 1 1 0 0 0 0 0 0 2 03 2 3 1 2 2 3 1 2 3
2 1 14 3 4 2
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 1 1 1 2 1
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 1 1 1 2 1
ˆ ˆ ˆ ˆ1 1 1
u u u u u u u u u u u u
u u u u u u u u u u u u
u u u u
é ù é ù= - + = - - + + - + = - + - +ë û ë û
é ù é ù= - + = - - + + - + = - + - +ë û ë û
= - + = - -
b b b b b b b b b b
b b b b b b b b b b
b b b b ( ) ( ) ( )20 0 0 0 0 0 2 03 3 4 2 3 4ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 2 1u u u u u u u ué ù é ù+ + - + = - + - +ë û ë ûb b b b b b
Page 5
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )( ) ( ) ( ) ( ) ( ) ( )
2 23 2 2 0 0 2 0 0 0 2 03 2 3 0 1 2 1 2 3
3 20 0 2 0 3 00 1 2 3
2 23 2 2 0 0 2 0 0 04 3 4 1 2 3 2 3
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 1 2 1 1 2 1
ˆ ˆ ˆ ˆ ˆ ˆ1 3 1 3 1
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 1 2 1 1 2 1
u u u u u u u u u u u u
u u u u u u
u u u u u u u u u u u
é ù é ù= - + = - - + - + + - + - +ë û ë û
= - + - + + - +
é ù= - + = - - + - + + - + -ë û
b b b b b b b b b
b b b b
b b b b b b b b
( ) ( ) ( )
2 04
3 20 0 2 0 3 01 2 3 4
ˆ
ˆ ˆ ˆ ˆ ˆ ˆ1 3 1 3 1
u
u u u u u u
é ù+ë û
= - + - + - +
b
b b b b
( )( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( )
4 3 34 3 4
3 20 0 2 0 3 00 1 2 3
3 20 0 2 0 3 01 2 3 4
4 3 2 10 0 2 0 3 0 4 00 1 2 3 4
ˆ ˆ1
ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 1 3 1 3 1
ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 3 1 3 1
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 4 1 6 1 4 1
u u
u u u u u u u
u u u u u u u
u u u u u u u u
= - +
é ù= - - + - + + - +ë ûé ù+ - + - + - +ë û
= - + - + - + - +
b b b
b b b b
b b b b
b b b b b
( ) ( ) ( ) ( ) ( )4 3 2 14 0 0 2 0 3 0 4 04 0 1 2 3 4ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ1 4 1 6 1 4 1u u u u u u u u u\ = - + - + - + - +b b b b b b (5)
따라서, 주어진 조정점 0b , 1b , 2b , 3b , 4b 를 이용하여 de Casteljau algorithm을 수행한 결과
는 4차 Bezier 곡선 식과 동일함을 알 수 있다.
2) 위 4차 Bezier 곡선은 u 에서의 곡선 상의 점을 기준으로 2개의 4차 Bezier 곡선으로 나눌
수 있다. 이 때 생성되는 2개의 4차 Bezier 곡선의 조정점을 구하시오.
<풀이>
0b
1b
2b
3b
4b
u
ˆ1 u-
11b
12b
13b
14b
u
u
u
ˆ1 u-
ˆ1 u-
ˆ1 u-
u
ˆ1 u-
22b
23b
24b
uˆ1 u-
ˆ1 u-
u
u
u
ˆ1 u-ˆ1 u-
33b
34b
44b
ˆ1 u-u
0000
1111
그림 5 de Casteljau algorithm 4회 수행 결과
문제 1)에서 주어진 5개의 조정점 0b , 1b , 2b , 3b , 4b 를 이용하여 de Casteljau algorithm을 4
회 수행하면 4차 Bezier 곡선 상의 점을 구할 수 있음을 확인하였다. 또한 이 때 구한 점은 4차
Page 6
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
Bezier 곡선을 분할하는 점으로 생각할 수 있다. 이 때 분할된 두 곡선을 다음과 같이 de
Casteljau algorithm 수행 과정에서 계산한 점들을 조정점으로 가진다.
l 곡선 1의 조정점: 0b , 11b ,
22b ,
33b ,
44b
l 곡선 2의 조정점: 44b ,
34b ,
24b ,
14b , 4b
0b
11b
22b
33b
44b
uu%0
000
1111
그림 6 곡선 1의 조정점 0b , 11b ,
22b ,
33b ,
44b
3b
4b
14b
24b3
4b44b
uu%0
000
1111
그림 7 곡선 2의 조정점 44b ,
34b ,
24b ,
14b , 4b
Page 7
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
2. 다음 그림은 어느 선박의 선수부 Section Line을 나타낸 것이다.
St. 19.75
p0 p1p2p3
p4
p5
p6
p7
p8
p9
p10
p11
p12
p13
p14
St. 19.75
( )0 0,0d
( )1 0,5d
( )2 10,10d
( )3 18,5d
( )4 25,15d
5개의 조정점 0 1 2 3 4, , , , d d d d d 이 위의 그림과 같이 주어졌을 때, B-Spline function y-
control ordinate(0 0 0 0 0
0 1 2 3 4, , , , V V V V V )를 표현하면 다음 그림과 같다. Knot는 그림과 같이 주어
져 있다.
)(uy
u000
1 uuu
333
00V
01V
02V
03V
04V15
10
5
0
Page 8
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
1) 그림의 3차 B-Spline function은 2개의 3차 Bezier function으로 구성되어 있다. Knot 간의
간격을 이용하여 2개의 3차 Bezier function의 y-control ordinate를 도시하시오.
)(uy
u000
1 333
00V
01V
02V
03V
04V15
10
5
0
2D 3D
12V
13V
23V
2D
3D2D
3D3D2D
11
2개의 3차 Bezier function을 결합할 때 만족하는 연속 조건인 C1, C2 조건을 이용하여 3차
Bezier function의 y-control ordinate를 구하면 위 그림과 같다. 이 때 각각의 Bezier function
y-control ordinate는 다음과 같다.
l 좌측 Bezier function의 y-control ordinate: 20 0
0 1 2 31, , , V VV V
l 우측 Bezier function의 y-control ordinate: 0 01
3 3 42
3 , , , V VV V
Page 9
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
2) (de Boor Algorithm) 1 2u< < 인 곳에 Knot u 를 3번 삽입한 후 계산할 수 있는 B-Spline
function y-ordinate ( )ˆy u 을 구하시오.
① Knot Insertion 수행 전
)(uy
u
000
1 333
00V
01V
02V
03V
04V
00x
01x
02x
03x
04x
그림 8 주어진 B-Spline function y-control ordinate와 Greville abscissa
주어진 Knot를 이용하여 Greville abscissa를 구하면 다음과 같다.
00
01
02
03
04
0 0 0 03
0 0 1 13 3
0 1 3 43 3
1 3 3 73 3
3 3 3 33
x
x
x
x
x
+ += =
+ += =
+ += =
+ += =
+ += =
(6)
그리고 주어진 B-Spline function y-control ordinate (0 0 0 0 0
0 1 2 3 4, , , , V V V V V )는 Greville
abscissa 상에 존재한다.
Page 10
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
② 1st Knot Insertion
)(uy
u
000
1 333
00V
01V
02V
03V
04V
00x
01x
02x
03x
04x
u
12V
13V
14V
12x
13x
10x
11x
14x
15x
그림 9 1st Knot Insertion
Knot를 ˆ1 3u< < 위치에 하나를 추가하면, 추가된 Knot에 의해 Greville abscissa가 다음과 같
이 변경된다.
00
01
0
10
11
12
1
14
14
3
5
0 0 0 03
0 0 1 13 3
ˆ0 1 13 3
ˆ1 3 43 3
ˆ3 3 63 3
3 3 3 33
ˆ
ˆ
ˆ
u
u
u
u
u
u
x
x
x
x
x
x
x
x
x
+ += = =
+ += = =
+ + += =
+ + += =
+ + += =
+ += = =
(7)
Knot를 ˆ1 3u< < 위치에 하나를 추가함에 따라 생성되는 B-Spline y-control ordinate는 12V ,
13V ,
14V 이며 각 ordinate는 선분
0 01 2V V ,
0 02 3V V ,
0 03 4V V 상에 내분점으로 위치하고 있다.
12V 를
Greville abscissa 와의 비례식으로 구하면 다음과 같다.
1 1 1 12 2 2 2
0 0 0 01 2 1 2: :V VV V xx x x=
20
11 ˆ ˆ1 1
3 3 3u ux x +
= - =
Page 11
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
212
0 ˆ ˆ4 1 33 3 3u uxx + -
= - =
0 01
2 1 2ˆ ˆ3
3 3u uVV V-
\ = + (8)
마찬가지 방법으로 1
3V , 1
4V 를 구하면 다음과 같다.
13
14
0 02 3
0 02 3
ˆ ˆ33 3
ˆ ˆ3 12 2
V
V
u uV V
u uV V
-= +
- -= +
(9)
Page 12
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
③ 2nd Knot Insertion
)(uy
u
000
1 333
00V
01V
02V
03V
04V
00x
01x
02x
03x
04x
u
12V
13V
14V
12x
13x
10x
11x
14x
15x
u
23V
24V
20x
21x
22x
23x
24x
25x
26x
그림 10 2nd Knot Insertion
Knot를 ˆ1 3u< < 위치에 하나를 더 추가하면, 추가된 Knot에 의해 Greville abscissa가 다음과
같이 변경된다.
20
21
2
00
2
23
24
25
2
0
12
0
4
46
1
1
0 0 0 03
0 0 1 13 3
ˆ0 1 13 3
ˆ1 2 13 3
ˆ3 2 33 3
ˆ3 3 63 3
3 3 3
ˆ
ˆ
3
ˆ
3
ˆ
ˆ
ˆ
u
u
u
u
u
u
u u
u
u
x
x
x
x
x
x
x
x
x
x
x
x
+ += = =
+ += = =
+ + += = =
+ + += =
+ + += =
+ + += = =
+ += = =
(10)
Knot를 ˆ1 3u< < 위치에 하나 더 추가함에 따라 생성되는 B-Spline y-control ordinate는 2
3V ,
24V 이며 각 ordinate는 선분
1 12 3V V ,
1 13 4V V 상에 내분점으로 위치하고 있다.
23V 를 Greville
abscissa 와의 비례식으로 구하면 다음과 같다.
Page 13
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
2 2 2 23 3 3 3
1 1 1 12 3 2 3: :V VV V xx x x=
312
2 ˆ ˆ ˆ2 1 13 3 3u u uxx + +
= - =
13
23
ˆ ˆ ˆ4 2 1 33 3 3u u uxx + + -
= - =
1 12
3 2 3ˆ ˆ3
3 3V VV u u-
\ = + (11)
마찬가지 방법으로 2
4V 를 구하면 다음과 같다.
1 1
32
4 4ˆ ˆ3 1
2 2u uV VV - -
= + (12)
Page 14
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
④ 3rd Knot Insertion
)(uy
u
000
1 333
00V
01V
02V
03V
04V
00x
01x
02x
03x
04x
u
12V
13V
14V
12x
13x
10x
11x
14x
15x
u
23V
24V
20x
21x
22x
23x
24x
25x
26x
u
34V
30x
31x
32x
33x
34x
35x
36x
37x
Knot를 ˆ1 3u< < 위치에 하나를 더 추가하면, 추가된 Knot에 의해 Greville abscissa가 다음과
같이 변경된다.
2
00
01
30
31
32
33
34
35
3
3
12
1
24
6
43 07
4
0 0 0 03
0 0 1 13 3
ˆ0 1 13 3
ˆ1 2 13 3
ˆ3
ˆ3 2 33 3
ˆ3
ˆ
ˆ
ˆ
3 63 3
3 3
ˆ
ˆ
3
ˆ
3
ˆ
ˆ
ˆ
3
u
u
u
u
u
u
u
u
u
uu
u
u
u
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
+ += = =
+ += = =
+ + += = =
+ + += = =
+ += =
+ + += = =
+ + += = =
+ += = =
(13)
Knot를 ˆ1 3u< < 위치에 하나 더 추가함에 따라 생성되는 B-Spline y-control ordinate는 3
4V
이며 각 ordinate는 선분 2 2
3 4V V 상에 내분점으로 위치하고 있다. 3
4V 를 Greville abscissa 와의
비례식으로 구하면 다음과 같다.
3 3 3 34 4 4 4
2 2 2 23 4 3 4: :V VV V xx x x=
Page 15
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
423
3 ˆ ˆ2 1 1ˆ3 3u uux x + -
= - =
434
2 ˆ ˆ2 3 3ˆ3 3u uuxx + -
= - =
2 2
33
4 4ˆ ˆ3 1
2 2u uV V V- -
\ = + (14)
식 (8)~(14)를 이용하여 3
4V 를 정리하면 다음과 같다.
0 01 2
0 02 3
12
13
14
0 03 4
ˆ ˆ33 3
ˆ ˆ33 3
ˆ ˆ3 12 2
u uV V
u u
V
V V
u u VV V
V
-= +
-= +
- -= +
( ) ( )
( ) ( )
0 0 0 01 2 2 3
2 20 0 0
1 2
2
3
0 0 0 02 3 3 4
20
1 12 3
1 13 4
3
24
2
ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ3 3 3 33 3 3 3 3 3 3 3
ˆ ˆ ˆ3 2 3 ˆ9 9 9ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ3 1 3 3 1 3 1
2 2 2 3 3 2 2 2
ˆ ˆ ˆ ˆ3 36 6
V V
V V
u u u u u u u uV V V V
u u u uV V V
u u u u u u u uV V V V
u u u u
V
V
V
- - - -æ ö æ ö= + = + + +ç ÷ ç ÷è ø è ø
- -= + +
- - - - - - -æ ö æ ö= + = + + +ç ÷ ç ÷è ø è ø
- - -= + +
( )( ) ( )
( ) ( )( ) ( )
20 0
3 4
2 20 0 0
2 3 4
ˆ ˆ1 3 14 4
ˆ ˆ ˆ ˆ3 5 3 3 16 12 4
u uV V
u u u uV V V
é ù- -+ê ú
ë û
- - - -= + +
( ) ( )
( ) ( )( ) ( )
( ) ( ) ( )( )
( ) ( )( )( ) ( )
2 20 0 0
1 2 3
2 20 0 0
2 3 4
3 2 20 0
1 2
2 23 4
34
320
3
ˆ ˆ3 12 2
ˆ ˆ ˆ3 2 3ˆ ˆ32 9 9 9
ˆ ˆ ˆ ˆ3 5 3 3 1ˆ 12 6 12 4
ˆ ˆ ˆ ˆ ˆ3 2 3 1 318 18 12
ˆ ˆ ˆ ˆ ˆ ˆ3 1 5 3 3 118 24
u u
u u uu uV V V
u u u uu V V V
u u u u uV V
u u u u u
V V V
uV
- -= +
é ù- -- ê ú= + +ê úë ûé ù- - - -- ê ú+ + +ê úë û
é ù- - - -ê ú= + +ê úë û
é ù- - - - -+ + +ê úê úë û
( ) ( )( ) ( )( ) ( )
04
3 2 320 0 0 0
1 2 3 4
8
ˆ ˆ ˆ19 24 9 3ˆ ˆ ˆ ˆ3 7 3 3 118 36 72 8
V
u u uu u u uV V V V
- + -- - - -= + + +
Page 16
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
3) (Cox-de Boor Algorithm) ˆu u= 에서의 B-Spline function y-ordinate는 Cox-de Boor
Algorithm을 이용하여 구할 수 있다. 이 결과가 위의 문제에서 구한 결과가 동일함을 보이시오.
l de Boor Algorithm: 1 11
11 1
( ) ( ) ( )k k- k -i n k ii i i
i n k i i n k i
u u u uV u V u V u
u u u u+ - -
-+ - - + - -
- -= +
- -
l Cox-de Boor Algorithm: )()()( 11
1
11
1 uNuuuuuN
uuuuuN n
iini
nini
ini
ini
-+
+
+-
--+
-
--
+-
-=
îíì <£
= -
else 0 if 1
)( 10 iii
uuuuN
l B-Spline Function: ( ) ( )1
0
0
Dn
i ii
y u V N u-
=
=å
(D: 주어진 B-Spline control ordinate 의 개수, n: 곡선의 차수)
<풀이>
Cox-de Boor algorithm으로 전개한 식은 다음과 같다. 단, 3 4ˆu u u£ < 이므로 ( )04 ˆ 1N u = 이다.
31N
32N
33N
34N
30N
02N
03N
04N
01N
00N
05N
06N
07N
20N
21N
22N
23N
24N
25N
12N
13N
14N
15N
16N
10N
11N
ˆ33u-
ˆ3u
ˆ33u-
ˆ3u
ˆ32u-
ˆ 12u -
ˆ33u-
ˆ3u
ˆ32u-
ˆ 12u -
ˆ32u-
ˆ 12u -
( )1 00 u u u-= £ <
( )0 10 u u u= £ <
( )1 20 u u u= £ <
( )2 30 u u u= £ <
( )3 41 u u u= £ <
( )4 50 u u u= £ <
( )5 60 u u u= £ <
( )6 70 u u u= £ <
01V ´
02V ´
03V ´
04V ´
00V ´
그림 11 Cox-de Boor algorithm을 이용한 B-Spline function 식 계산
Page 17
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
문제 2)에서 풀이한 3
4V 에 대한 수식을 그림으로 표현하면 다음과 같다. (de Boor algorithm)
01V
02V
03V
04V
12V
13V
14V
23V
24V
34V
ˆ33u-
ˆ3u
ˆ33u-
ˆ3u
ˆ32u-
ˆ 12u -
ˆ33u-
ˆ3u
ˆ32u-
ˆ 12u -
ˆ32u-
ˆ 12u -
그림 12 de Boor algorithm을 이용한 B-Spline function 식 계산
그림 11과 그림 12를 비교해 볼 때, Cox-de Boor algorithm을 이용한 B-Spline function 식과
de Boor algorithm을 이용한 B-Spline function 식이 동일함을 알 수 있다.
그림 11을 참고하여 Cox-de Boor algorithm으로 3차 B-Spline function을 계산하면 다음과 같
다.
① 1n =
( )
( )
13
14
ˆ3ˆ2
ˆ 1ˆ2
uN u
uN u
-=
-=
② 2n =
( ) ( )
( )
2 12 3
2
ˆ3ˆ ˆ3
ˆ ˆ3 33 2
ˆ36
uN u N u
u u
u
-=
- -= ×
-=
( ) ( ) ( )
( )( )
2 1 13 3 4
ˆ ˆ3ˆ ˆ ˆ3 2ˆ ˆ ˆ ˆ ˆ ˆ ˆ3 3 1 3 13 2 2 2 2 3 2
ˆ ˆ3 5 312
u uN u N u N u
u u u u u u u
u u
-= +
- - - - -æ ö= × + × = +ç ÷è ø
- -=
Page 18
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
( ) ( )
( )
2 14 4
2
ˆ 1ˆ ˆ2
ˆ ˆ1 12 2ˆ 1
4
uN u N u
u u
u
-=
- -= ×
-=
③ 3n =
( ) ( )
( )
( )
3 21 2
2
3
ˆ3ˆ ˆ3
ˆ3ˆ33 6
ˆ318
uN u N u
uu
u
-=
--= ×
-=
( ) ( ) ( )
( ) ( )( ) ( )
( ) ( )
3 2 22 2 3
2 2
2
ˆ ˆ3ˆ ˆ ˆ3 3
ˆ ˆ ˆ ˆ3 3 5 3 3ˆ ˆ ˆ ˆ3 5 33 6 3 12 6 3 6
ˆ ˆ3 7 336
u uN u N u N u
u u u uu u u u
u u
-= +
- - - -- -æ ö= × + × = +ç ÷è ø
- -=
( ) ( ) ( )
( )( ) ( ) ( ) ( )
( )( )
3 2 23 3 4
2 2
2
ˆ ˆ3ˆ ˆ ˆ3 2
ˆ ˆ ˆ ˆ ˆ ˆ3 5 3 1 5 3 1ˆ ˆ ˆ3 33 12 2 4 2 18 4
ˆ ˆ ˆ3 19 24 9
72
u uN u N u N u
u u u u u uu u u
u u u
-= +
ì ü- - - - -- - ï ï= × + × = +í ýï ïî þ
- - +=
( ) ( )
( )
( )
3 24 4
2
2
ˆ 1ˆ ˆ2
ˆ 1ˆ 1.2 4ˆ 1
8
uN u N u
uu
u
-=
--=
-=
①, ②, ③ 에서 계산한 결과를 이용하여 ( )ˆr u 를 구하면 다음과 같다.
Page 19
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
( ) ( ) ( ) ( ) ( )0 3 0 3 0 3 0 31 1 2 2 3 3 4 4ˆ ˆ ˆ ˆ ˆr u V N u V N u V N u V N u= + + +
( ) ( ) ( )( ) ( )( ) ( )3 2 320 0 0 0
1 2 3 4
ˆ ˆ ˆ19 24 9 3ˆ ˆ ˆ ˆ3 7 3 3 1ˆ
18 36 72 8
u u uu u u ur u V V V V
- + -- - - -\ = + + + (15)
위 식 (15)는 문제 2-2)에서 Knot Insertion(de Boor algorithm)으로 계산한 결과와 동일함을 확
인할 수 있다.
Page 20
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
l
3. (Cubic B-Spline Curve Interpolation) 다음 그림은 어느 선박의 선수부 Section Line을 나타낸
것이다. 이것을 P0, P1, P2, P3 의 4개의 점을 지나는 부드러운 3차 곡선으로 표현하고자 한다. 단,
연결점인 P1, P2에서 C1, C2 조건을 만족해야 한다.
St. 19.75
St. 19.75
0P
1P
2P
3P
0t
1t
uu0u1u2
u5u6u7
u3 u4
x
y
Page 21
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
1) 그림을 이용하여 3차 B-Spline Control Point를 도시하시오.
0P
1P
2P
3P
0t
1t
uu0u1u2
u5u6u7
u3 u4
4D3D2D
2D
3D2D
3D
4D 3D
4D
20 03
D+P t
43 13
D-P t
2D3D 3D
4D
5= d4 =d
4d
2d
1= d
0= d
Page 22
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
2) 점의 좌표와 양 끝에서의 접선 벡터가 다음과 같이 주어졌을 때, 3차 B-Spline Control Point
를 구하시오.
l 점의 좌표: ( ) ( ) ( ) ( )0 0 1 1 2 2 3 30,0 , 3, 4 , 8, 4 , 12,7= = = =P P P P P P P P
l 접선 벡터: ( ) ( )0 10,3 , 3,3= =t t
))(()(
)/(})(
)()(
)({
))(()(
21321
21
21321
321
21
12
2121
22
+++++
+
+++++
+++
++
++
++++
+
D+DD+D+DD
=
D+DD+D+DD+DD
+D+D+DD+DD
=
D+DD+D+DD
=
iiiii
ii
iiiii
iii
iii
iiii
iiiii
ii
g
b
a
<풀이>
0P
1P
2P
3P
0t
1t
uu0u1u2
u5u6u7
u3 u4
4 1D =3 1D =2 1D =
2D
3D2D
3D
4D 3D
4D
20 03
D+P t
43 13
D-P t
2D3D 3D
4D
5= d4 =d
4d
2d
1= d
0= d
우선 주어진 점들의 간격(Chord Length)를 이용하여 Knot 간격 2 3 4, , D D D 를 설정한다.
주어진 점의 간격을 구하면 다음과 같다.
( ) ( )2 21 0 3 0 4 0 5- = - + - =P P
( ) ( )2 22 1 8 3 4 4 5- = - + - =P P
Page 23
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
( ) ( )2 23 2 12 8 7 4 5- = - + - =P P
점의 간격을 이용하여 Knot 간격을 다음과 같이 설정한다.
2 3 4 1 0 2 1 3 2: : : : 5 : 5 : 5 1:1:1D D D = - - - = =P P P P P P
2 3 4 1\D = D = D =
곡선 상의 점과 tangent vector가 위 그림과 같이 주어질 때 3차 B-Spline 곡선의 Control
Point를 구하는 식은 다음과 같다.
2 2
4 4
0 03 3
0 1
1 21 1 1
2 32 2 23 3
1 4
3 5
1 0 0 0 0 00 0 0 0
0 0 00 0 00 0 0 0
0 0 0 0 0 1
a b ga b g
D D
D D
é ùé ù é ùê úê ú ê ú-ê úê ú ê úê úê ú ê úê ú=ê ú ê úê úê ú ê úê úê ú ê ú-ê úê ú ê úê úê ú ê úë û ë ûë û
P dt dP dP dt dP d
(16)
여기서 1 1 1 2 2 2, , , , , a b g a b g 는 다음과 같이 구할 수 있다.
( )( )( )
( )( )
( ) ( )
( )( )
2 23
11 2 3 2 3
3 1 2 2 3 41 2 3
1 2 3 2 3 4
2 22
12 3 4 2 3
( ) 1 1( )( ) 0 1 1 1 1 4
1 0 1 1 1 1( ) ( ) 7{ } / ( ) / 1 1( ) ( ) 0 1 1 1 1 1 12
( ) 1 1( )( ) 1 1 1 1 1 6
a
b
g
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 + + +
( )( )( )
( )( )
( ) ( )
( )( )
2 24
22 3 4 3 4
4 2 3 3 4 52 3 4
2 3 4 3 4 5
2 23
23 4 5 3 4
( ) 1 1( )( ) 1 1 1 1 1 6
1 1 1 1 1 0( ) ( ) 7{ } / ( ) / 1 1( ) ( ) 1 1 1 1 1 0 12
( ) 1 1( )( ) 1 1 0 1 1 4
a
b
g
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 + + +
위에서 계산한 결과와 곡선 상의 점, 그리고 tangent vector를 대입하여 식 (15)를 완성하면 다
음과 같다.
Page 24
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
0
171 1
24 12 671 1
36 12 4
4
5
0 0 1 0 0 0 0 00 3 3 3 0 0 0 03 4 0 0 08 4 0 0 03 3 0 0 0 0 3 3
12 7 0 0 0 0 0 1
é ùé ù é ùê úê ú ê ú- ê úê ú ê úê úê ú ê ú
= ê úê ú ê úê úê ú ê úê úê ú ê ú-ê úê ú ê úê úë û ë û ë û
dddddd
(17)
역행렬을 계산하여 3차 B-Spline 곡선의 Control Point를 구하면 다음과 같다.
10
17 171 1 14
2 4 12 6 5 37 81 1 41
3 6 12 4 5 3
4
5
1 0 0 0 0 0 0 0 0 03 3 0 0 0 0 0 3 0 10 0 0 3 40 0 0 8 40 0 0 0 3 3 3 3 11 60 0 0 0 0 1 12 7 12 7
-é ù é ù é ù é ùê ú ê ú ê ú ê ú-ê ú ê ú ê ú ê úê ú ê ú ê ú ê ú
= =ê ú ê ú ê ú ê úê ú ê ú ê ú ê úê ú ê ú ê ú ê ú-ê ú ê ú ê ú ê úê ú ë û ë û ë ûë û
dddddd
Page 25
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
3) 위에서 구한 B-Spline Control Point를 이용하여 B-Spline 곡선식을 구하고, 1.5u = 에서 곡
선의 좌표를 구하시오.
B-Spline 곡선식
)()()(
)(1
0uN
uyux
u ni
D
iiå
-
=
=úû
ùêë
é= dr (D: 주어진 점의 개수)
Cox-de Boor Recurrence Formula
11 1 011
1 1
1 if ( ) ( ) ( ), ( )
0 else i in n ni i n
i i i ii n i i n i
u u uu u u uN u N u N u N u
u u u u-- -- +
++ - - +
£ <- - ì= + = í- - î
<풀이>
Cox-de Boor Recurrence Formula를 이용하여 B-Spline Basis Function을 계산하면 다음과 같
다.
31N
32N
33N
34N
30N
02N
03N
04N
01N
00N
05N
06N
07N
20N
21N
22N
23N
24N
25N
12N
13N
14N
15N
16N
10N
11N
4
4 1
u uu u
--
1
4 1
u uu u--
5
5 2
u uu u
--
2
5 2
u uu u--
6
6 3
u uu u
--
3
6 3
u uu u--
4
4 2
u uu u
--
2
4 2
u uu u--
5
5 3
u uu u
--
3
5 3
u uu u--
4
4 3
u uu u
--
3
4 3
u uu u--
( )1 00 u u u-= £ <
( )0 10 u u u= £ <
( )1 20 u u u= £ <
( )2 30 u u u= £ <
( )3 41 u u u= £ <
( )4 50 u u u= £ <
( )5 60 u u u= £ <
( )6 70 u u u= £ <
1 ´d
2 ´d
3 ´d
4 ´d
0 ´d
35N
08N
26N
17N
( )7 80 u u u= £ <
5 ´d
Page 26
2008학년도 2학기 전산선박설계 시험 2008년 9월 29일 18:00~21:00
선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/
위 그림에서 실제 Knot 값과 1.5u = 를 대입하면 다음 그림과 같다.
3 11 32N =
3 152 32N =
3 153 32N =
3 14 32N =
30N
02N
03N
04N
01N
00N
05N
06N
07N
20N
21N
2 12 8N =
2 33 4N =
2 14 8N =
25N
12N
1 13 2N =
1 14 2N =
15N
16N
10N
11N
2 1.5 12 0 4-
=-
1.5 0 32 0 4
-=
-
3 1.5 13 0 2-
=-
1.5 0 13 0 2
-=
-
3 1.5 33 1 4-
=-
1.5 1 13 1 4
-=
-
2 1.5 12 0 4-
=-
1.5 0 32 0 4
-=
-
3 1.5 33 1 4-
=-
1.5 1 13 1 4
-=
-
2 1.5 12 1 2-
=-
1.5 1 12 1 2
-=
-
( )1 00 u u u-= £ <
( )0 10 u u u= £ <
( )1 20 u u u= £ <
( )2 30 u u u= £ <
( )3 41 u u u= £ <
( )4 50 u u u= £ <
( )5 60 u u u= £ <
( )6 70 u u u= £ <
1 ´d
2 ´d
3 ´d
4 ´d
0 ´d
35N
08N
26N
17N
( )7 80 u u u= £ <
5 ´d
이를 이용하여 ( )1.5u =r 를 계산하면
( )14 41 115 5 2
17 8 333 3 8
0 111 15 15 11.51 632 32 32 32
é ù é ù é ùé ù é ù= × + × + × + × =ê ú ê ú ê úê ú ê úë û ë ûë û ë û ë û
r