Trang 2Phâ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 Desig
Trang 1ĐỒ HỌA 2D
ĐƯỜNG CONG
Giảng viên : Bùi Tiến Lên
Trang 2Trang 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 3Đường cong được biểu diễn bằng
hàm số
Trang 5Thuật toán
Bước 1 : Chia miền đối số ra N
đoạn bằng nhau
x0 x1 x2 xN-1xN
Trang 10Trang 10
Vấn đề phân đoạn
Số phân đoạn N là bao nhiêu ?
độ phân giải cột
Trang 11Đồ thị đa thức bậc ba
Cho
y = ax3 + bx2 + cx + d
x [xmin, xmax]
4 , 4 x
3 x 2 0 x 2 0 x 1 0
Trang 12Trang 12
Vấn đề tính giá trị đa thức
Cách tính thông thường
a*x*x*x + b*x*x + c*x + d;
Cần 6 phép nhân và 3 phép cộng
Cách tính Horner
((a*x + b)*x + c)*x + d
Cần 3 phép nhân và 3 phép cộng
Cách tính cải tiến
?
Trang 13Vấ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 14Trang 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 + 2ax 2
Trang 15Vấn đề tính giá trị đa thức
6ax2 x0 + 6ax3 + 2b x2
yi + yi
yi + yi
yi + 6a x3
Trang 16Đường cong được biểu diễn bằng
Phương trình tham số
Trang 17Bài toán
Input:
Phương trình tham số
x(t) y(t) Miền tham số
5 cos t
y
t cos t
5 cos t
x
Trang 18Trang 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 20(xN, yN)
Trang 21Cài đặt
// Hàm vẽ đường cong tham số
void DrawCurve2D(CDC *pDC, TPara2D f, double tmin, double tmax )
Trang 23Vấn đề phân đoạn
t
y
tcost
y
tcost
x
Trang 24ĐƯỜNG CONG CAD
Trang 25ĐƯỜNG CONG BEZIER
Trang 27Công thức xác định đường cong
p.tBt
y
p.tBt
xhoặc
t)t1
(
!kn
!k
!
nt
B
với1
,0t
p.tBt
p
khiểnđiều
điểm 1
nbởitạo
đượcn
bậcBezier
congđường
Ptts
n k 0
n k
n k 0
n k
k k n
n k
n k 0
n k
Trang 28Trang 28
Tính chất 1
Bảo toàn qua phép biến đổi affine
Trang 29Tính chất 2
Các điểm điểu khiển tạo thành bao lồi của đường cong
Trang 31Đường cong Bezier bậc hai
Trang 34Trang 34
Một số đường cong Bezier bậc ba
Trang 35Độ thẳng của đường cong Bezier
3 0
3 2
2 1
1
0
pp
pp
pp
p
pf
Trang 37Thuật toán vẽ đệ qui
Trang 38Trang 38
Thuật toán vẽ đệ qui
3 3
3
2 2
3 2
1 1
3 2
1
0 0
3 2
1
0 3
2 1
0 2
1
0 1
0 0
pr
2
p
pr
4
pp
2
pr
8
pp
3p
3
pr
8
pp
3p
3
pl
4
pp
2
pl
2
p
pl
pl
Trang 39ĐƯỜNG CONG HERMITE
Trang 41Công thức xác định đường cong
Trang 42Trang 42
Một số đường cong Hermite
Trang 43Đường cong Bezier bậc ba & Hermite
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
1p
H 0
v
Trang 44Trang 44
Dẫn nhập
Bao nhiêu đường cong?
Bao nhiêu đường cong?
Trang 45ĐƯỜNG CONG PHỨC
Trang 46Trang 46
Định nghĩa đường cong phức
Đường cong phức là sự kết hợp của những đường cong
Trang 47Yê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
1 Biểu diễn dễ dàng và hiệu quả
2 Tính toán hiệu quả
Trang 48Trang 48
Tính liên tục
Liên tục bậc 0
Liên tục bậc 1
Liên tục bậc 2
Trang 49Phân loại
1 Đường cong Splines
2 Đường cong B-Splines
3 Đường cong Nurbs (NonUniform Rational B-Splines)
Trang 50CÁC ĐƯỜNG CONG SPLINES
Trang 51Định nghĩa đường cong Splines
Input
n +1 điểm {P 0 , P 1 , , P n } và một số thông tin khác
Trang 52k 0
1 k 1
k 0
P
P2
t
1v
P
P2
t
1v
Pp
Pp
Trang 53Ảnh hưởng của tham số tension t
t<0 t>0
Trang 54P
Pv
Pp
Pp
1
3 1
0
2 0
2 1
1 0
Trang 55Kochanek-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 1
k k
0
1 k 1
k 0
PP
c1b1P
Pc1b1t1
1v
PP
c1b1P
Pc1b1t
12
1v
Pp
Pp
Trang 56Trang 56
Ảnh hưởng của tham số bias b
b<0 b>0
Trang 591 3
0 2
0
n
1 n
2 1 0
v
PP
3
PP
3
PP
3v
vv
vvv
1
14
1
14
1
14
11
Trang 602 n n
1 3
0 2
0 1
n
1 n
2 1 0
PP
3
PP
3
PP
3
PP
3
PP
3
vv
vvv
21
14
1
14
1
14
1
12
Trang 61Free Splines
Là đường cong liên tục C0
Trang 62ĐƯỜNG CONG B-SPLINES
Trang 64tt
Ntt
t
tt
N
khác0
t,t
t nếu
1t
N
Với
1,0t
PtNt
p
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
n i 0
k i
Trang 65Công thức B-Splines bậc ba đều
4
Pp
3
P2
Pp
3
PP
2p
6
PP
4
Pp
3 2
1 3
2
1 2
2
1 1
2 1
0 0
Trang 662
P
Pp
1
2 2
1 1
0
1 0
Trang 67ĐƯỜNG CONG HỮU TỈ
Trang 68Trang 68
Đị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 69Đường Conic
Dạng chuẩn
0a
ax4y
Parabola
0b
a,
1b
ya
xHyperbola
0b
a,
1b
ya
xEllipse
2
2
2 2
2
2
2 2
Trang 70t
1
t
2bt
y
t1
t
1at
xHyperbola
,t
t
1
t
2bt
y
t1
t
1at
xEllipse
2
2 2
2 2 2
Trang 71Đườ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
p0,w0
p1,w1
Trang 722 1 0
2 0
2
2 2 1
2 1 0
2 0
2
2 2 1
2 1 0
2 0
2 2
2 2
2 1
1
1 2
1 0
0
0 2
0
wtBw
tBw
tB
ytBy
tBy
tB
xtBx
tBx
tB
wy
xt
Bw
y
xt
Bw
y
xt
Bt
w
ty
tx
Trang 732 2 1
2 1 0
2 0
2
2
2 2 1
1
2 1 0
0
2 0
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
2
2 2 1
2 1 0
2 0
y
xw
t
By
xwt
By
xw
tB
wtBw
tBw
tB
y
xt
By
xt
By
xtB
wtBw
tBw
tB
ytBy
tBy
tB
wtBw
tBw
tB
xtBx
tBx
tBt
y
tx
Trang 740.2.t
Bb
a.1.t
B0
a.1.tB
2tBt
Bt
B
b2tBb
tB0
tB
0tBa
tBa
tB
t1
t2b
t1at
y
tx
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 2
2 1
2 0 2 2
Trang 75ĐƯỜNG CONG NURBS
Trang 76Trang 76
Định nghĩa
Là đường cong phức C = {C 1 , C 2 , …, C n-2 } với C i là các
đường cong Bezier hữu tỉ