第講二維基本圖形及opengl最簡單的框架_第1頁
第講二維基本圖形及opengl最簡單的框架_第2頁
第講二維基本圖形及opengl最簡單的框架_第3頁
第講二維基本圖形及opengl最簡單的框架_第4頁
第講二維基本圖形及opengl最簡單的框架_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

可視化仿真與虛擬現(xiàn)實第3章OpenGL各庫的頭文件、庫文件和DLL文件OpenGL核心庫(GL)頭文件“GL.H”庫文件“OPENGL32.LIB”動態(tài)鏈接庫“OPENGL32.DLL”O(jiān)penGL實用庫(GLU)頭文件“GLU.H”庫文件“GLU32.LIB”動態(tài)鏈接庫“GLU32.DLL”O(jiān)penGL輔助庫(GLAUX)頭文件“GLAUX.H”庫文件“GLAUX.LIB”動態(tài)鏈接庫“GLAUX.DLL”O(jiān)penGL工具庫(GLUT)頭文件“GLUT.H”庫文件“GLUT32.LIB”動態(tài)鏈接庫“GLUT32.DLL”WGL庫:OpenGL對窗口系統(tǒng)的擴展頭文件、庫文件和動態(tài)鏈接庫都和WindowsGDI一樣,由Windows底層提供,頭文件是“WINGDI.H”只能在Windows平臺上運行OpenGL編程環(huán)境的設(shè)置圍繞著OpenGL庫的.h文件、.lib文件和.dll進行注:vs2010的.h和.lib文件應(yīng)分別放到C:\ProgramFiles\MicrosoftSDKs\Windows\v7.0A\目錄下的include\gl和lib兩個目錄中。OpenGL示例程序#include<gl/glut.h>voiddisplay(){ glClear(GL_COLOR_BUFFER_BIT);//清除場景

…… glFlush();//更新場景}voidmain(intargc,char**argv){ glutInit(&argc,argv); glutCreateWindow("simple"); glutDisplayFunc(display); glutMainLoop();}程序框架,由四句glut函數(shù)構(gòu)成二維場景的繪制主要內(nèi)容直線與曲線的繪制第二個程序框架窗口的設(shè)置二維對象空間向圖像空間的映射狀態(tài)機顏色設(shè)置線型設(shè)置編程技巧函數(shù)的封裝文件的封裝VC工程的組織練習(xí)1.二維直線的繪制voiddisplay(){glClear(GL_COLOR_BUFFER_BIT);//清除場景 glBegin(GL_LINES);

glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);

glEnd();glFlush();//更新場景}例程a1直線繪制函數(shù)不閉合折線閉合折線glBegin(GL_xxxxxx);

glVertex2f(x1,y1);glVertex2f(x2,y2);glVertex2f(x3,y3);glVertex2f(x4,y4);glVertex2f(x5,y5);glVertex2f(x6,y6);glVertex2f(x7,y7);glEnd();多組線段坐標(biāo)系例程a1曲線的繪制圓(例程a2)拋物線(例程a3)2.第二個程序框架#include<gl/glut.h>voiddisplay(){ glClear(GL_COLOR_BUFFER_BIT);//清除場景 ……

glFlush();//更新場景}voidmain(intargc,char**argv){ glutInit(&argc,argv);//1 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//2 glutInitWindowSize(400,300);//3 glutInitWindowPosition(200,100); glutCreateWindow("sample");glClearColor(0,0,0,0); gluOrtho2D(0.0,400.0,0.0,300.0);//4

glutDisplayFunc(display);//5 glutMainLoop();//6}決定了顯存中對應(yīng)的顯示區(qū)域決定顯示窗口的位置、大小和標(biāo)題用黑色清空顯示區(qū)域二維映射模式窗口設(shè)置顯示器屏幕glutInitWindowSize(500,500);glutInitWindowPosition(20,50);20500pixels500pixels由GLUT生成的窗口sampleglutCreateWindow("sample");50pixels視區(qū)設(shè)置這里的W_L,W_R,W_B,W_TW_LW_RW_BW_TgluOrtho2D(0.0,400.0,0.0,300.0);二維對象空間向圖像空間的映射4:3的視區(qū)放到1:1的窗口中,會發(fā)生什么?正常的圓與發(fā)生畸變的圓例程b1和b2心形線例程b3分形圖案例程b43.OpenGL狀態(tài)機OpenGL是一個狀態(tài)機指的是:如果設(shè)置了某種狀態(tài)(例如線寬、顏色等),在改變這種狀態(tài)的函數(shù)調(diào)用之前,這種狀態(tài)一直有效。3.1顏色的設(shè)置設(shè)置當(dāng)前顏色屬性glColor*(colorComponents)如:glColor3f(1.0,1.0,1.0);如:glColor3f(1.0,1.0,1.0,1.0);如:glcolor3i(0,255,255);任何格式指定的顏色值都要按比例轉(zhuǎn)換成特定系統(tǒng)有效位所確定的范圍中的整數(shù)為坐標(biāo)系設(shè)置顏色例程c1用彩色表現(xiàn)的分形圖案例程c23.2線型的設(shè)置設(shè)置線型:glLineStipple(GLint

factor,GLshort

pattern)設(shè)置線寬:glLineWidth(GLfloatwidth)glEnalbe(GL_LINE_STIPPLE);glLineStipple(1,0x00FF);glBegin(GL_LINES);\

glVertex2f((x1),(y1));glVertex2f((x2),(y2));glEnd()OpenGL部分狀態(tài)機 GL_CURRENT_COLOR GL_EDGE_FLAG_ARRAY_POINTER GL_MODELVIEW_MATRIX GL_PROJECTION_MATRIX GL_TEXTURE_MATRIX GL_VIEWPORT GL_DEPTH_RANGE GL_MODELVIEW_STACK_DEPTH GL_PROJECTION_STACK_DEPTH GL_TEXTURE_STACK_DEPTH GL_MATRIX_MODE GL_NORMALIZE GL_CLIP_PLANE GL_FOG_COLOR GL_FOG_INDEX GL_FOG_DENSITY GL_FOG_START GL_FOG_END GL_FOG_MODE GL_FOG GL_SHADE_MODEL GL_LIGHTING GL_COLOR_MATERIAL GL_COLOR_MATERIAL_PARAMETER GL_COLOR_MATERIAL_FACE GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_EMISSION GL_SHININESS GL_LIGHT_MODEL_AMBIENT GL_LIGHT_MODEL_LOCAL_VIEWER GL_LIGHT_MODEL_TWO_SIDE GL_CURRENT_INDEX GL_CURRENT_TEXTURE_COORDS GL_CURRENT_NORMAL GL_CURRENT_RASTER_POSITION GL_CURRENT_RASTER_DISTANCE GL_CURRENT_RASTER_COLOR GL_CURRENT_RASTER_INDEX GL_CURRENT_RASTER_TEXTURE_COORDS GL_CURRENT_RASTER_POSITION_VALID GL_EDGE_FLAG GL_VERTEX_ARRAY GL_VERTEX_ARRAY_SIZE GL_VERTEX_ARRAY_TYPE GL_VERTEX_ARRAY_STRIDE GL_VERTEX_ARRAY_POINTER GL_NORMAL_ARRAY GL_NORMAL_ARRAY_TYPE GL_NORMAL_ARRAY_STRIDE GL_NORMAL_ARRAY_POINTER GL_COLOR_ARRAY GL_COLOR_ARRAY_SIZE GL_COLOR_ARRAY_TYPE GL_COLOR_ARRAY_STRIDE GL_COLOR_ARRAY_POINTER GL_INDEX_ARRAY GL_INDEX_ARRAY_TYPE GL_INDEX_ARRAY_STRIDEGL_INDEX_ARRAY_POINTER GL_TEXTURE_COORD_ARRAY GL_TEXTURE_COORD_ARRAY_SIZE GL_TEXTURE_COORD_ARRAY_TYPE GL_TEXTURE_COORD_ARRAY_STRIDE GL_TEXTURE_COORD_ARRAY_POINTER GL_EDGE_FLAG_ARRAY GL_EDGE_FLAG_ARRAY_STRIDE

4.1函數(shù)的封裝例程c34.2文件的封裝例程c44.3VC工程的組織格式類型格式名稱存儲方式作用描述.dsw文件工作區(qū)文件文本描述工程間的關(guān)聯(lián)信息,本課程不涉及多工程.dsp文件項目文件文本描述工程中的文件組織情況,文本文件.c文件程序c語言實現(xiàn)文件文本函數(shù)代碼的實現(xiàn)部分,面向程序員.cpp文件程序C/C++實現(xiàn)文件文本函數(shù)和類的實現(xiàn)部分,面向程序員.h文件頭文件文本變量、函數(shù)和類的定義部分,面向程序員.lib文件靜態(tài)鏈接庫二進制函數(shù)和類的實現(xiàn)部分,面向機器。程序運行時就被放到內(nèi)存中.dll文件動態(tài)鏈接庫二進制函數(shù)和類的實現(xiàn)部分,面向機器。函數(shù)被調(diào)用時才放到內(nèi)存中工程目錄下debug目錄下其它格式工程目錄下:ncb文件,無編譯瀏覽文件。通常較大,文件共享時可刪除。plg文件,編譯的出錯和警告信息,文件共享時可刪除。readme.txt工程中文件信息,程序員自行修改添加,可刪除Debug目錄下:exe文件,執(zhí)行文件。交作業(yè)時可刪除除exe、lib、dll之外

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論