Tải bản đầy đủ (.doc) (11 trang)

Trình bày thuật toán về Elipse Midpoint ứng dụng xây dựng và cài đặt chương trình pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (725.38 KB, 11 trang )

GV : V TT THNG NHểM 25
Trờngđạihọcđiệnlựchànội

Báo cáo kỹ thuật đồ họa máy tính
Trình bày thuật toán vẽ Ellipse midpoint,
ứng dụng xây dựng và cài đặt
ch ơng trình vẽ ellipse
- 2012-
Giáo viên h ớng dẫn: Vũ Tất Thắng
Nhóm thực hiện : Nhóm 25
Lớp : D6LT CNTT
GV : VŨ TẤT THẮNG NHÓM 25
Mục lục
Mục lục 2
A. LỜI MỞ ĐẦU 3
B. PHẦN NỘI DUNG 4
1. Giải thuật Midpoint vẽ elip 4
2. Lưu đồ 6
3. Ứng dụng thuật giải midpoint vào xây dựng chương trình vẽ ellipse 7
4. Kết quả chạy chương trình 10
GV : VŨ TẤT THẮNG NHÓM 25
A. LỜI MỞ ĐẦU



     !"# $ %&  '  ()  
*    +, " -. */0.12


-2!'00-!31456%&-
2.   !' 7    &  8) 8)  * 


/)!95:;-<=4-
“Kỹ thuật đồ
họa”!'7
 

    2   )->  
7"9!,
?5>"9@?.0A*!"#4
"9B!.5,C"D%,-C
,!()*5>!"#)-*1B=E"C5
"C%FG-VŨ TẤT THẮNG, 0A!'!"#/H0
8)AC5:*I)4!-28)J1
G-=K"*15:J4."C18)-/
JG-!'>)
L)*=)M
N
/5$>0OCG
P.=Q.>$)1 0A5):9
8).0A!'!(RS=J-)4TA5A
%.$%&HM-%!U"D=TA5AVWU%O
!':X5%,/(*/$9> J
/0A5TQ ()/)5 !Y.>0A
4!"#5 Z[G-J,
CHÚNG EM XIN CHÂN THÀNH CÁM ƠN!
GV : VŨ TẤT THẮNG NHÓM 25
B. PHẦN NỘI DUNG
1. Giải thuật Midpoint vẽ elip
M-"DTA!,!"#*/8)1:(5:\2!
$,0
E  !U  !

  A  >
0]*1
5  !"9  
J)  %^  A
 G"
$    S /
,  "D  =
A M
:  ,  !  J
&C  J
&PJ%"C
%,5)_
`a/)bH c;J>A
dbH ceJ
f
H
f
g
f
-
f
h
f
J
f
ea/)bH c;>A
ia/)bH c;J>A
*Ý tưởng của giải thuật:
AG,!jD!%:/)-/CA
J;klb\D%AJ;lcS,O$HJ/>D

,O$-J/>DHm'-C,!%:
!"9!YJ7$%Hn%-edHnd-o! dHd-
!,>GdbH cAHA-_dHefJ
f
HQd-ef
f
-S,
pG!"#1)4W%"D"T!"9Q!'
=J-_
•SGl_q156!'T!"#!bH



c=H!Y!
/A>Ar6>J"CglSULs/G
8)-/!Y$6>!"#2AYdbH cA,
!t)!SL_
%

edbH

gl.-

huceJ
f
bH

glc
f
g

f
b-

huc
f
h
f
J
f
bJ/Gc
g/)%

va)!t;!"9Q⇒!!"#L
x
T
S
O
y
x
i
x
i+1
y
i -1
y
i
U
V
Q
x

j
x
j+1
y
j -1
y
j
Part 1
Part 2
b
b
(x/a)
2
+ (y/b)
2
= 1
GV : VŨ TẤT THẮNG NHÓM 25
g/)%

`a)!t;!"9Q⇒!!"#S
s/GJ"C/A_
%
gl
edbH
gl
gl.-
gl
huceJ
f
bH

gl

glc
f
g
f
b-
gl
huc
f
h
f
J
f

wG>J/GJ"C_
%
gl
h%

eJ
f
xbH
gl
glc
f
hbH

glc
f

yg
f
xb-
gl
huc
f
hb-

huc
f
y
<=H
gl
eH

gl> 0)>"5)_
%
gl
h%

efJ
f
H
gl
gJ
f
g
f
xb-
gl

huc
f
hb-

huc
f
y
g/)!!"#Sb%

`ac=-
gl
e-


⇒%
gl
e%

gfJ
f
H
gl
gJ
f
b= d
i
+ fx + b
2
c
g/)!!"#Lb%


vac=-
gl
e-

gl
%
gl
e%

gfJ
f
H
gl
gJ
f
hf
f
-
gl
b= d
i
+ fx + b
2
– fy)
qY*7,J/G_
⇒%
l
edba.JceJ
f

g
f
bJhuc
f
h
f
J
f
eJ
f
z
f
Jg
f
n{
•SGf_S2"D"Gloq1561H
!Y,!bH
|gl

|gl
cJ"C|glr6>}U<q~
)!}<~! ~;-;A5T8)-/!Y
!<-!}s/G!"#2J;Y
dbH c,!~"5)_
A
|
edbH
|
gu.-
|

hlceJ
f
bH
|
guc
f
g
f
b-
|
hlc
f
h
f
J
f
bs/Gc
g/)A
|
va!!"#}
g/)A
|
`a!!"#<
qYJ/GJ"C/A_
A
|gl
edbH
|gl
gu.-
|gl

hlceJ
f
bH
|gl
guc
f
g
f
b-
|gl
hlc
f
h
f
J
f

YJ/GJ"C>/_b0Z
-
|gl
e-

hlc
A
|gl
hA
|
eJ
f
xbH

|gl
guc
f
hbH
|
guc
f
yg
f
xb-
|gl
hlc
f
hb-
|
hlc
f
y
eJ
f
xbH
|gl
guc
f
hbH
|
guc
f
yhf
f

-
|gl
g
f
g/)!!"#}$A
|
va=H
|gl
eH
|

⇒A
|gl
eA
|
hf
f
-
|gl
g
f
b= e
j
– fy + a
2
c
g/)!!"#<$A
|
`a=H
|gl

eH
|
gl
⇒A
|gl
eA
|
gfJ
f
H
|gl
hf
f
-
|gl
g
f
b= e
j
+ fx – fy + a
2
c
qY*7,J/GGf&)Y2
):OGlb156bH
*

*
c~! _
BEGIN
p=p+8B

2
x+12B
2
;
(A
2
+B
2
)x
2
≤ A
4
p = 4B
2
– 4A
2
B + A
2
x = 0; y = B;
Put4pixel(x,y,color);
p < 0
p=p+8B
2
x – 8A
2
y+8A
2
+12B
2
;

y=y – 1;
x = x + 1;
Put4pixel(x,y,color);
p=p+8B
2
x+8B
2
– 8A
2
y + 12A
2
;
x = x + 1;
y ≥ 0
p < 0
p=p–8A
2
x + 12A
2
;
y = y –1;
Put4pixel(x,y,color);
END
N
o
Yes
Yes Yes
Yes
N
o

N
o
N
o
LƯU ĐỒ ELLIP
GV : VŨ TẤT THẮNG NHÓM 25
A
l
edbH
*
gu.-
*
hlceJ
f
bH
*
gucg
f
b-
*
hlc
f
h
f
J
f

Chú ý: J/**/0Gl)-8)Gf0
A%•!%:/)-/CAA!,>GdH.d-"
!' "!'=)_

H
gl
eH

glUH
gl
eH

-
gl
e-

U-
gl 
e-

hl5)-!,
>G5T!"#44>fJ
f
dHUf
f

d-
2. Lưu đồ
GV : VŨ TẤT THẮNG NHÓM 25
3. Ứng dụng thuật giải midpoint vào xây dựng chương trình vẽ
ellipse
#include <graphics.h>
#include <conio.h>
#include <dos.h>

#dene ROUND(a) ((long)(a+0.5))
void plot(int xc, int yc, int x, int y, int color){
putpixel(xc+x, yc+y, color);
putpixel(xc-x, yc+y, color);
putpixel(xc+x, yc-y, color);
putpixel(xc-x, yc-y, color);
}
void Mid_ellipse(int xc, int yc, int a, int b, int color){
long x, y, fx, fy, a2, b2, p;
x = 0;
y = b;
a2 = a * a; //a2
b2 = b * b; // b2
fx = 0;
fy = 2 * a2 * y; // 2a2y
plot(xc, yc, x,y, color);
p = ROUND(b2-(a2*b)+(0.25*a)); // p=b2 - a2b + a2/4
GV : VŨ TẤT THẮNG NHÓM 25
while (fx < fy){
x++;
fx += 2*b2; //2b2
delay(50);
if (p<0)
p += b2*(2*x +3); // p=p + b2 (2x +3)
else{
y ;
p+= b2*(2*x +3) + a2*(-2*y +2); // p = p + b2(2x +3) + a2 (-2y
+2)
fy -= 2*a2; // 2a2
}

plot(xc, yc, x, y, color);
}
p = ROUND(b2*(x+0.5)*(x+0.5) + a2*(y-1)*(y-1) -
a2*b2);//b2(x+1/2)2+a2(y-1)2 - a2b2
while (y>0)
{
y ;
fy -= 2*a2; // 2a2
delay(50);
if (p>=0)
GV : VŨ TẤT THẮNG NHÓM 25
p+=a2*(3 - 2*y); //p =p + a2(3-2y);
else{
x++;
fx += 2*b2; // 2b2
p += b2*(2*x+2) + a2*(-2*y +3); //p=p + b2(2x +2) +a2(-2y +3)
}
plot(xc, yc, x, y, color);
}
}
void main(){
int gr_drive = DETECT, gr_mode;
initgraph(&gr_drive, &gr_mode, "D:\\TC\\BGI");
Mid_ellipse(getmaxx() / 2, getmaxy() / 2, 150, 80, 4);
getch();
closegraph();
}
GV : VŨ TẤT THẮNG NHÓM 25
4. Kết quả chạy chương trình
Hình ảnh 1:


Hình ảnh 2:
GV : VŨ TẤT THẮNG NHÓM 25
Hình ảnh 3:

×