Thông tin tài liệu
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.12 -2!'00-!31456%&- 2. !' 7 & 8) 8) * /)!95:;-<=4- “Kỹ thuật đồ họa”!'7 2 )-> 7"9!, ?5>"9@?.0A*!"#4 "9B!.5,C"D%,-C ,!()*5>!"#)-*1B=E"C5 "C%FG-VŨ TẤT THẮNG, 0A!'!"#/H0 8)AC5:*I)4!-28)J1 G-=K"*15:J4."C18)-/ JG-!'>) L)*=)M N /5$>0OCG P.=Q.>$)1 0A5):9 8).0A!'!(RS=J-)4TA5A %.$%&HM-%!U"D=TA5AVWU%O !':X5%,/(*/$9> J /0A5TQ ()/)5 !Y.>0A 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-"DTA!,!"#*/8)1:(5:\2! $,0 E !U ! A > 0]*1 5 !"9 J) %^ A G" $ S / , "D = A M : , ! J &C J &PJ%"C %,5)_ `a/)bH c;J>A dbH ceJ f H f g f - f h f J f ea/)bH c;>A ia/)bH c;J>A *Ý tưởng của giải thuật: AG,!jD!%:/)-/CA J;klb\D%AJ;lcS,O$HJ/>D ,O$-J/>DHm'-C,!%: !"9!YJ7$%Hn%-edHnd-o! dHd- !,>GdbH cAHA-_dHefJ f HQd-ef f -S, pG!"#1)4W%"D"T!"9Q!' =J-_ •SGl_q156!'T!"#!bH c=H!Y! /A>Ar6>J"CglSULs/G 8)-/!Y$6>!"#2AYdbH cA, !t)!SL_ % edbH gl.- huceJ f bH glc f g f b- huc f h f J f bJ/Gc g/)% va)!t;!"9Q⇒!!"#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;!"9Q⇒!!"#S s/GJ"C/A_ % gl edbH gl gl.- gl huceJ f bH gl glc f g f b- gl huc f h f J f wG>J/GJ"C_ % gl h% eJ f xbH gl glc f hbH glc f yg f xb- gl huc f hb- huc f y <=H gl eH gl> 0)>"5)_ % gl h% efJ f H gl gJ f g f xb- gl huc f hb- huc f y g/)!!"#Sb% `ac=- gl e- ⇒% gl e% gfJ f H gl gJ f b= d i + fx + b 2 c g/)!!"#Lb% vac=- gl e- gl % gl e% gfJ f H gl gJ f hf f - gl b= d i + fx + b 2 – fy) qY*7,J/G_ ⇒% l edba.JceJ f g f bJhuc f h f J f eJ f z f Jg f n{ •SGf_S2"D"Gloq1561H !Y,!bH |gl |gl cJ"C|glr6>}U<q~ )!}<~! ~;-;A5T8)-/!Y !<-!}s/G!"#2J;Y dbH c,!~"5)_ A | edbH | gu.- | hlceJ f bH | guc f g f b- | hlc f h f J f bs/Gc g/)A | va!!"#} g/)A | `a!!"#< qYJ/GJ"C/A_ A |gl edbH |gl gu.- |gl hlceJ f bH |gl guc f g f b- |gl hlc f h f J f YJ/GJ"C>/_b0Z - |gl e- hlc A |gl hA | eJ f xbH |gl guc f hbH | guc f yg f xb- |gl hlc f hb- | hlc f y eJ f xbH |gl guc f hbH | guc f yhf f - |gl g f g/)!!"#}$A | va=H |gl eH | ⇒A |gl eA | hf f - |gl g f b= e j – fy + a 2 c g/)!!"#<$A | `a=H |gl eH | gl ⇒A |gl eA | gfJ f H |gl hf f - |gl g f b= e j + fx – fy + a 2 c qY*7,J/GGf&)Y2 ):OGlb156bH * * 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 edbH * gu.- * hlceJ f bH * gucg f b- * hlc f h f J f Chú ý: J/**/0Gl)-8)Gf0 A%•!%:/)-/CAA!,>GdH.d-" !' "!'=)_ H gl eH glUH gl eH - gl e- U- gl e- hl5)-!, >G5T!"#44>fJ f dHUf 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> #dene 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: . 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:. ĐẦ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. e- hl5)-!, >G5T!"#44>fJ f dHUf 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
Ngày đăng: 26/06/2014, 23:20
Xem thêm: 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, 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, Giải thuật Midpoint vẽ elip, Ứng dụng thuật giải midpoint vào xây dựng chương trình vẽ ellipse