Bài giảng Đồ họa hiện thực ảo - Bài 2: Các giải thuật sinh các thực thể cơ sở - Lê Tấn Hùng

Bài 2:  
Các gii thut sinh  
các thc thcơ sở  
Le Tan Hung  
(c) SE/FIT/HUT 2002  
Gii thut xây dng các  
thc thcơ sở  
„ Gii thut sinh đường thng – Line  
„ Gii thut sinh đường tròn - Circle  
„ Gii thut VanAken sinh Ellipse  
„ Gii thut sinh đa giác  
„ Gii thut sinh ký tự  
2
(c) SE/FIT/HUT 2002  
Ri rc hoá đim nh  
(Scan Conversion rasterization)  
„ Scan Conversion rasterization  
„ Tính cht các đi tượng cn đảm bo :  
„ smooth  
„ continuous  
„ pass through specified points  
„ uniform brightness  
„ efficient  
3
(c) SE/FIT/HUT 2002  
Biu din đon thng  
„ Biu din tường minh  
(y-y1)/( x-x1) = ( y2-y1)/( x2-x1)1  
y = kx + m  
P(x2 , y2)  
„ Biu din không tng minh  
(y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0  
hay rx + sy + t = 0  
u
P(x1, y1)  
„ Biu din tham biến  
P(u) = P1 + u(P2 - P1)  
u [0,1]  
m
4
(c) SE/FIT/HUT 2002  
Thut toán DDA  
(Digital Differential Analizer)  
Gii thut thông thường  
Gii thut DDA  
DrawLine(int x1,int y1, int x2,int y2,  
„ Vi 0 < k < 1  
int color)  
xi+1 = xi + 1  
{
y= y+ k  
float y;  
int x;  
vi i=1,2,3....  
for (x=x1; x<=x2; x++)  
{
y = y1 + (x-x1)*(y2-y1)/(x2-x1)  
WritePixel(x, Round(y), color );  
}}  
5
(c) SE/FIT/HUT 2002  
Gii thut Bresenham  
„ 1960 Bresenham thuc IBM  
„ đim gn vi đường thng da  
2
trên độ phân giai hưu hn  
d1  
d2  
„ loi bỏ được các phép toán  
1
chia và phép toán làm tròn  
như ta đã thy trong gii thut  
DDA  
0
„ Xét đon thng vi 0 < k < 1  
0
1
2
6
(c) SE/FIT/HUT 2002  
Gii thut Bresenham  
d2 = y - yi = k(xi +1) + b - yi  
d1 = yi+1 - y = yi + 1 - k(xi + 1) - b  
A
yi+1  
yi  
d1  
d2  
B
xi  
xi+1  
7
(c) SE/FIT/HUT 2002  
Gii thut Bresenham  
8
(c) SE/FIT/HUT 2002  
Gii thut trung đim-Midpoint  
„ Jack Bresenham 1965 / Pitteway 1967  
„ VanAken áp dng cho vic sinh các đường  
thng và đường tròn 1985  
„ Các công thc đơn gin hơn, to được các  
đim tương tnhư vi Bresenham  
A
M
B
yi+1  
„ d = F (xi + 1, yi + 1/2) là trung đim ca  
đon AB  
„ Vic so sánh, hay kim tra M sẽ được thay  
bng vic xét giá trd.  
( xi , yi )  
xi  
xi+1  
„ Nếu d > 0 đim B được chn, yi+1 = yi  
„ nếu d < 0 đim A được chn. y= y+ 1  
„ Trong trường hp d = 0 chúng ta có thể  
chn đim bt khoc A, hoc B.  
9
(c) SE/FIT/HUT 2002  
Bresenham’s Algorithm:  
Midpoint Algorithm  
„ If di > 0 then chn đim Atrung đim tiếp theo scó dng:  
3
2
3
2
x +2, y + ⇒ d = a  
(
xi +2  
)
+b y + +c  
i
i
i+1  
i
= di +a+b  
10  
(c) SE/FIT/HUT 2002  
Midpoint Line Algorithm  
dx = x_end-x_start  
dy = y_end-y_start  
d = 2*dy-dx  
x = x_start  
y = y_start  
while x < x_end  
if d <= 0 then  
d = d+(2*dy)  
x = x+1  
initialisation  
choose B  
else  
d = d+2*(dy-dx)  
x = x+1  
y = y+1  
choose A  
endif  
SetPixel(x,y)  
endwhile  
11  
(c) SE/FIT/HUT 2002  
B¾t ®Çu  
Gii thut  
Bresenham's Midpoint  
x = x1 ;  
y = y1;  
dx = x2 - x1;  
dy = y2 - y1;  
d = dy - dx/2;  
Putpixel (x ,y);  
<= 0  
No  
d = d + dy - dx  
y = y + 1  
x = x + 1  
yes  
d = d + dy  
yes  
x < x2  
no  
KÕt thóc  
12  
(c) SE/FIT/HUT 2002  
Sinh đường tròn  
Scan Converting Circles  
„ Explicit: y = f(x)  
y = ± R2 x2  
Usually, we draw a quarter circle by  
incrementing x from 0 to R in unit steps  
and solving for +y for each step.  
„ Parametric:  
x = Rcosθ  
y = Rsinθ  
„ Implicit: f(x) = x2+y2-R2  
If f(x,y) = 0 then it is on the circle.  
f(x,y) > 0 then it is outside the circle.  
f(x,y) < 0 then it is inside the circle.  
13  
(c) SE/FIT/HUT 2002  
Midpoint Circle Algorithm  
„ Sdng phương pháp biu din không  
tường minh trong gii thut  
„ Thc hin gii thut trên 1/8 đường  
tròn và ly đối xng xho các góc còn  
li.  
„ Vi di là giá trca đường tròn ti  
mt đim bt kta có  
14  
(c) SE/FIT/HUT 2002  
Midpoint Circle Algorithm  
„ As with the line, we determine the value of the decision variable by  
substituting the mid-point of the next pixel into the implicit form of the  
circle:  
2
1
2
2
2
(
)
d = x +1 + y r  
i
i
i
„ If di < 0 we choel B  
„ Note: we currently assume the circle is centered at the origin  
15  
(c) SE/FIT/HUT 2002  
Midpoint Circle Algorithm  
d = 1-r  
x = 0  
y = r  
initialisation  
stop at diagonal end of octant  
while y < x  
if d < 0 then  
d = d+2*x+3  
x = x+1  
choose A  
else  
d = d+2*(x-y)+5  
x = x+1  
y = y-1  
choose B  
endif  
xy
endwhile  
Translate to the circle center  
16  
(c) SE/FIT/HUT 2002  
Scan Converting Ellipses  
F(x, y) = b2 x2 + a2 y2 a2b2 = 0  
„ 2a is the length of the major axis along the x axis.  
„ The midpoint can also be applied to ellipses.  
in the first quadrant, the other three quadrants can be drawn  
by symmetry  
17  
(c) SE/FIT/HUT 2002  
Scan Converting Ellipses: Algorithm  
A
M
B
tiep tuyen = -1  
gradient  
B
C
M
i
„ Firstly we divide the quadrant into two regions  
„ Boundary between the two regions is  
„ the point at which the curve has a slope of -1  
magnitude  
grad F(x,
y
) =F/xi+F/
y
j
=2b2xi+2a2
y
j  
18  
(c) SE/FIT/HUT 2002  
Ellipses: Algorithm (cont.)  
„ At the next midpoint, if a2(yp-0.5)<=b2(xp+1), we switch region 1=>2  
„ In region 1, choices are E and SE  
„ Initial condition: dinit = b2+a2(-b+0.25)  
„ For a move to E, d= d+Deltawith Delta= b2(2xp+3)  
„ For a move to SE, dnew = dold+DeltaSE with  
DeltaSE = b2(2xp+3)+a2(-2yp+2)  
„ In region 2, choices are S and SE  
„ Initial condition: dinit = b2(xp+0.5)2+a2((y-1)2-b2)  
„ For a move to S, dnew = dold+Deltas with Deltas = a2(-2yp+3)  
„ For a move to SE, d= d+Deltawith  
DeltaSE = b2(2xp+2)+a2(-2yp+3)  
„ Stop in region 2 when the y value is zero.  
19  
(c) SE/FIT/HUT 2002  
Ký tBitmap  
„ Trên cơ sỏ định nghĩa mi ký tvi  
mt font chư cho trước là mt  
bitmap chnht nhỏ  
„ Font/typeface: set of character  
shapes  
„ fontcache  
„ các ký ttheo chui liên tiếp nhau trong  
bnhớ  
„ Dng cơ bn  
ab  
„ (thường N, nghiêng I, đậm B, nghiêng  
đậm B+I)  
„ Thuc tính  
„ Also colour, size, spacing and  
orientation  
20  
(c) SE/FIT/HUT 2002  
Tải về để xem bản đầy đủ
pdf 28 trang yennguyen 13/04/2022 3720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Đồ họa hiện thực ảo - Bài 2: Các giải thuật sinh các thực thể cơ sở - Lê Tấn Hùng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_do_hoa_hien_thuc_ao_bai_2_cac_giai_thuat_sinh_cac.pdf