1. Trang chủ
  2. » Công Nghệ Thông Tin

Thuật toán vẽ đường cong

80 845 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 602,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Trang 1

ĐỒ HỌA 2D

ĐƯỜNG CONG

Giảng viên : Bùi Tiến Lên

Trang 2

Phân loại

Quan điểm toán học

- Đường cong được biểu diễn bằng hàm số

- Đường cong được biểu diễn bằng phương trình tham số

Quan điểm thiết kế

- Đường cong CAD (Computer Aided Design)

Trang Trang 22222222

- Đường cong CAD (Computer Aided Design)

Trang 3

Đường cong được biểu diễn bằng

hàm số

Trang 4

xmin

y=f(x)

Trang 5

Thuật toán

Bước 1 : Chia miền đối số ra N

đoạn bằng nhau

x0 x1 x2 xN-1xN

Trang 6

x0 x1 x2 xN-1xN

Trang 8

for(int i=1; i<=N; i++)

Trang 10

Vấn đề phân đoạn

Số phân đoạn N là bao nhiêu ?

độ phân giải cột

Trang Trang 10 10

Trang 11

Đồ thị đa thức bậc ba

Trang 12

Vấn đề tính giá trị đa thức

Cách tính thông thường

Cần 3 phép nhân và 3 phép cộng

Cách tính cải tiến

?

Trang 13

Vấn đề tính giá trị đa thức

Đa thức bậc nhất y = ax + b

Cách tính thông thường Cách tính cải tiến

Trang 14

Vấn đề tính giá trị đa thức

Đa thức bậc hai y = ax2 + bx + c

Cách tính thông thường Cách tính cải tiến

yi + ∆yi

∆yi + 2a ∆x2

Trang Trang 14 14

Trang 15

Vấn đề tính giá trị đa thức

Trang 16

Đường cong được biểu diễn bằng

Phương trình tham số

Trang 17

cos 5

cos

=

=

t t

t y

t t

t x

( ) ( )

( )t a ( )t

y

t a

Trang 18

Thuật toán

Bước 1 : Chia miền tham số ra

N đoạn bằng nhau

Miền tham số

Trang Trang 18 18

Trang 20

(x0, y0)(x1, y1)(x2, y2)

Trang 21

Cài đặt

// Hàm vẽ đường cong tham số

void DrawCurve2D(CDC *pDC, TPara2D f, double tmin, double tmax) {

Trang 23

Vấn đề phân đoạn

y

tcost

t

y

tcost

t

x

Trang 24

ĐƯỜNG CONG BEZIER

Trang 25

Định nghĩa đường cong

Trang 26

Đường cong Bezier bậc một

hoặcx(t) = (1 – t)p0x + tp1xy(t) = (1 – t)p0y + tp1y

t ∈ [0, 1]

p0

Trang 27

Đường cong Bezier bậc hai

t ∈ [0, 1]

p0

Trang 28

Đường cong Bezier bậc ba

Trang 29

Một số đường cong Bezier bậc ba

Trang 30

Công thức xác định đường cong

(

!kn

!k

!

nt

B

với1

,0t

p.tBt

p

khiểnđiều

điểm1

nbởitạo

đượcn

bậcBezier

congđường

Ptts

n k

k k n

n k

n k

0 k

[ ]0,1t

p.tBt

y

p.tBt

x

n k

0 k

ky

n k

n k

0

k

n k

Trang 31

Tính chaát 1

Trang 32

Tính chất 2

Các điểm điểu khiển tạo thành bao lồi của đường cong

Trang Trang 32 32

Trang 33

Độ thẳng của đường cong Bezier

3 2

2 1

1 0

pp

pp

pp

p

pf

−+

−+

=

Trang 34

Thuật toán vẽ đường cong Bezier

Trang Trang 34 34

Trang 35

Thuật toán vẽ đường cong Bezier

Xét đường cong Bezier với các điểm điều khiển {p0, p1, , pn}, nối các điểm liên tiếp để tạo thành đa giác điều khiển

Chia mỗi đoạn trong đa giác với tỉ số t:(1-t), nối các

điểm mới tính, ta có được đa giác với số đỉnh ít hơn 1

Lặp lại bước trên cho đến khi chỉ còn một điểm đơn, chính là điểm của đường cong Bezier ứng với tham số tLặp lại bước trên cho đến khi chỉ còn một điểm đơn, chính là điểm của đường cong Bezier ứng với tham số t

Trang 36

Trang Trang 36 36

p0

p3

p2

p1

Trang 37

Tính liên tục

•Một đường cong Bezier không đủ phức tạp

•Ghép nhiều đường cong Bezier với nhau

•Yêu cầu tính liên tục tại các điểm ghép nối

•Liên tục tham số

C0: liên tục tham số bậc 0, hai Bezier có cùng đầu mút

C1: C0 + có cùng vector tiếp tuyến tại điểm đầu mút

C1: C0 + có cùng vector tiếp tuyến tại điểm đầu mút

C2: C1 + có cùng đạo hàm bậc 2 tại điểm đầu mút

Trang 38

Tính liên tục

Liên tục bậc 0

Liên tục bậc 1

Trang Trang 38 38

Liên tục bậc 2

Trang 39

Tính liên tục

•Liên tục hình học

•G1: tiếp tuyến cùng hướng nhưng không cần cùng độ lớn

•G2: cùng tiếp tuyến và cùng độ cong

Trang 40

Thuật toán vẽ đệ qui

p3

Trang Trang 40 40

Trang 41

Thuật toán vẽ đệ qui

3 2

1 1

3 2

1

0 0

1

0 1

0 0

4

pp

2

pr

8

pp

3p

3

pr

2

p

pl

pl

+

+

=

++

3

2 2

1

3 2

1

0 3

2 1

0 2

1

pr

2

p

pr

4

8

pp

3p

3

pl

4

pp

2

pl

2

=

+

=+

+

+

=

++

=

Trang 42

Thuật toán vẽ đệ qui

0 1 2 3

Vẽ Bezier (r0, r1, r2, r3)

Kết thúc

Trang 43

ĐƯỜNG CONG HERMITE

Trang 44

Định nghĩa đường cong

0

v v1

Trang 45

Công thức xác định đường cong

Trang 46

Một số đường cong Hermite

Trang Trang 46 46

Trang 47

Đường cong Bezier bậc ba & Hermite

( B)

2

B 3

H

1

B 0

B 1

H

0

B 3

H

1

B 0

H

0

pp

3v

pp

3v

pp

pp

2

p

B 3

1

p

H 0

v

H

v

Trang 48

Dẫn nhập

Bao nhiêu đường cong?

Trang Trang 48 48

Trang 49

ĐƯỜNG CONG PHỨC

Trang 50

Định nghĩa đường cong phức

Đường cong phức là sự kết hợp của những đường cong

C1

C4

Trang 51

Yêu cầu thiết kế đường cong phức

Đối với người thiết kế

1 Dễ vẽ

2 Liên tục

3 Cục bộ

Đối với người lập trình

Đối với người lập trình

1 Biểu diễn dễ dàng và hiệu quả

2 Tính toán hiệu quả

Trang 52

Tính liên tục

Liên tục bậc 0

Liên tục bậc 1

Trang Trang 52 52

Liên tục bậc 2

Trang 53

Phân loại

1 Đường cong Splines

2 Đường cong B-Splines

3 Đường cong Nurbs (NonUniform Rational B-Splines)

Trang 54

CÁC ĐƯỜNG CONG SPLINES

Trang 55

Định nghĩa đường cong Splines

Trang 56

Pp

=

=

Trang Trang 56 56

1 k 1

k 0

1 k 1

P

P2

t

1v

P

P2

t

1v

Pp

+

Trang 57

Ảnh hưởng của tham số tension t

Trang 58

Là trường hợp đặc biệt của Cardinal Splines với t = 0

Pp

Pp

2 1

1 0

2

P

Pv

2

P

Pv

Pp

1

3 1

0

2 0

2 1

Trang 59

Kochanek Bartels Splines Bartels Splines

Là trường hợp tổng quát của Cardinal Splines

- Tham số tension t

- Tham số bias b

- Tham số continuity c

k 1

k k

0

1 k 1

k 0

PP

c1b1P

Pc1b1t1

1v

PP

c1b1P

Pc1b1t

12

1v

Pp

Pp

+

− +

−+

−+

+

=

−+

−+

−+

=

=

=

Trang 60

Ảnh hưởng của tham số bias b

Trang Trang 60 60

Trang 62

P2

P3

v2

Trang 63

1 0

PP

3

PP

3

vv

v

v

14

1

14

11

1 3

n

1 n 2

v

PP

3

PP

3

vv

v

1

14

1

14

Trang 64

0 1

1

0

PP

3

PP

3v

v1

41

12

2 n n

1 3

0 2

n

1 n

2 1

PP

3

PP

3

PP

3

PP

3

vv

vv

21

14

1

14

1

14

Trang 65

Free Splines

Là đường cong liên tục C0

Trang 66

ĐƯỜNG CONG B

ĐƯỜNG CONG B SPLINES SPLINES

Trang 68

1,0t

PtNt

0 i

i

k i

tt

t

tt

Ntt

t

tt

N

khác0

t,t

t nếu

1t

N

1

k 1

i 1 i k

i

k i 1

k i i 1

k i

i

k

i

1 i i

1

i

− + +

+

+

− +

+

−+

Trang 69

6

PP

4

Pp

2

1 1

2 1

0 0

4

Pp

3

P2

Pp

3

3 2

1 3

2

1 2

Trang 70

P

P

p 1 0 0

=

=

Trang Trang 70 70

Pp

1

2 2

1 1

=

=

Trang 71

ĐƯỜNG CONG HỮU TỈ

Trang 72

Định nghĩa

Là đường cong trong đó các hàm x(t) và y(t) là các hàm đa thức hữu tỉ

Trang Trang 72 72

Trang 73

Đường Conic

Dạng chuẩn

yx

Hyperbola

0b

a,

1b

ya

xEllipse

2 2

2

2 2

2

>

=+

0a

ax4y

Parabola

0b

a,

1b

ya

x

2

2

2 2

Trang 74

Đường Conic

Dạng tham số

( ) ( )

(− ∞ ∞)

∈+

t

1

t

2bt

y

t1

t

1at

xEllipse

2

2 2

Trang Trang 74 74

( ) ( )

t

1

t

2bt

y

t1

t

1at

x

Hyperbola

t1

2 2 2

Trang 75

Đường Bezier hữu tỉ bậc hai

Input

p0(x0, y0) và trọng số w0

p1(x1, y1) và trọng số w1

p2(x2, y2) và trọng số w2

Output

p1,w1

p0,w0

p1,w1

Trang 76

Công thức

Hệ tọa độ thuần nhất

( ) ( ) ( )

2 1 0

2 0

2 2

2 2

2

1 1

1 2

1

0 0

0 2

0

xtBx

tBx

tB

wy

xt

Bw

y

xt

Bw

y

xt

Bt

w

ty

tx

Trang Trang 76 76

=

2

2 2 1

2 1 0

2 0

2

2 2 1

2 1 0

2 0

2 2

1 1

0 0

wtBw

tBw

tB

ytBy

tBy

tB

Trang 77

Công thức

Hệ tọa độ đề các

( ) ( )

2

2 2 1

2 1 0

2 0

2

2 2 1

2 1 0

2 0

2

2 2 1

2 1 0

2 0

xx

x

wtBw

tBw

tB

ytBy

tBy

tB

wtBw

tBw

tB

xtBx

tBx

tBt

y

tx

++

++

++

2 2 1

1 1

2 1 0

0 0

2 0

2

2 2 1

2 1 0

2 0

2

2

2 2 1

1

2 1 0

0

2 0

y

xw

t

By

xwt

By

xw

tB

wtBw

tBw

tB

y

xt

By

xt

By

xtB

Trang 78

Biểu diễn Conic bằng Bezier hữu tỉ

Đường Ellipse

( ) ( )

tBa

tB

t1

t2b

t1a

ty

tx

2 2

2 1

2 0 2 2

( )t 1 B ( )t 1 B ( )t 2B

b

0.2.t

Bb

a.1.t

B0

a.1.tB

2tBt

Bt

B

b2tBb

tB0

tB

2 2

2 1

2 0

2 1

2 1

2 0

2 2

2 1

2 0

2 2

2 1

2 0

2 1

0

++

Trang 79

ĐƯỜNG CONG NURBS

Trang 80

Định nghĩa

Là đường cong phức C = {C1, C2, …, Cn-2} với Ci là các đường cong Bezier hữu tỉ

Trang Trang 80 80

Ngày đăng: 20/10/2014, 06:36

HÌNH ẢNH LIÊN QUAN

Đồ thị hàm số - Thuật toán vẽ đường cong
th ị hàm số (Trang 4)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w