Top Banner
2008학년도 2학기 전산선박설계 시험 200892918:00~21:00 선박설계자동화연구실 ASDAL(Advanced Ship Design Automation Lab.), http://asdal.snu.ac.kr/ 1. (de Casteljau Algorithm) 다음 그림은 어느 선박의 선수부 Section Line나타낸 것이다. 5조정점(Control Point) 0 b , 1 b , 2 b , 3 b , 4 b 주어졌을 , 조정점을 잇는 각각의 선분을 ( ) ˆ ˆ :1 u u - 4연속적으로 내분하는 점은 4곡선 상에 있게 된다. u u % 0 b 1 b 2 b 3 b 4 b 0 0 0 1 1 1 0 1
26

u ud b b b b b

Apr 30, 2023

Download

Documents

Khang Minh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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: u ud b b b b b

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