
Chương 6: Đồ họa trong C
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Chương 6: Đồ họa trong C Ch−¬ng 6 : ®å ho¹ trong c §1. Kh¸i niÖm chung Turbo C cã kho¶ng 100 hµm ®å ho¹ . C¸c hµm nµy ®−îc chia lµm hai kiÓu : Lo¹i theo kiÓu v¨n b¶n ( vÝ dô hµm t¹o cöa sæ ) Lo¹i theo kiÓu ®å ho¹ §2. Hµm theo kiÓu v¨n b¶n C¸c hµm nµy ®−îc dïng víi mµn h×nh ®¬n s¾c hay mµn h×nh ®å ho¹ . Ta ph¶i ®Æt vµo®Çu ch−¬ng tr×nh dßng #include .1. Cöa sæ : Môc ®Ých cña c¸c hµm ®å ho¹ theo kiÓu v¨n b¶n lµ t¹o ra c¸c cöa sæ . Cöa sæ lµvubgf h×nh ch÷ nhËt trªn mµn h×nh dïng ®Ó giíi h¹n vïng xuÊt d÷ liÖu . NÕu ta so¹n th¶ov¨n b¶n trong cöa sæ th× con nh¸y chØ di chuyÓn trong ph¹m vi cña cöa sæ chø kh«ng ph¶itoµn bé mµn h×nh . Ta xÐt mét ch−¬ng tr×nh t¹o ra cöa sæ vµ ®iÒn ®Çy vµo ®ã dßng “ Xinchao “Ch−¬ng tr×nh 6-1 :#include #include #define left 10#define top 8#define right 52#define bot 21void main() { int i; clrscr(); window(left,top,right,bot); textcolor(RED); textbackground(GREEN); for (i=0;i cputs(string) ®Ó ®Æt chuçi string trong mét cöa sæ . Khi gÆp biªn cña cöa sæ chuçi sÏ®−îc xuèng dßng . Mµu trong chÕ ®é ®å ho¹ ®−îc quy ®Þnh nh− sau : Sè Mµu 0 BLACK 1 BLUE 2 GREEN 3 CYAN 4 RED 5 MAGENTA 6 BROWN 7 LIGHTGRAY 8 DARKGRAY 9 LIGHTBLUE 10 LIGHTGREEN 11 LIGHTCYAN 12 LIGHTRED 13 LIGHTMAGENTA 14 YELLOW 15 WHITE2. Dêi chç v¨n b¶n : Muèn dêi chç mét vïng h×nh ch÷ nhËt cña v¨n b¶n tõ n¬i nµy sang n¬ikh¸c ta dïng hµm movetext() . Ta xÐt ch−¬ng tr×nh sau t¹o ra mét cöa sæ , ®iÒn ®Çy cöa sæb»ng mét ®o¹n v¨n b¶n vµ dêi cöa sæ sang vÞ trÝ kh¸c trªn mµn h×nhCh−¬ng tr×nh 6-2 :#include #include #define left 26#define top 7#define right 65#define bot 20#define desleft 1#define destop 1#define numcolor 16void main() { int i; clrscr(); window(left,top,right,bot); textbackground(GREEN); for (i=0;i getche(); } Hµm movetext(x1,y1,x2,y2,x0,y0) dïng di chuyÓn cöa sæ x1,y1,x2,y2 ®Õn vÞ trÝ míimµ to¹ ®é gãc trªn tr¸i b©y giê lµ x0,y0 .3.L−u tr÷ vµ phôc håi mµn h×nh v¨n b¶n : Ta cã thÓ l−u tr÷ mét vïng v¨n b¶n h×nh ch÷nhËt trªn mµn h×nh vµ sau ®ã phôc håi l¹i t¹i mét vÞ trÝ nµo ®ã trªn mµn h×nh . Nhê vËy ta cãthÓ t¹o mét cöa sæ nhá trªn ®Çu v¨n b¶n hiÖn hµnh . Ta xÐt vÝ dô sauCh−¬ng tr×nh 6-3 :#include #include #define left 1#define top 1#define right 80#define bot 25int buf[80][25];void main() { int i,x,y; clrscr(); for (i=0;i -1 LASTMODE KiÓu v¨n b¶n tr−íc ®ã 0 BW40 §en tr¾ng 40 cét 1 C40 Mµu 40 cét 2 BW80 §en tr¾ng 80 cét 3 C80 Mµu 80 cét 7 MONO §¬n s¾c 80 cét §3. C¸c hµm ®å ho¹1. Khëi t¹o kiÓu ®å ho¹ : §Ó khëi t¹o ®å ho¹ ta dïng hµm initgraph() ®−îc khai b¸o tronggraphics.h víi có ph¸p : void far initgraph(int *graphdrive , int *graphmode , char *path);víi c¸c biÕn graphdrive chøa tr×nh ®iÒu khiÓn ®å ho¹ graphmode kiÓu ®å ho¹ path ®−êng dÉn ®Õn th− môc chøa c¸c drive ®å ho¹ . Trong phÇn nµy ta ph¶idïng hai dÊu \\ v× dÊu \ ®· ®−îc dïng cho kÝ tù escape . §Ó thuËn tiÖn ta khëi t¹o ®å ho¹ tù ®éng b»ng c¸ch viÕt : graphdrive = detect; initgraph(graphdrive , graphmode , path);Ta cã ch−¬ng tr×nh vÏ ®−êng th¼ng vµ ®−êng trßn nh− sau :Ch−¬ng tr×nh 6-4 :#include #include void main() { int gd,gm; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); line(0,0,100,100); circle(100,100,50); getche(); closegraph(); }2. Lçi ®å ho¹ : §Ó biÕt lçi ®å ho¹ ta dïng hµm int far graphresult(void) . Sau khi biÕt m· lçita chuyÓn nã sang cho hµm grapherrormsg() . Hµm nµy tr¶ vÒ con trá chØ ®Ðn lçi . Sau ®©y lµch−¬ng tr×nh minh ho¹Ch−¬ng tr×nh 6-5 :#include #include #include #include void main() { int gd,gm,ge; char *ep; gd=DETECT; initgraph(&gd,&gm,c:\\bc\\bgi); ge=graphresult(); 63 if (ge) { printf(Ma loi %d,ge); ep=grapherrormsg(ge); puts(ep); getch(); exit(1); } line(0,0,100,100); circle(100,100,50); getche(); closegraph(); }3. §−êng th¼ng vµ mµu s¾c : §Ó thiÕt lËp d¹ng , mÉu vµ bÒ dµy cña ®−êng th¼ng ta dïnghµm void far setlinestyle(int style,int pattern, int thickness) . Tham biÕn style cã thÓ lµ : TrÞ H»ng Y nghÜa 0 SOLID_LINE §−êng ®Æc 1 DOTTED_LINE §−êng chÊm 2 CENTER_LINE §−êng g¹ch 3 DASHED_LINE §−êng g¹ch dµi 4 USERBIT_LINE §−êng tù t¹oTham biÕn thickness cã thÓ nh©n mét trong hai gi¸ trÞ sau : TrÞ H»ng Y nghÜa 1 NORM_WIDTH d·y 1 ®iÓm ¶nh 2 THICK_WIDTH d·y 3 ®iÓm ¶nh§Ó x¸c ®Þnh mµu cho ®−êng th¼ng ta dïng hµm void setcolor(int color) . ...
Tài liệu có liên quan:
-
52 trang 465 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 366 0 0 -
96 trang 333 0 0
-
74 trang 329 0 0
-
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 318 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 317 1 0 -
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 303 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 300 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 292 0 0 -
64 trang 290 0 0
-
Bài giảng An toàn và bảo mật thông tin - Trường đại học Thương Mại
31 trang 271 0 0 -
47 trang 261 0 0
-
LUẬN VĂN: TÌM HIỂU PHƯƠNG PHÁP HỌC TÍCH CỰC VÀ ỨNG DỤNG CHO BÀI TOÁN LỌC THƯ RÁC
65 trang 260 0 0 -
Giáo trình Hệ điều hành: Phần 2
53 trang 254 0 0 -
Đề tài : Tính toán, thiết kế chiếu sáng sử dụng phần mềm DIALux
74 trang 237 0 0 -
63 trang 230 0 0
-
Giáo trình Autocad - Nghề: Quản trị mạng máy tính - Trình độ: Cao đẳng nghề (Phần 2)
52 trang 229 0 0 -
83 trang 227 0 0
-
69 trang 225 0 0
-
Các phương pháp nâng cấp cho Windows Explorer trong Windows
5 trang 224 0 0