21
ปปปปปปปปปปปปป ปปปปปปปปปปปปป ปป ปป Graphics in DOS Graphics in DOS

ปฏิบัติการที่ ๑๒

Embed Size (px)

DESCRIPTION

ปฏิบัติการที่ ๑๒. Graphics in DOS. โปรแกรมกราฟิกส์. ก่อนจะทราบคำสั่งต่างๆ ที่ใช้โปรแกรมกราฟิกส์ คงต้องมาเตรียมวัตถุดิบในที่นี้คือไฟล์ไลบรารี่ต่างๆ ที่จะช่วยเหลือให้เราสามารถเขียนโปรแกรมกราฟิกส์ได้สำเร็จ เราควรต้องตรวจสอบไฟล์ต่อไปนี้ - PowerPoint PPT Presentation

Citation preview

Page 1: ปฏิบัติการที่ ๑๒

ปฏิ�บั�ติ�การที่�� ๑๒ ปฏิ�บั�ติ�การที่�� ๑๒Graphics in DOSGraphics in DOS

Page 2: ปฏิบัติการที่ ๑๒

โปรแกรมกราฟิกส์�โปรแกรมกราฟิกส์�• ก�อนจะทราบคำ�าส์��งต่�างๆ ท��ใช้�โปรแกรมกราฟิกส์�

คำงต่�องมาเต่ร�ยมวั�ต่ถุ#ดิ%บในท��น�&คำ'อไฟิล์�ไล์บราร��ต่�างๆ ท��จะช้�วัยเหล์'อให�เราส์ามารถุเขี�ยนโปรแกรมกราฟิกส์�ไดิ�ส์�าเร,จ เราคำวัรต่�องต่รวัจส์อบไฟิล์�ต่�อไปน�&

1 .ไฟิล์�ไล์บราล์�ท��เราต่�องใช้�คำ'อ graphics.h ม�อย-�ในไดิเรกทอร�� “C:\<BORLAND C++ DIR>\INCLUDE\”

2. ไฟิล์�กราฟิกส์�ไดิรเวัอร� คำ'อไฟิล์�ส์ก#ล์ .BGI ม�อย-�ใน “C:\<BORLAND C++ DIR>\BGI\”

Page 3: ปฏิบัติการที่ ๑๒

วั%ธี�คำอมไพล์�แล์ะร�นโปรแกรมกราฟิกส์�วั%ธี�คำอมไพล์�แล์ะร�นโปรแกรมกราฟิกส์�• ท�าการพ%มพ�โปรแกรมกราฟิกส์�ล์งใน Editor• เล์'�อนเมาส์�ไปท��หน�าต่�าง Editor แล์�วัคำล์%กเมาส์�ขีวัา

จะมาส์ป0ดิเมน-เก%ดิขี1&นให�เล์'อก TargetExpert• เม'�อหน�าต่�าง TargetExpert ปรากฏให�ดิ-ทางซ้�าย

ม'อส์#ดิม� Target Type เล์'อก Application [.exe]

• ในช้�อง Platform ให�คำล์%กเมาส์�ท��รายการ DOS• ในกรอบ Libraries ให�คำล์%กเมาส์�ท�� BGI• คำล์%ก OK• กดิ F9 เพ'�อคำอมไพล์� แล์ะ Ctrl+F9 เพ'�อร�น

Page 4: ปฏิบัติการที่ ๑๒

ล์องคำอมไพล์�แล์ะร�นก�นเล์ยล์องคำอมไพล์�แล์ะร�นก�นเล์ย//FirstCircle.cpp#include <graphics.h>#include <conio.h>void main(){ int GrDriver=DETECT, GrMode; initgraph(&GrDriver, &GrMode, "C:\\BC5\\BGI"); setcolor(YELLOW); circle(getmaxx()/2,getmaxy()/2,getmaxy()/2); getch(); closegraph();}

Page 5: ปฏิบัติการที่ ๑๒

//DetectGraphicCard.cpp#include <graphics.h>#include <conio.h>#include <iostream.h>char *Driver[] = { "DETECT", "CGA", "MCGA", "EGA", "EGA64", "EGAMONO", "IBM8514", "HERCMONO", "ATT400", "VGA", "IBM3270"};void main(){ int GrDriver, GrMode, LoMode, HiMode; detectgraph(&GrDriver, &GrMode); getmoderange(GrDriver,&LoMode,&HiMode); clrscr(); cout << "You have " << Driver[GrDriver] << " video display card.\n"; cout << "Graphics driver mode range = " << LoMode << " to " << HiMode; getch();}

Page 6: ปฏิบัติการที่ ๑๒

//CheckError.cpp#include <graphics.h>#include <conio.h>#include <iostream.h>void main(){ int GrDriver = DETECT, GrMode, GrError; initgraph(&GrDriver, &GrMode, “/*c:\\bc5\\bgi*/”); GrError = graphresult(); if (GrError!=0) { cout << “\aGRAPHIC ERROR:” << grapherrormsg(GrError); exit(GrError); } setcolor(YELLOW); circle(getmaxx()/2,getmaxy()/2,getmaxy()/2); getch(); closegraph()}

Page 7: ปฏิบัติการที่ ๑๒

• เน'�องจากการต่รวัจส์อบขี�อผิ%ดิพล์าดิคำวัรม�ท#กโปรแกรมดิ�งน�&นขีอล์ะส์�วันขีองโปรแกรมต่�อไปน�& ดิ�วัยขี�อคำวัาม <<<check result>>> ท#กคำร�&ง

int GrDriver = DETECT, GrMode, GrError; initgraph(&GrDriver, &GrMode, “/*c:\\bc5\\bgi*/”); GrError = graphresult(); if (GrError!=0) { cout << “\aGRAPHIC ERROR:” << grapherrormsg(GrError); exit(GrError); }

Page 8: ปฏิบัติการที่ ๑๒

//AspectRatio.cpp#include <graphics.h>#include <stdlib.h>#include <conio.h>#include <iostream.h>void main(){ int XAspect, YAspect; <<<check result>>> restorecrtmode(); getaspectratio(&XAspect, &YAspect); cout << "Graph Driver = " << GrDriver << endl; cout << "Graph Mode = " << GrMode << endl; cout << "XAspect = " << XAspect << endl; cout << "YAspect = " << YAspect << endl; cout << "Aspect Ratio = " << XAspect/YAspect << endl; getch(); closegraph();}

Page 9: ปฏิบัติการที่ ๑๒

ผิล์การร�นผิล์การร�นGraph Driver = 9Graph Mode = 2Xaspect = 10000Yaspect = 10000Aspect Ratio = 1

Page 10: ปฏิบัติการที่ ๑๒

//AspectRatio.cpp#include <graphics.h>#include <stdlib.h>#include <conio.h>#include <iostream.h>void main(){ int XAspect, YAspect; <<< check result >>> setcolor(YELLOW); circle(getmaxx()/2,getmaxy()/2,getmaxy()/2); getch(); restorecrtmode(); getaspectratio(&XAspect, &YAspect); cout << "Graph Driver = " << GrDriver << endl; cout << "Graph Mode = " << GrMode << endl; cout << "XAspect = " << XAspect << endl; cout << "YAspect = " << YAspect << endl; cout << "Aspect Ratio = " << XAspect/YAspect << endl; getch(); setgraphmode(GrMode); setcolor(LIGHTRED); circle(getmaxx()/2,getmaxy()/2,getmaxy()/2); getch(); closegraph();}

Page 11: ปฏิบัติการที่ ๑๒

//SetViewport.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ int Color,rad = 50; <<<check result>>> setviewport(200,100,getmaxx()-200,getmaxy()-100,1); randomize(); do { Color = random(getmaxcolor()); setcolor(Color); circle( 200, 100, rad ); rad += 20; }while(rad < 200); getch(); closegraph();}

Page 12: ปฏิบัติการที่ ๑๒

//SetViewport.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>int RandomColor(void);void main(){ int Color = 1; <<<check result>>> setviewport(200,100,getmaxx()-200,getmaxy()-100,1); randomize(); do { Color = RandomColor(); setbkcolor(Color); delay(1000); Color = RandomColor(); setcolor(Color); circle( 100, 100, 200 ); delay(1000) }while(!kbhit()); closegraph();}

int RandomColor(void){int x; do { x = random(getmaxcolor()+1); }while (x==0); return x;}

Page 13: ปฏิบัติการที่ ๑๒

//PutGetDot.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ int Color; <<<check result>>> for(int y=0;y<=getmaxy();y++) for(int x=0;x<=getmaxx();x++) putpixel(x,y,x%16); getch(); randomize(); do { int X = random(getmaxx()), Y = random(getmaxy()); if (getpixel(X,Y)==RED) putpixel(X,Y,WHITE); }while(!kbhit()); closegraph();}

Page 14: ปฏิบัติการที่ ๑๒

//DrawPixel.cpp#include <graphics.h>#include <stdlib.h>#include <conio.h>#include <iostream.h>void main(){ int X,Y; char Ch='x'; int Color=BLACK; setbkcolor(WHITE); X=getmaxx()/2; Y=getmaxy()/2; while(Ch!=27) {

moveto(X,Y);putpixel(X,Y,Color); Ch = getch(); if(Ch==0){ // entended code Ch = getch();

switch(Ch){ case 72: --Y; if(Y<0); break; //up arrow case 80: ++Y; if(Y>getmaxy()) Y=getmaxy(); break; //down arrow case 77: ++X; if(X>getmaxx()) X=getmaxx(); break; //right case 75: --X; if(X<0) X=0; break; //left default: cout < '\a';}

} else{ switch(Ch){

case '0':Color=WHITE; break; case '1':Color=BLUE; break; case '2':Color=GREEN; break; case '3':Color=CYAN; break; case '4':Color=RED; break; case '5':Color=MAGENTA; break; case '6':Color=BROWN; break; case '7':Color=LIGHTGRAY; break; case '8':Color=LIGHTRED; break; case '9':Color=YELLOW; break; default: cout << '\a';}

} } closegraph();}

Page 15: ปฏิบัติการที่ ๑๒

//Line.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setlinestyle(SOLID_LINE, 0, THICK_WIDTH); setcolor(LIGHTBLUE); line(getmaxx()/2,0,getmaxy()/2,getmaxy()); setlinestyle(USERBIT_LINE, 0x5555, THICK_WIDTH); setcolor(WHITE); line(0,getmaxy()/2,getmaxx(),getmaxy()/2); getch(); closegraph();}

Page 16: ปฏิบัติการที่ ๑๒

//Line.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setbkcolor(WHITE); moveto(getmaxx()/2,getmaxy()/2); randomize(); do{ int LineStyle = random(4); int Thick = random(3); int Color = random(getmaxcolor()); int X = random(getmaxx()); int y = random(getmaxy()); setlinestyle(LineStyle,0,Thick); setcolor(Color); lineto(X,Y); Ch = getch(); if (Ch==0) if (getch()==27) break; }while(1); closegraph();}

Page 17: ปฏิบัติการที่ ๑๒

//Rectangle.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setbkcolor(WHITE); setcolor(RED); setlinestyle(2,0,3); rectangle(20,20,200,180); getch(); closegraph();}

Page 18: ปฏิบัติการที่ ๑๒

แบบฝึ6กห�ดิแบบฝึ6กห�ดิ• จงวัาดิเขี�ยนโปรแกรมท��ท�าการวัาดิร-ปแล์�วัม�

ล์�กษณะขีอง animation เช้�น ม�ร-ปส์��เหล์��ยมแส์ดิงส์�กระยะแล์�วัคำ�อยๆ เล์'�อนมาทางดิ�านล์�าง เช้�นน�&เป9นต่�น

Page 19: ปฏิบัติการที่ ๑๒

//Circle.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setbkcolor(WHITE); setcolor(RED); setlinestyle(2,0,3); circle(200,200,80); getch(); closegraph();}

Page 20: ปฏิบัติการที่ ๑๒

//Circle.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setbkcolor(WHITE); setcolor(RED); setlinestyle(2,0,3); arc(getmaxx()/2,getmaxy()/2,135,225,80); getch(); closegraph();}

Page 21: ปฏิบัติการที่ ๑๒

//Circle.cpp#include <iostream.h>#include <stdlib.h>#include <conio.h>#include <graphics.h>void main(){ <<<check result>>> setbkcolor(WHITE); setcolor(RED); setlinestyle(2,0,3); ellipse(getmaxx()/2,getmaxy()/2,135,225,80,100); getch(); closegraph();}