Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
0,93 MB
Nội dung
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àythuậttoán vẽ Ellipse midpoint, ứngdụngxâydựngvàcàiđặt ch ơng trìnhvẽ 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ậtMidpointvẽ elip 4 2. Lưu đồ 6 3. Ứngdụngthuật giải midpoint vào xâydựngchươngtrìnhvẽ ellipse 7 4. Kết quả chạy chươngtrì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ậtMidpointvẽ 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. Ứngdụngthuật giải midpoint vào xâydựngchươngtrìnhvẽ 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ươngtrì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