(c) SE/FIT/HUT 2002
Bài 2:
Các giảithuậtsinh
các thực thể cơsở
Le Tan Hung
hunglt@it-hut.edu.vn
(c) SE/FIT/HUT 2002 2
Giảithuậtxâydựng các
thựcthểcơsở
Giảithuậtsinhđường thẳng – Line
Giảithuậtsinhđường tròn - Circle
Giảithuật VanAken sinh Ellipse
Giảithuậtsinhđagiác
Giảithuậtsinhkýtự
(c) SE/FIT/HUT 2002 3
Rờirạchoáđiểmảnh
(Scan Conversion rasterization)
Scan Conversion rasterization
Tính chất các đốitượng cầnđảmbảo:
smooth
continuous
pass through specified points
uniform brightness
efficient
(c) SE/FIT/HUT 2002 4
Biểudiễnđoạnthẳng
Biểudiễntường minh
(y-y1)/( x-x1) = ( y2-y1)/( x2-x1)1
y = kx + m
Biểudiễnkhôngtường minh
(y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0
hay rx + sy + t = 0
Biểudiễnthambiến
P(u) = P1 + u(P2 - P1)
u [0,1]
m
P(x1, y1)
P(x2 ,y2)
u
(c) SE/FIT/HUT 2002 5
ThuậttoánDDA
(Digital Differential Analizer)
GiảithuậtDDA
Với 0 < k < 1
xi+1 = xi+ 1
yi+1 = yi+ k
với i=1,2,3....
Giảithuật thông thường
DrawLine(int x1,int y1, int x2,int y2,
int color)
{
float y;
int x;
for (x=x1; x<=x2; x++)
{
y = y1 + (x-x1)*(y2-y1)/(x2-x1)
WritePixel(x, Round(y), color );
}}