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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
เสนอ อาจารย์ มงคล เกตุโกมล
Advertisements

Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
ขั้นตอนวิธีและเครื่องมือในการพัฒนาโปรแกรม (ต่อ)
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
BOON Array. BOON ตัวแปรอาร์เรย์แบบหนึ่งมิติ (One Dimension) Type array_name [Nmax],…; Ex. char fname[5]; char sname[5];
Computer Programming 1 LAB Test 3
LAB # 1.
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
ฟังก์ชันควบคุมจอภาพ (Screen Control Function)
Lecture 4: ทางเลือก, เงื่อนไขของทางเลือก
ฟังก์ชัน (Function).
Structure Programming
CS Assembly Language Programming Period 37.
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
LAB # 8 Computer Programming 1
Computer Programming 1 LAB # 6 Function.
LAB # 5 Computer Programming 1 1.
LAB # 7 CASE SWITCH CONTINUE. 2 /*Program : base_num.cpp Process : display change base number of decimal,octal,hexadecimal*/ #include void main() { cout
LAB # 4.
Introduction to C Programming.
Week 15 C Programming.
คำสั่งเพื่อการกำหนดเงื่อนไข
การแสดงผล และการรับข้อมูล
รับและแสดงผลข้อมูล.
โครงสร้างภาษาซี.
Lab 5: คำสั่ง switch - case
บรรยายครั้งที่ 3: Queue
บรรยายครั้งที่ 2: Stack
คำสั่งวนซ้ำ (Looping)
การรับข้อมูลเบื้องต้นโดยใช้ฟังก์ชั่น scanf
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
Functions Standard Library Functions User-defined Functions.
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
เขียนโปรแกรมด้วย microC
หน่วยที่ 8 อาร์กิวเมนต์ของ main
ตัวอย่างโปรแกรมคำนวณหาพื้นที่สี่เหลี่ยม
Chapter 2 Introduction to The C++ Language. Figure 2-1.
Lecture 4 องค์ประกอบภาษา C To do: Hand back assignments
การทดลองที่ 9 Loops (วงวน) การทดลองที่ 9 Loops (วงวน)
อาร์เรย์ หรือแถวลำดับ (Array)
แอพเพล็ตเบื้องต้น (Applet)
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
การสร้างฟังก์ชั่นเพื่อพัฒนาโปรแกรม Interactive C
การใช้งาน Dev C ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
Nattapong Songneam BankAccount – Example Nattapong Songneam
การประมวลผลสายอักขระ
การเขียนโปรแกรมประยุกต์ใช้งาน
Debugging in VC Computer Programming for Engineers.
#include #define N 5 void main() { inti, X[N]; for (i=0; i < N; i++) { /* รับข้อมูล */ printf(“Enter number : ”); scanf(“%d”, &X[i] ); } for (i=0; i
คำสั่งเกี่ยวกับการรับ และแสดงผล
คำสั่งควบคุม (Control Statements)
บทที่ 2 การวิเคราะห์อัลกอริทึม
1 สตริง (String) การประกาศค่าตัวแปรสตริง การกำหนดค่าสตริง การอ้างอิงตัวอักษรแต่ละตัวในสตริง ฟังก์ชั่นที่ใช้ในการจัดการสตริง ฟังก์ชั่นในการเปลี่ยนรูปแบบของสตริง.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
Operator of String Data Type
Chapter 5 Elementary C++ Programming Dept of Computer Engineering Khon Kaen University.
โครงสร้างการทำงานแบบวนซ้ำ
โปรแกรม ภาษา C ภาษาซี (C Language) เป็นภาษาหนึ่งสำหรับเขียนโปรแกรมคอมพิวเตอร์   พัฒนาขึ้นโดยนายเดนนิส  ริทชี่ (Dennis Ritche)  ในปี ค.ศ. 1972  เพื่อสร้างระบบปฏิบัติการยูนิกซ์
บทที่ 5 การจัดเตรียมเครื่องมือในการพัฒนาโปรแกรม
การเขียนโปรแกรมด้วยภาษา C
โครงสร้างการทำงานแบบเรียงลำดับ
การควบคุมการทำงานด้วยภาษา C
หลักการเขียนโปรแกรมภาษาซี
introduction to Computer Programming
การรัน-การใช้ IntelliSense-แก้ข้อผิดพลาด
แผนการจัดตั้งคลินิกหมอครอบครัวจังหวัดสตูล ปี
ตัวแปรชนิดพอยเตอร์ (Pointer)
ใบสำเนางานนำเสนอ:

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

โปรแกรมกราฟิกส์ ก่อนจะทราบคำสั่งต่างๆ ที่ใช้โปรแกรมกราฟิกส์ คงต้องมาเตรียมวัตถุดิบในที่นี้คือไฟล์ไลบรารี่ต่างๆ ที่จะช่วยเหลือให้เราสามารถเขียนโปรแกรมกราฟิกส์ได้สำเร็จ เราควรต้องตรวจสอบไฟล์ต่อไปนี้ ไฟล์ไลบราลีที่เราต้องใช้คือ graphics.h มีอยู่ในไดเรกทอรี่ “C:\<BORLAND C++ DIR>\INCLUDE\” ไฟล์กราฟิกส์ไดรเวอร์ คือไฟล์สกุล .BGI มีอยู่ใน “C:\<BORLAND C++ DIR>\BGI\”

วิธีคอมไพล์และรันโปรแกรมกราฟิกส์ ทำการพิมพ์โปรแกรมกราฟิกส์ลงใน Editor เลื่อนเมาส์ไปที่หน้าต่าง Editor แล้วคลิกเมาส์ขวาจะมาสปีดเมนูเกิดขึ้นให้เลือก TargetExpert เมื่อหน้าต่าง TargetExpert ปรากฏให้ดูทางซ้ายมือสุดมี Target Type เลือก Application [.exe] ในช่อง Platform ให้คลิกเมาส์ที่รายการ DOS ในกรอบ Libraries ให้คลิกเมาส์ที่ BGI คลิก OK กด F9 เพื่อคอมไพล์ และ Ctrl+F9 เพื่อรัน

ลองคอมไพล์และรันกันเลย //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(); }

//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(); }

//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()

เนื่องจากการตรวจสอบข้อผิดพลาดควรมีทุกโปรแกรมดังนั้นขอละส่วนของโปรแกรมต่อไปนี้ ด้วยข้อความ <<<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); }

//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(); }

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

//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; setgraphmode(GrMode); setcolor(LIGHTRED); closegraph(); }

//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(); }

//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); 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; }

//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(); }

//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 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{ 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();

//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(); }

//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(); }

//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(); }

แบบฝึกหัด จงวาดเขียนโปรแกรมที่ทำการวาดรูปแล้วมีลักษณะของ animation เช่น มีรูปสี่เหลี่ยมแสดงสักระยะแล้วค่อยๆ เลื่อนมาทางด้านล่าง เช่นนี้เป็นต้น

//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(); }

//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(); }

//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(); }