



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.2、設(shè)置視口和重載你的繪制函數(shù)NeHe SDK是把Nehe的教程中所介紹的所有功能,以面向?qū)ο蟮男问?,提供給編程人員快速開發(fā)的一套編程接口。在下面的教程中,我將按NeHe SDK源碼的功能分類,一步一步把這套api介紹給大家。如果你覺得有更好的學(xué)習(xí)方法,或者有其他有益的建議,請聯(lián)系我。zhouwei02,zhouwei506程序結(jié)構(gòu):我們在第一課程序的基礎(chǔ)上添加一下功能:1. 創(chuàng)建一個全局的視口類,控制場景中可見的范圍 2. 創(chuàng)建初始化函數(shù),用來完成繪制的初始化工作 3. 創(chuàng)建一個繪制三棱錐的函數(shù) 4. 設(shè)置默認(rèn)的視口棱臺體 5. 重栽我們的繪制函數(shù),這里將繪制一個簡單的三棱錐 為了使用視口
2、類,我們需要包含下面的頭文件(view.h),并聲明一個全局的視口變量view。/*新增的代碼:包含視口類的聲明*/#include "view.h"/ 包含視口類的聲明/*新增的代碼:包含視口類的聲明:結(jié)束*/*新增的代碼:創(chuàng)建View類*/Viewview;/ 創(chuàng)建視口類/*新增的代碼:創(chuàng)建View類:結(jié)束*/接著創(chuàng)建一個新的cpp文件,用來重栽我們的繪制函數(shù)。這里我把它命名為Draw.cpp為了使用OpenGL類和View類,我們需要包含頭文件opengl.h和view.h。為了方便起見,我們啟用NeHe名字空間。接著我們使用extern關(guān)鍵字來使用全局變量view,
3、最后我們創(chuàng)建一個變量initialize來記錄是否需要初始化。整個代碼如下:#include "opengl.h"/ 包含創(chuàng)建OpenGL程序的框架類#include "view.h"/ 包含視口類的聲明#pragma comment( lib, "NeheSDK.lib" )/ 包含NeheSDK.lib庫using namespace NeHe;/ 使用NeHe名字空間extern View view;/ 使用全局變量view類static bool initialize = true;/ 記錄是否初始化2、設(shè)置初始化函數(shù)這里我創(chuàng)
4、建一個空的初始化函數(shù),以方便以后的使用/*初始化場景*/void IniScene(OpenGL* gl, ControlData* cont)/*初始化場景:結(jié)束*/3、創(chuàng)建一個繪制三棱錐的函數(shù)我們使用標(biāo)準(zhǔn)的OpenGL代碼創(chuàng)建這個函數(shù)/*繪制三棱錐*/ 繪制三棱錐void DrawTri(void)glBegin(GL_TRIANGLES);glColor3f(1.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glColor3f(0.0f
5、,0.0f,1.0f);glVertex3f( 1.0f,-1.0f, 1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f( 1.0f,-1.0f, 1.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f( 1.0f,-1.0f, -1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f);glColor3f(0.0f,1.0f,0.0f);glVerte
6、x3f( 1.0f,-1.0f, -1.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f(-1.0f,-1.0f, -1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f( 0.0f, 1.0f, 0.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f(-1.0f,-1.0f,-1.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f, 1.0f);glEnd();/*繪制三棱錐:結(jié)束*/4、設(shè)置默認(rèn)視口棱臺體默認(rèn)的視口棱臺體的范圍是,視角45度,近
7、切面距離視點0.1,遠(yuǎn)切面距離視點100。默認(rèn)在z=0的平面上的可見范圍是,Y軸方向(-2,+2),X軸方向(-2,+2)*寬高比寬高比由窗口大小決定,如果窗口大小為800x600,則寬高比為4/3,X軸的可見范圍是(-2.67,+2.67)代碼如下:/*設(shè)置默認(rèn)視口棱臺體*/void SetDefaultView()view.Reset();/ 重置視口view.LookAt(Vector(0,0,5),Vector(0,0,0),Vector(0,1,0);/ 設(shè)定視口在(0,0,5),朝向-Z軸,上方向量為Y軸/*設(shè)置默認(rèn)視口棱臺體:結(jié)束*/5、繪制場景在這個例子里我們通過繪制一個三角形來說明這個函數(shù)。它完成一下的功能 :1. 初始化場景 2. 設(shè)置默認(rèn)的視口棱臺體 3. 調(diào)用自定義的繪制函數(shù) 代碼如下:/*繪制場景*/void DrawScene(OpenGL *gl,ControlData *cont)/ 初始化if(initialize)IniS
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級上冊數(shù)學(xué)教案 - 5.3 分餅 北師大版
- 2025年租憑合同延期申請書模板
- 五年級下冊數(shù)學(xué)教案-練習(xí)一 北師大版
- 三年級上冊語文部編版期中測試卷(含答案)
- 2024年水電站計算機監(jiān)控裝置項目資金申請報告代可行性研究報告
- 2025年濟南工程職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫含答案
- 《7 秋季星空》 教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)六年級上冊青島版
- 我為爸爸慶祝父親節(jié)教案教學(xué)設(shè)計
- 2025年廣東省建筑安全員-A證考試題庫附答案
- 2025年桂林信息工程職業(yè)學(xué)院單招職業(yè)傾向性測試題庫帶答案
- 二年級下冊美術(shù)教案-第19課 剪窗花丨贛美版
- 人保理賠員試題車險查勘定損
- 小學(xué)生寒假生活成長冊PPT
- 羅姓姓氏源流和遷徙分布
- 發(fā)展經(jīng)濟學(xué) 馬工程課件 1.第一章 發(fā)展中國家與發(fā)展經(jīng)濟學(xué)
- GB/T 25775-2010焊接材料供貨技術(shù)條件產(chǎn)品類型、尺寸、公差和標(biāo)志
- 房屋建筑學(xué)-01概論
- 2023年大唐集團(tuán)招聘筆試試題及答案新編
- 班前安全活動記錄(防水工)
- 《干部履歷表》(1999版電子版)
- 帶狀皰疹的針灸治療課件
評論
0/150
提交評論