code đồ thị bằng opengl

96
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO BÀI TẬP LỚN MÔN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP 3 HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL. Giảng viên hướng dẫn: ThS. Vũ Minh Yến Nhóm thực hiện: NHÓM 7 – HTTT- K5 Thành viên: Phan Thanh Tú Trần Danh Đô Lê Ngc Qunh

Upload: banh-my

Post on 13-Apr-2015

275 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Code đồ thị bằng OpenGL

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

----------

BÁO CÁO BÀI TẬP LỚN

MÔN ĐỒ HỌA MÁY TÍNH

ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP 3 HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL.

Giảng viên hướng dẫn: ThS. Vũ Minh Yến

Nhóm thực hiện: NHÓM 7 – HTTT- K5

Thành viên: Phan Thanh Tú

Trần Danh Đô

Lê Ngoc Quynh

Hà Nội ngày 6/8/2012

Page 2: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

BÁO CÁO BÀI TẬP LỚN

MÔN ĐỒ HỌA MÁY TÍNH

ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ HỌC SINH CẤP 3 HỌC KHẢO SÁT VÀ VẼ ĐỒ THỊ HÀM SỐ BẰNG OPENGL.

Giảng viên hướng dẫn: ThS. Vũ Minh Yến

Nhóm thực hiện: NHÓM 7 – HTTT- K5

Thành viên: Phan Thanh Tú

Trần Danh Đô

Lê Ngoc Quynh

NHOM 7_H3TK5

Lơi mơ đâ u

1

Page 3: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

Trong thơi đai phat triên cua ngành công nghê thông tin ngày nay, viêc ưng dung công nghê thông tin và cuôc sông co vai tro vô cung y nghia gop phần tich cưc xây dưng một xa hội hiên đai, sanh vai vơi cac nươc hiên đai trên thê giơi . Ngành đô hoa may tinh là một linh vưc trong công nghe thông tin đang đươc phat triên một cach manh me, trong đo co viêc ưng dung công nghê ve 3D trong xây dưng cac đô thi hiên đai, hương tơi một tương lai hiên đai phat triên. Không nhưng thê, đô hoa may tinh con đươc ưng dung trong game 3D, một loai hinh giai tri thinh hành trong thâp niên chúng ta. Và ưng dung này giơ đây cung đươc ap dung trong viêc hoc tâp cua hoc sinh, sinh viên, là một công cu manh me hô trơ cho viêc day hoc cua thầy cô và hoc sinh, sinh viên, nâng cao kêt qua day và hoc cua thầy và tro. Nhân đê tà bài tâp lơn đô hoa may tinh “ Xây dưng phân mêm hô trơ hoc sinh câp 3 hoc khao sat va ve đô thi ham sô băng opengl” nhom 19_HTTT_k5 chúng em vơi 3 thành viên trong nhom đa tich cưc tim hiêu vê opengl. OpenGl là một bộ phân mơi cua đô hoa may tinh nhưng tinh năng cua no vô cung manh me trong công viêc phac hoa và ve 3D. No đươc đanh gia cao trong viêc lâp trinh 3D. Qua thơi gian nghiên cưu và tim hiêu cua cac thành viên trong nhom vê đô hoa 3D opengl, chúng em đa co thê hiêu cơ ban vê opengl và co thê lâp trinh căn ban opengl trong đê tài cua nhom. Tuy co tim hiêu và hoc hoi nhưng opengl là một chương trinh mơi la so vơi kiên thưc đa hoc trên lơp, co nhiêu phần chúng em cung chưa ro nên lâp trinh con sơ sài, thiêu sot, mong cô và cac ban đong gop y kiên đê đê tài trơ nên hoàn chinh và cung là cơ hội cho cac ban hoc hoi, đúc kêt thêm kho tàng kiên thưc cua minh.

Chung em xin chân thanh cam ơn!!

Nhom 7_HTTT_K5

NỘI DUNG VÀ YÊU CẦU CỦA ĐỀ TÀI

2

Page 4: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

1. Nội dung

Xây dưng phần mêm hô trơ hoc sinh cấp 3 hoc khao sat và ve đô thi hàm

sô.

Yêu cầu :

Môi thành viên phai hiêu và phân tich đươc toàn bộ đê tài đa làm

cua nhom.

Ngôn ngư lâp trinh đươc ap dung : DEV C++

2. Chức năng cua phần mềm

Giúp khao sat 2 hàm cơ ban trong chương trinh cấp 3

+ Hàm đa thưc bâc 2: y=ax2 + bx2 + c (a#0)

+ Hàm đa thưc bâc 3: y=ax3 +bx2 + cx + d (a#0)

+ Hàm đa thưc bâc 4( trung phương): y=ax4 + bx2 + c (a#0)

Ngươi dung chi viêc kich chuột phai và chon loai hàm đa thưc

nào( co trong menu) và phần mêm se tư động khao sat và ve bang biên

thiên và đô thi hàm sô.

Phâ n 1. Giơi thiê u vê OPENGL.

I. Tim hiêu về Opengl

3

Page 5: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

1.Lịch Sử Phát Triên :

Nguyên thuy, GL do Silicon Graphics Incorporated (SGI) thiêt kê đê dung cho cac tram làm viêc (workstation) đô hoa IRIS cua ho. IRIS GL vơi cac cấu hinh phần cưng khac thi co vấn đê phat sinh.

OpenGL là kêt qua nổ lưc cua SGI nhằm cai thiên tinh tương thich cua IRIS GL. Ngôn ngư mơi này co kha năng cua GL, đông thơi “mơ “ nghia là dễ dàng tương thich vơi cac loai cấu hinh phần cưng, cung như cac hê điêu hành khac nhau. Version1.0 cua OPENGL đươc giơi thiêu vào ngày 01/7/1992.

Đê bao đam tinh “mơ “, moi sư nâng cấp OpenGL phai thông qua Uy Ban Xem Xét Kiên Trúc OpenGL(OpenGL Architecture Review Board AEB) gôm cac thành viên sang lâp là SGI, Digittal Equipment Corporation, IBM , Intel và Microsoft.ARB hơp môi năm hai lần. Open GL version1.1 đươc ARB thông qua vào thang 12/1995.

2. Opengl la gi?

Đươc phat triên đầu tiên bơi Silicon Graphic, Inc., là một giao diên phần phần mêm hương thu tuc theo chuẩn công nghiêp hộ trơ đô hoa 3 chiêu. Cung cấp khoang 120 tac vu đê ve cac primitive trong nhiêu mode khac nhau. Vơi OpenGL, ban co thê tao ra anh 3 chiêu ca tinh và động vơi chất lương cao.

Là một giao diên phần mêm độc lâp vơi phần cưng (hardware – independent software interface) hộ trơ cho lâp trinh đô hoa. Đê làm đươc điêu này, OpenGL không thưc hiên cac tac vu thuộc vê hê điêu hành cung như không nhân dư liêu nhâp cua ngươi dung (ngươi dung giao tiêp vơi OpenGL thông qua OpenGL API). No là lơp trung gian giưa ngươi dung và phần cưng. Nghia là no giao tiêp trưc tiêp vơi driver cua thiêt bi đô hoa.

3. Các ham cơ ban trong OpenGL

Trong Opengl cac hàm đươc băt đầu bằng GL nằm trươc tên hàm

void glutInit(int *argc, char **argv);

Khơi động GLUT , argc, argv là 2 đôi sô dong lênh cua hàm main

void glutInitWindowPosition(int x, int y);

4

Page 6: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

Khơi tao vi tri băt đầu cửa sổ, x là left of the screen, y là top of the screen, noi chung đây là điêm bên trai, phia trên cua cửa sổ, từ đây ta kéo xuông phia dươi, bên phai là đươc 1 cửa sổ . Đơn vi cua x, y là pixel.

void glutInitWindowSize(int width, int height); Khơi tao kich thươc cửa sổ. vơi chiêu dài và chiêu rộng, cộng thêm 1 điêm băt đầu mơi noi ơ trên nưa, ban đa tương tương ra đc 1 cai cửa sổ chưa

void glutInitDisplayMode(unsigned int mode) Đinh nghia mode hiên thi, chi ra màu cua mode và sô + kiêu cua buffer+ GLUT_RGBA or GLUT_RGB : cửa sổ màu RGBA, đây là mode mặc đinh+ GLUT_SINGLE : cửa sổ buffer đơn+ GLUT_DOUBLE : cửa sổ buffer đôi+ GLUT_DEPTH : cửa sổ buffer sâu

int glutCreateWindow(char *title); Tao cửa sổ co tiêu đê title

void glutDisplayFunc(void (*func)(void)); Hàm này bao cho GLUT biêt phai trinh diễn theo hàm nào , đôi sô cua no là một con tro hàm tra vê kiêu void

void glutMainLoop(void) ; Cuôi cung ta phai lặp lai hàm main liên tuc đê “trinh diễn hinh anh”. Giông như ngươi ta làm phim hoat hinh đo, cac frame nôi tiêp nhau trên một màn anh. Cac lênh glClearColor(), glClear(),glFush() là nhưng lênh cơ ban cua Opengl glClearColor() co nhiêm vu chon màu đê xoa window, ban dễ dàng nhân ra là no co 4 tham sô, 4 tham sô đo là RGBA( red green blue alpha).Không giông vơi hàm RGB() trong Win32 API , 4 tham sô này co gia tri trong khoang 0.0f đên 1.0f(kiêu float).Cac gia tri R,G,B trong OpenGL thi >=0.0 (không co) và <=1.0 (độ sang cưc đai). Ba tham sô đầu là màu đo xanh la cây và xanh da trơi, con tham sô thư 4 là độ sang tôi cua window.

Hàm glClear() mơi thưc sư xoa window, no co nhưng hằng sô xac đinh.Co trương hơp co nhưng hàm chưa đươc chay đên khi kêt thúc chương trinh, đê tranh trương hơp này hàm glFlush() đươc goi, no se thưc hiên tất ca cac hàm chưa đươc chay và kêt thúc chương trinh.

5

Page 7: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

Dung glClear*() đê đinh màu xoa cho cac buffer.Sau đo glClear(GLbitfied mask) đê xoa buffer tương ưng vơi maskTham sô cua hàm glClear() co thê nhân từ 1 đên 4 gia tri sau:

Buffer Name

Color buffer GL_COLOR_BUFFER_BITDepth buffer GL_DEPTH_BUFFER_BITAccumulation buffer GL_ACCUM_BUFFER_BITStencil buffer GL_STENCIL_BUFFER_BIT

Đê đinh màu xoa cho môi buffer, ta dung cac hàm glClear*() như sau: glClearColor(), glClearDepth(), glClearAccum(), glClearStencil().

Buộc việc vẽ hoàn tất

Đôi vơi cac ưng dung đô hoa chay qua mang, trong đo client chay phần chương trinh chinh và hiên thi kêt qua đên server, thương thi client se gom nhiêu lênh ve vào một packet, sau đo mơi gửi đên server. Nhưng làm sao đê client biêt đươc khi nào thi anh trên server đa ve xong và gửi tiêp packet khac? Do đo no se đơi đên khi nào packet đầy mơi gửi tiêp. Nhưng packet co thê không bao giơ đầy vi viêc ve bên client đa hoàn tất và như vây server không thấy đươc tron vein kêt qua ve OpenGL cung cấp hàm glFlush() đê chúng ta giai quyêt vấn đê này. Lênh này buộc client gửi packet ngay ca khi packet chưa đầy. Lênh này không đơi cho viêc ve hoàn tất, no buộc viêc ve phai băt đầu thưc hiên và do đo đam bao tất ca cac lênh trươc đo thưc hiên trong một thơi gian giơi han. Nêu may chay local thi ta không cần dung lênh này.

Một lênh khac cung gần giông là lênh glFinish(), no thưc hiên chưc năng giông glFlush() nhưng no đơi phan hôi từ phần cưng đang ve hoặc mang đê khẳng đinh viêc ve đa hoàn tất. Lênh này hưu dung khi ta muôn đông bộ hoa cac phần ve. Vi du ta muôn một phần nào đo ve hoàn tất xong thi mơi thưc hiên cac phần khac. Nhưng lam dung lênh này se làm châm chương trinh vi no phai đơi phan hôi.

Phâ n II. Code va chương tri nh cha y đô thi

6

Page 8: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

1. Code chinh chay đô thị

Dươi đây là code đê chay DTHS cần ve.

#include<windows.h>#include<gl/GL.h>#include<gl/glut.h>#include<String.h>//---------**************THIET LAP CUA SO***********-------------------------void setWindow(float left, float right, float bottom, float top){ glMatrixMode(GL_PROJECTION);// thiet lap ma tran glMatrixMode(GL_MODELVIEW); glLoadIdentity();// dua ma tran ve ma tran don vi gluOrtho2D(left,right,bottom,top);}//----------************THIET LAP KHUNG NHIN********-----------------------void setViewport(int left, int right, int bottom, int top){ glViewport(left, bottom,right-left,top-bottom);}//------------------**********VET KI TU**********-------------------------------void vediem(char*String, float x, float y){ char*c; glRasterPos2f(x,y); for (c=String; *c!= '\0';c++) { glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, *c);//--font chu HELVETICA- } glFlush();}

//---------------*************LOI MO DAU**********------------------------------

void HELLO(){ glClearColor(0.0,0.0,0.0,0.0);//---------***********XOA MAU********-------- glShadeModel(GL_SMOOTH); glColor4d(0.6,0.8,0.4,1.0);//-----*****TAO MAU CHO NET VE*********------

7

Page 9: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glClear(GL_COLOR_BUFFER_BIT);//-------******XOA MAN HINH TRONG WINDAOW***----- setWindow(-1.80,1.80,-1.80,1.80);//------******CUA SO*****-------------------- setViewport(-50,600,-90,670); //------****KHUNG NHIN*****--------------------

//--------------*************CAC BUOC VE DO THI**********-------------- vediem("NHOM 19-H3TK5",-1,1); vediem("* CHAO MUNG CAC BAN DEN VOI BAI GIANG VE HAM SO.",-0.1,0.5); vediem("* BAI GIANG DUOC THUC HIEN BOI NHOM 19-H3TK5.",-0.1,0.3); vediem("* CHUC CAC BAN CO MOT BUOI HOC VUI VE.",-0.1,0.1); vediem("* XIN VUI LONG NHAP PHAI CHUOT VA CHON MUC CHO BAI HOC.",-0.1,-0.1); vediem("THANK YOU!!!",0.8,-0.8); glFlush(); }

//----------------************ CAC BUOC VE DO THI*******----------------------

void hamso0(){ glClearColor(0.0,0.0,0.0,0.0);//---------***********XOA MAU********-------- glShadeModel(GL_SMOOTH); glColor4d(0.9,0.7,0.5,0.2);//-----*****TAO MAU CHO NET VE*********------ glClear(GL_COLOR_BUFFER_BIT);//-------******XOA MAN HINH TRONG WINDAOW***----- setWindow(-1.50,1.50,-1.50,1.50);//------******CUA SO*****-------------------- setViewport(-50,600,-90,670); //------****KHUNG NHIN*****--------------------

//--------------*************CAC BUOC VE DO THI**********-------------- vediem("*____CAC BUOC VE DTHS____*",-0.7,1.0); vediem("* B1: Tim TXD cua ham so",-0.1,0.9); vediem(" - Voi ham bac 3,4 co TXD la |R",-0.1,0.8); vediem(" - Voi ham y=(ax+b)/(cx+d) thi co TXD la |R\{-d/c}",-0.1,0.7); vediem("* B2: Khao sat su bien thien cua ham so",-0.1,0.6); vediem(" . Tinh y',giai PT y'=0",-0.1,0.5); vediem(" . Tinh cac gioi han(tiem can_neu co)",-0.1,0.4);

8

Page 10: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem(" . Lap bang bien thien",-0.1,0.3); vediem(" . Tu bang bien thien suy ra",-0.1,0.2); vediem(" - Cac khoang dong bien, ngich bien cua ham so",-0.1,0.1); vediem(" - Cac diem cuc tri(neu co) cua ham so",-0.1,0.0); vediem("* B3: Ve DTHS",-0.1,-0.1); vediem(" . Tim giao diem cua DT voi truc Oy( cho x=0, tinh y",-0.1,-0.2); vediem(" . Tim giao diem cua DT voi truc Ox( cho y=0, tinh x",-0.1,-0.3); vediem(" bang cach gpt F(x)=0",-0.1,-0.4); vediem(" . Chu y den tinh doi xung cua do thi",-0.1,-0.5); vediem(" - DTHS bac 3 nhan trung diem cua cuc dai va cuc tieu ",-0.1,-0.6); vediem(" lam TDX",-0.1,-0.7); vediem(" - DTHS bac 4(trung phuong) nhan Oy lam truc DX",-0.1,-0.8); vediem(" - DTHS nhat bien nhan giao diem 2 duong tiem can ",-0.1,-0.9); vediem(" lam tam doi xung",-0.1,-1.0); vediem(" NHOM 9 - H3TK5",1.5,-1.1); glEnd(); glFlush(); } //------------------*********HAM BAC 3 *************----------------------------void hamsobac3(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG*** glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE ******* glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1);

9

Page 11: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

//-----------**************VE MUI TEN CHO DO THI**************------ glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd(); //------------******** CHIA TOA DO CHO DO THI************-------------- glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES);

10

Page 12: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES);

11

Page 13: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------------ glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******------//----------*********************DANH DAU TRUC OY**************------ vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4);

12

Page 14: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1);//------------*************DANH DAU TRUC OX*********----------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A>0 va y'=0 co nghiem kep",1.05,1); vediem("Do thi co 1 diem uon",1.05,0.9);//--------------*************CAC BUOC VE DO THI**********-------------------//----------------**********VE HAM SO************-------------------------------//----------**************NHAP DANG DO THI CAN VE*******---------------- float x=-0.45; float dx=0.0001; float a= 10; float b=0; float c=0; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.45)//------------***********CHAY DO THI*********-------------- { x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); }

13

Page 15: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glFlush(); }//------------------*********HAM BAC 3 *************----------------------------void hamsobac31(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG***** glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE ****- glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1);//-----------**************VE MUI TEN CHO DO THI**************---------- glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd();//------------******** CHIA TOA DO CHO DO THI************------------------ glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0);

14

Page 16: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0);

15

Page 17: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6);

16

Page 18: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------------ glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******------//----------*********************DANH DAU TRUC OY**************------ vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1);//------------*************DANH DAU TRUC OX*********----------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05);

17

Page 19: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A>0 va pt y'=0 vo nghiem",1.05,1); vediem("Do thi khong co diem uon",1.05,0.9);//--------------*************CAC BUOC VE DO THI**********-------------------//----------------**********VE HAM SO************-------------------------------//----------**************NHAP DANG DO THI CAN VE*******---------------- float x=-0.35; float dx=0.0001; float a= 10; float b=-2; float c=0.5; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.48)//------------***********CHAY DO THI*********-------------- { x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glFlush(); }//--------------------------------***********----------------------------------- void hamsobac32(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0);

18

Page 20: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1);//-----------**************VE MUI TEN CHO DO THI**************---------- glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd();//------------******** CHIA TOA DO CHO DO THI************------------------ glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02);

19

Page 21: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4);

20

Page 22: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------------ glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******------//----------*********************DANH DAU TRUC OY**************------ vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6);

21

Page 23: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1);//------------*************DANH DAU TRUC OX*********----------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A>0 va y'=0 co 2 nghiem phan biet",1.05,1); vediem("Do thi cat truc ox tai 3 diem phan biet",1.05,0.9);//--------------*************CAC BUOC VE DO THI**********-------------------//----------------**********VE HAM SO************-------------------------------//----------**************NHAP DANG DO THI CAN VE*******---------------- float x=-0.37; float dx=0.0001; float a= 10; float b=-4; float c=-1; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.65)//------------***********CHAY DO THI*********--------------

22

Page 24: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

{ x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glFlush(); }//----------------------------****************---------------------------------- void hamsobac33(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); //-----------**************VE MUI TEN CHO DO THI**************------ glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd(); //------------******** CHIA TOA DO CHO DO THI************--------------

23

Page 25: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd();

24

Page 26: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd();

25

Page 27: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------- glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******------ //----------*********************DANH DAU TRUC OY**************- vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); //------------*************DANH DAU TRUC OX*********------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05);

26

Page 28: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A<0 va phuong trinh y'=0 co 2 nghiem phan biet",0.8,1); vediem("Do thi cat truc ox tai 3 diem phan biet",0.8,0.9); //--------------*************CAC BUOC VE DO THI**********-------------- //----------------**********VE HAM SO************--------------------------- //----------**************NHAP DANG DO THI CAN VE*******------------ float x=-0.55; float dx=0.0001; float a= -10; float b=-1; float c=1; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.5)//------------***********CHAY DO THI*********--------------- { x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glFlush(); } void hamsobac34(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670);

27

Page 29: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG*******---------- glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE **********------- glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); //-----------**************VE MUI TEN CHO DO THI**************------ glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd(); //------------******** CHIA TOA DO CHO DO THI************-------------- glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02);

28

Page 30: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02);

29

Page 31: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0);

30

Page 32: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------- glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******------ //----------*********************DANH DAU TRUC OY**************- vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); //------------*************DANH DAU TRUC OX*********---------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A<0 va pt y'=0 co nghiem kep",1.05,1); vediem("Do thi co 1 diem uon",1.05,0.9); //--------------*************CAC BUOC VE DO THI**********-----------------

31

Page 33: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

//----------------**********VE HAM SO************----------------------------- //----------**************NHAP DANG DO THI CAN VE*******------------------ float x=-0.43; float dx=0.0001; float a=-10; float b=0; float c=0; float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.43)//------------***********CHAY DO THI*********-------------- { x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glFlush(); } void hamsobac35(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES);//--------****NOI DIEM THANH DOAN THANG*******---------- glVertex2f(0.0,0.0);//-----****DI CHUYEN DEN GOC O DE VE glVertex2f(-1.2,0.0);//----------****VE OX*****--------------------------- glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0);

32

Page 34: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.0,1.1);//------------*********VE OY**********---------------- glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); //-----------**************VE MUI TEN CHO DO THI**************------ glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); glEnd(); //------------******** CHIA TOA DO CHO DO THI************-------------- glBegin(GL_LINES);//-----------**********DANH DAU DO THI******------ glVertex2f(0.15,0);//-------********DANH DAU TRUC OX**********------- glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0);

33

Page 35: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//---------********DANH DAU TRUC OY********----- glVertex2f(0,0.2);//---------********DANH DAU TRUC DUONG OY****--- glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6);

34

Page 36: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//-------*********DANH DAU TRUC AM OY*****---- glVertex2f(0,-0.2); glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

//-----------**********DANH DAU DIEM CHO DO THI********------------------ glColor4d(0.9,0.6,0.3,0.2);//-------*****TAO MAU CHO NET VE******--------- //----------*********************DANH DAU TRUC OY**************----------- vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6);

35

Page 37: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); //------------*************DANH DAU TRUC OX*********---------------------- vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^3+BX^2+CX+D",1.05,1.1); vediem("Voi A<0 va pt y'=0 vo nghiem",1.05,1); vediem("Do thi khong co diem uon",1.05,0.9); //--------------*************CAC BUOC VE DO THI**********----------------- //----------------**********VE HAM SO************----------------------- //----------**************NHAP DANG DO THI CAN VE*******------------------ float x=-0.35; float dx=0.0001; float a=-10; float b=2; float c=-0.5;

36

Page 38: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

float d=0; float y=(a*x*x*x)+(b*x*x)+c*x+d; while(x<=0.45)//------------***********CHAY DO THI*********--------------- { x=x+dx; y=(a*x*x*x)+(b*x*x)+c*x+d; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glFlush(); } //---------------------*********HAM BAC 2*************-------------------------- void hamsobac2() { glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.8,0.3,0.2,0.6); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.5,1.5,-1.5,1.5); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(-1,0.0);//ve ox glVertex2f(0.0,0.0); glVertex2f(1,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); // ve mui ten cho do thi glVertex2f(1,0); glVertex2f(0.95,0.025); glVertex2f(1,0); glVertex2f(0.95,-0.025);

37

Page 39: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02);

38

Page 40: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glVertex2f(-0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4);

39

Page 41: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.3,0.2,0.6);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("Ox",1,-0.06); vediem("-1",-0.15,-0.05);

40

Page 42: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("Do thi ham so Y=AX^2+BX+C",1.05,1.1); vediem("Voi A>0",1.05,1); vediem("Do thi quay len phai tren oy",1.05,0.9); //Ve ham so // NHAP DANG DO THI CAN VE float x=-0.32; float dx=0.0001; float a=10; float b=0; float c=0; ; float y=(a*x*x)+(b*x)+c; while(x<=0.32)// chay do thi { x=x+dx; y=(a*x*x)+(b*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd(); glFlush(); } void hamsobac21() { glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.8,0.3,0.2,0.6); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.5,1.5,-1.5,1.5); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0);

41

Page 43: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-1,0.0);//ve ox glVertex2f(0.0,0.0); glVertex2f(1,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); // ve mui ten cho do thi glVertex2f(1,0); glVertex2f(0.95,0.025); glVertex2f(1,0); glVertex2f(0.95,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES);

42

Page 44: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES);

43

Page 45: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glVertex2f(-0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.3,0.2,0.6);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2);

44

Page 46: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("Ox",1,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("Do thi ham so Y=AX^2+BX+C",1.05,1.1); vediem("Voi A<0",1.05,1); vediem("Do thi quay xuong truc oy",1.05,0.9); //Ve ham so // NHAP DANG DO THI CAN VE float x=-0.32; float dx=0.0001; float a= -10; float b=0; float c=0; ; float y=(a*x*x)+(b*x)+c; while(x<=0.32)// chay do thi { x=x+dx; y=(a*x*x)+(b*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd(); glFlush();

45

Page 47: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

}//--------*********CAC DANG BANG BIEN THIEN CUA HAM BAC 2*******----------------

void bbt2() { glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.8,0.6,0.4,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,700,-90,600); glBegin(GL_LINES); glVertex2f(0.5,1.2); glVertex2f(-1,1.2); glVertex2f(0.5,1.2); glVertex2f(0.5,1.2); glEnd(); glBegin(GL_LINES); glVertex2f(0.5,1); glVertex2f(-1,1); glVertex2f(0.5,1); glVertex2f(0.5,1); glEnd(); glBegin(GL_LINES); glVertex2f(-1,1); glVertex2f(-1,1); glVertex2f(-1,1); glVertex2f(-1,0.5); glEnd(); glBegin(GL_LINES); glVertex2f(0.5,1); glVertex2f(0.5,1); glVertex2f(0.5,1); glVertex2f(0.5,0.5); glEnd(); glBegin(GL_LINES); glVertex2f(-1,0.5); glVertex2f(-1,0.5); glVertex2f(-1,0.5);

46

Page 48: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.5,0.5); glEnd(); glBegin(GL_LINES); glVertex2f(-1,1); glVertex2f(-1,1); glVertex2f(-1,1); glVertex2f(-1,1.2); glEnd(); glBegin(GL_LINES); glVertex2f(0.5,1); glVertex2f(0.5,1); glVertex2f(0.5,1); glVertex2f(0.5,1.2); glEnd(); glBegin(GL_LINES); glVertex2f(-0.8,1.2); glVertex2f(-0.8,1.2); glVertex2f(-0.8,1.2); glVertex2f(-0.8,0.5); glEnd(); glBegin(GL_LINES); glVertex2f(-0.7,0.9); glVertex2f(-0.7,0.9); glVertex2f(-0.7,0.9); glVertex2f(-0.3,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0.4,0.9); glVertex2f(0.4,0.9); glVertex2f(0.4,0.9); glVertex2f(-0.1,0.6); glEnd(); vediem("=>",0.6,0.8); vediem("Truong hop a>0. Ham so Y=AX^2+BX+C",0.7,0.9); vediem("Ngich bien tren khoang (- 00; -b/2a) ",0.7,0.8); vediem("Dong bien tren khoang (-b/2a; +00) ",0.7,0.7); vediem("Bang bien thien",-0.8,1.3); vediem("+00",-0.75,0.95);

47

Page 49: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("+00",0.4,0.95); vediem("(b^2-4ac)/4a",-0.33,0.55); vediem("x",-0.9,1.1); vediem("y",-0.9,0.8); vediem("(a>0)",-0.95,0.6); vediem("-00",-0.75,1.1); vediem("-b/2a",-0.25,1.1); vediem("+00",0.4,1.1); glBegin(GL_LINES); glVertex2f(-1,0.0); glVertex2f(-1,0.0); glVertex2f(-1,0.0); glVertex2f(-1,-0.7); glEnd(); glBegin(GL_LINES); glVertex2f(-1,0.0); glVertex2f(-1,0.0); glVertex2f(-1,0.0); glVertex2f(0.5,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(-1,-0.7); glVertex2f(-1,-0.7); glVertex2f(-1,-0.7); glVertex2f(0.5,-0.7); glEnd(); glBegin(GL_LINES); glVertex2f(0.5,0.0); glVertex2f(0.5,0.0); glVertex2f(0.5,0.0); glVertex2f(0.5,-0.7); glEnd(); glBegin(GL_LINES); glVertex2f(-0.8,0.0); glVertex2f(-0.8,0.0); glVertex2f(-0.8,0.0); glVertex2f(-0.8,-0.7); glEnd(); glBegin(GL_LINES);

48

Page 50: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-1,-0.2); glVertex2f(-1,-0.2); glVertex2f(-1,-0.2); glVertex2f(0.5,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(-0.7,-0.6); glVertex2f(-0.7,-0.6); glVertex2f(-0.7,-0.6); glVertex2f(-0.3,-0.3); glEnd(); glBegin(GL_LINES); glVertex2f(0.4,-0.6); glVertex2f(0.4,-0.6); glVertex2f(0.4,-0.6); glVertex2f(-0.1,-0.3); glEnd(); vediem("=>",0.6,-0.4); vediem("Truong hop a<0. Ham so Y=AX^2+BX+C",0.7,-0.3); vediem("Dong bien tren khoang (- 00; -b/2a) ",0.7,-0.4); vediem("Nhich bien tren khoang (-b/2a; +00) ",0.7,-0.5); vediem("Bang bien thien",-0.8,0.2); vediem("-00",-0.75,-0.1); vediem("+00",0.4,-0.1); vediem("(b^2-4ac)/4a",-0.33,-0.25); vediem("x",-0.9,-0.1); vediem("y",-0.9,-0.4); vediem("(a<0)",-0.95,-0.5); vediem("-00",-0.75,-0.65); vediem("-b/2a",-0.25,-0.1); vediem("-00",0.4,-0.65); glFlush(); }//--------------------*********HAM BAC 4 - TRUNG PHUONG********----------------- void hamsotrungphuong(){ glClearColor(0.0,0.0,0.0,0.0);

49

Page 51: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glShadeModel(GL_SMOOTH); glColor4d(0.8,0.6,0.4,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(-1.2,0.0);//ve ox glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); // ve mui ten cho do thi glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES);

50

Page 52: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES);

51

Page 53: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES);

52

Page 54: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.6,0.4,0.2);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^4+BX^2+C",1.05,1.1); vediem("Voi A>0 va y'=0 co 3 nghiem phan biet",1.05,1); vediem("Do thi cat truc ox tai 4 diem phan biet",1.05,0.9); vediem("Do thi quay len phia tren truc oy",1.05,0.8);

53

Page 55: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

//Ve ham so // NHAP DANG DO THI CAN VE float x=-0.66; float dx=0.0001; float a= 10; float b=-4; float c=0.1; ; float y=(a*x*x*x*x)+(b*x*x)+c; while(x<=0.66)// chay do thi { x=x+dx; y=(a*x*x*x*x)+(b*x*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd(); glFlush(); } //----------------------*********************----------------------------------- void hamsotrungphuong1(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.2,0.6,0.4,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(-1.2,0.0);//ve ox glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1);

54

Page 56: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

// ve mui ten cho do thi glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0);

55

Page 57: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8);

56

Page 58: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.6,0.4,0.2);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6);

57

Page 59: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^4+BX^2+C",1.05,1.1); vediem("Voi A<0 va y'=0 co 3 nghiem phan biet",1.05,1); vediem("Do thi cat truc ox tai 4 diem phan biet",1.05,0.9); vediem("Do thi quay xuong phia duoi truc oy",1.05,0.8); //Ve ham so // NHAP DANG DO THI CAN VE float x=-0.66; float dx=0.0001; float a= -10; float b=4; float c=-0.1; ; float y=(a*x*x*x*x)+(b*x*x)+c; while(x<=0.66)// chay do thi { x=x+dx; y=(a*x*x*x*x)+(b*x*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd();

58

Page 60: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glFlush(); } //----------------------------**********************---------------------------- void hamsotrungphuong2(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.7,0.6,0.3,0.2); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(-1.2,0.0);//ve ox glVertex2f(0.0,0.0); glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); // ve mui ten cho do thi glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02);

59

Page 61: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02);

60

Page 62: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6);

61

Page 63: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.6,0.4,0.2);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6); vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05);

62

Page 64: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^4+BX^2+C",1.05,1.1); vediem("Voi A>0 va y'=0 co 1 nghiem duy nhat",1.05,1); vediem("Do thi cat truc ox tai 2 diem phan biet",1.05,0.9); vediem("Do thi quay len phia tren truc oy",1.05,0.8); //Ve ham so // NHAP DANG DO THI CAN VE float x=-0.53; float dx=0.0001; float a=10; float b=1; float c=0; ; float y=(a*x*x*x*x)+(b*x*x)+c; while(x<=0.53)// chay do thi { x=x+dx; y=(a*x*x*x*x)+(b*x*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd(); glFlush(); } //---------------------------************************---------------------------

void hamsotrungphuong3(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.9,0.5,0.3,0.1); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(-1.2,0.0);//ve ox glVertex2f(0.0,0.0);

63

Page 65: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glVertex2f(1.2,0.0); glEnd(); glBegin(GL_LINES); glVertex2f(0.0,0.0); glVertex2f(0.0,1.1);//ve oy glVertex2f(0.0,0.0); glVertex2f(0.0,-1.1); // ve mui ten cho do thi glVertex2f(1.2,0); glVertex2f(1.15,0.025); glVertex2f(1.2,0); glVertex2f(1.15,-0.025); glVertex2f(0,1.1); glVertex2f(-0.025,1.05); glVertex2f(0,1.1); glVertex2f(0.025,1.05); // chia cac diem cho do thi glBegin(GL_LINES);//danh dau do thi glVertex2f(0.15,0);//danh dau truc ox glVertex2f(0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.3,0); glVertex2f(0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.45,0); glVertex2f(0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.6,0); glVertex2f(0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.75,0); glVertex2f(0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(0.9,0); glVertex2f(0.9,0.02);

64

Page 66: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(1.05,0); glVertex2f(1.05,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.15,0); glVertex2f(-0.15,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.3,0); glVertex2f(-0.3,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.45,0); glVertex2f(-0.45,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.6,0); glVertex2f(-0.6,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.75,0); glVertex2f(-0.75,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-0.9,0); glVertex2f(-0.9,0.02); glEnd(); glBegin(GL_LINES); glVertex2f(-1.05,0); glVertex2f(-1.05,0.02); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,0.2);//danh dau truc duong oy glVertex2f(0.02,0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.4); glVertex2f(0.02,0.4);

65

Page 67: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glEnd(); glBegin(GL_LINES); glVertex2f(0,0.6); glVertex2f(0.02,0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,0.8); glVertex2f(0.02,0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,1.0); glVertex2f(0.02,1.0); glEnd(); glBegin(GL_LINES);//danh dau do thi glVertex2f(0,-0.2);//danh dau truc am oy glVertex2f(0.02,-0.2); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.4); glVertex2f(0.02,-0.4); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.6); glVertex2f(0.02,-0.6); glEnd(); glBegin(GL_LINES); glVertex2f(0,-0.8); glVertex2f(0.02,-0.8); glEnd(); glBegin(GL_LINES); glVertex2f(0,-1.0); glVertex2f(0.02,-1.0); glEnd();

// danh dau diem cho do thi. glColor4d(0.8,0.6,0.4,0.2);// tao mau cho net ve //danh dau truc oy vediem("1",0.05,0.2); vediem("2",0.05,0.4); vediem("3",0.05,0.6);

66

Page 68: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vediem("4",0.05,0.8); vediem("5",0.05,1.0); vediem("Oy",0.07,1.05); vediem("O",0.02,-0.05); vediem("-1",0.05,-0.2); vediem("-2",0.05,-0.4); vediem("-3",0.05,-0.6); vediem("-4",0.05,-0.8); vediem("-5",0.05,-1.0); vediem("NHOM 19_HTTT_VE DTHS",0.3,-1.1); // danh dau truc ox vediem("1",0.15,-0.05); vediem("2",0.3,-0.05); vediem("3",0.45,-0.05); vediem("4",0.6,-0.05); vediem("5",0.75,-0.05); vediem("6",0.9,-0.05); vediem("7",1.05,-0.05); vediem("Ox",1.2,-0.06); vediem("-1",-0.15,-0.05); vediem("-2",-0.3,-0.05); vediem("-3",-0.45,-0.05); vediem("-4",-0.6,-0.05); vediem("-5",-0.75,-0.05); vediem("-6",-0.9,-0.05); vediem("-7",-1.05,-0.05); vediem("Do thi ham so Y=AX^4+BX^2+C",1.05,1.1); vediem("Voi A<0 va y'=0 co 1 nghiem duy nhat",1.05,1); vediem("Do thi cat truc ox tai 2 diem phan biet",1.05,0.9); vediem("Do thi quay xuong phia duoi truc oy",1.05,0.8); //Ve ham so // NHAP DANG DO THI CAN VE float x=-0.53; float dx=0.0001; float a= -10; float b=-1; float c=0; float y=(a*x*x*x*x)+(b*x*x)+c; while(x<=0.53)// chay do thi

67

Page 69: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

{ x=x+dx; y=(a*x*x*x*x)+(b*x*x)+c; glBegin(GL_POINTS); glVertex2f(x,y); glEnd(); } glEnd(); glFlush(); } //---------------------*************GOODBY*******-------------------------------

void GOODBY(){ glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_SMOOTH); glColor4d(0.6,0.8,0.4,1.0); glClear(GL_COLOR_BUFFER_BIT); setWindow(-1.50,1.50,-1.50,1.50); setViewport(-50,600,-90,670);

//--------------*************LOI CHAO**********--------------------------- vediem("NHOM 19-H3TK5",-1,1); vediem("* BAI HOC DEN DAY LA KET THUC.",-0.1,0.5); vediem("* CHAN THANH CAM ON SU QUAN TAM ",-0.1,0.3); vediem(" VA GOP Y CUA CAC BAN VA CO.",-0.1,0.1); vediem("THANK YOU!!!",0.8,-0.8); glFlush(); } //----------------**********CAC THAO TAC XU LY CHUOT**********------------------

enum {HL,CBVDT,hambacba,hambac31,hambac32,hambac33,hambac34,hambac35, hambachai,hambac21,BBT2,hamtrungphuong,hamtrungphuong1,hamtrungphuong2,hamtrungphuong3,gb,QUIT};

void menu(int k){

switch(k){

68

Page 70: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

case HL: HELLO(); break; case CBVDT: hamso0(); break;

case hambachai: hamsobac2();break;case hambac21:

hamsobac21(); break;

case BBT2: bbt2(); break; case hambacba:

hamsobac3();break;case hambac31:

hamsobac31(); break; case hambac32: hamsobac32(); break; case hambac33: hamsobac33(); break; case hambac34: hamsobac34(); break; case hambac35: hamsobac35(); break;

case hamtrungphuong: hamsotrungphuong(); break; case hamtrungphuong1: hamsotrungphuong1(); break; case hamtrungphuong2:

69

Page 71: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

hamsotrungphuong2(); break; case hamtrungphuong3: hamsotrungphuong3(); break; case gb: GOODBY(); break;

case QUIT:exit(0);defaul:break;

}

}void createMenu(){int m=glutCreateMenu(menu);glutAddMenuEntry("1.Trang chu",HL);glutAddMenuEntry("2.Cac buoc ve DTHS",CBVDT);glutAddMenuEntry("3.Vi du ham bac 2: a>0 ",hambachai);glutAddMenuEntry(" -Vi du ham bac 2: a<0 ",hambac21);glutAddMenuEntry(" -Cac dang bang bien thien ham bac 2",BBT2);glutAddMenuEntry("4.Vi du ham bac ba: - a>0 & y'=0 co nghiem kep",hambacba);glutAddMenuEntry(" -Vi du ham bac ba: a>0 & pt vo nghiem",hambac31);glutAddMenuEntry(" -Vi du ham bac ba: a>0 & pt co 2 no phan biet",hambac32);glutAddMenuEntry(" -Vi du ham bac ba: a<0 & pt co 2 no phan biet",hambac33);glutAddMenuEntry(" -Vi du ham bac ba: a<0 & pt y'=0 co nghiem kep",hambac34);glutAddMenuEntry(" -Vi du ham bac ba: a<0 & pt y'=0 vo nghiem",hambac35);glutAddMenuEntry("5.Vi du ham bac 4-trung phuong: a>0 & pt y'=0 co 3 no pb ",hamtrungphuong);glutAddMenuEntry(" -Vi du ham bac 4-trung phuong: a<0 & pt y'=0 co 3 no pb ",hamtrungphuong1);glutAddMenuEntry(" -Vi du ham bac 4-trung phuong: a>0 & pt y'=0 co 1 no",hamtrungphuong2);

70

Page 72: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

glutAddMenuEntry(" -Vi du ham bac 4-trung phuong: a<0 & pt y'=0 co 1 no",hamtrungphuong3);glutAddMenuEntry("6.end",gb);glutAddMenuEntry("7.thoat",QUIT);glutAttachMenu(GLUT_RIGHT_BUTTON);//su dung chuot phai}

int main(int agv,char **argc)//khoi dong GLUT, avg va argc la 2 doi so dong lenh cua ham main{ glutInit(&agv,argc); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);// Tao cua so mau, don, va sau. glutInitWindowPosition(50,50); glutInitWindowSize(900,590); glutCreateWindow("Ve ham so"); createMenu(); glutDisplayFunc(HELLO); glutMainLoop();// vong lap su ly su kien cua glut, giu chuong trinh luon dc hien thi. return 0;}

KÊ T QUA

71

Page 73: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

Cac ban lưa chon menu trong chương trinh và chon cac chưc năng cần thiêt.

3. Kết luận

Qua viêc nghiên cưu, thưc hiên đê tài này, nhom em đa biêt vân dung kiên

thưc hoc đươc và thưc tê cuộc sông vừa đê giúp đỡ cac em hoc sinh cấp 3 ap dung

72

Page 74: Code đồ thị bằng OpenGL

Trương ĐHCN Nhom 7_H3t_K5 Ha N iô

vào bài hoc, vừa giúp cung cô kiên thưc hoc đươc. Tuy nhiên do sư tim hiêu vê

OpenGL con đang mơi me nên trong qua trinh thưc hiên đê tài cua bon em con

nhiêu thiêu xot, rất mong nhân đươc sư đong gop cua cô và cac ban. Cuôi cung

nhom em xin chân thành cam ơn cô đa giang day và tao điêu kiên cho nhom cung

như ca lơp hoàn thành đê tài một cach thuân lơi nhất. Chúng em xin chân thành

cam ơn!

73