slike bài giảng đồ họa máy tính đồ họa 2d đường cong - Pdf 23

ĐỒ HỌA 2D
ĐỒ HỌA 2D
ĐƯỜNG CONG
ĐƯỜNG CONG
Giảng viên : Bùi Tiến Lên
Trang 2
Phân loại
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)
Đường cong được biểu diễn bằng
Đường cong được biểu diễn bằng
hàm số
hàm số
Trang 4
Baứi toaựn
Baứi toaựn
Input
Haứm soỏ y = f(x)
Mien ủoỏi soỏ [x
min
, x
max
]
Output
ẹo thũ haứm soỏ
x

1
x
2
x
N-1
x
N
x
min
x
max
y
0
y
1
y
2
y
N-1
y
N
Trang 7
Thuật toán
Thuật toán
Bước 3 : Kẻ đường gấp khúc đi
qua N + 1 điểm.
x
0
x
1

double ∆x, x, y;
∆x = (x
max
– x
min
)/N;
x = x
min
;
y = f(x);
pDC->MoveTo(ConvertWorldToScreen2D(x, y));
for(int i=1; i<=N; i++)
{
x += ∆x;
y = f(x);
pDC->LineTo(ConvertWorldToScreen2D(x, y));
}
}
Trang 9
Caøi ñaët
Caøi ñaët
// Lớp phương trình hàm
class TFunc2D {
virtual double operator () (double x) = 0;
};
Trang 10
Vấn đề phân đoạn
Vấn đề phân đoạn
Số phân đoạn N là bao nhiêu ?
độ phân giải cột

?
Trang 13
Vấn đề tính giá trò đa thức
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
y
i
= ax
i
+ b y
0
y
i+1
=
=
ax
0
+ b
y
i
+ a∆x
Tính Tính
y
0
= ax
0
+ b y
0
= ax

y
i-1
+ a∆x
y
i+1
= ax
i+1
+ b y
i+1
=
y
i
+ a∆x

y
N
= ax
N+1
+ b y
0
=
y
i
+ a∆x
Trang 14
Vấn đề tính giá trò đa thức
Vấn đề tính giá trò đa thức
Đa thức bậc hai y = ax
2
+ bx + c


+ b∆x
y
i
+ ∆y
i
∆y
i
+ 2a∆x
2
Trang 15
Vấn đề tính giá trò đa thức
Vấn đề tính giá trò đa thức
Đa thức bậc ba y = ax
3
+ bx
2
+ cx + d
Cách tính cải tiến
y
0
∆y
0
∆∆y
0
y
i+1
∆y
i+1
∆∆y

x
0
+ 6a∆x
3
+ 2b∆x
2
y
i
+ ∆y
i
∆y
i
+ ∆∆y
i
∆∆y
i
+ 6a∆x
3
Đường cong được biểu diễn bằng
Đường cong được biểu diễn bằng
Phương trình tham số
Phương trình tham số
Trang 17
Baøi toaùn
Baøi toaùn
Input:
Phöông trình tham soá
x(t)
y(t)
Mieàn tham soá

min
t
max
Trang 19
Thuaät toaùn
Thuaät toaùn
Böôùc 2 : Tính (x, y)
t
o
t
1
t
2
t
i
t
N
Trang 20
Thuật toán
Thuật toán
Bước 3 : Vẽ đường gấp khúc đi
qua N + 1 điểm
(x
0
, y
0
)
(x
1
, y

min
;
p = f(t);
pDC->MoveTo(ConvertWorldToScreen2D(p));
for(int i=1; i<=N; i++)
{
t += ∆t;
p = f(t);
pDC->LineTo(ConvertWorldToScreen2D(p));
}
}
Trang 22
Caøi ñaët
Caøi ñaët
// Lớp phương trình tham số
class TPara2D {
virtual TPoint2D operator () (double t) = 0;
}
Trang 23
Vaán ñeà phaân ñoaïn
Vaán ñeà phaân ñoaïn
( )
( )
[ ]
π∈
=
=
8,0t
tsintty
tcosttx


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status