版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、虚拟现实与与系统仿真真实验指导书书20132实验一 基基于MFCC的基本OOpenGGL应用程程序生成一:实验目目的1. 熟悉悉VC+20055集成开发发环境;2. 熟悉悉基本MFFC应用程程序的生成成;3. 掌握握基于MFFC的基本本OpennGL应用用程序生成成。二:实验内内容1. 建立立基于MFFC的基本本OpennGL应用用程序;2. 配置置应用程序序,添加OOpenGGL链接库库文件;3. 建立立OpennGL的基基本环境。三:实验背背景知识OpenGGL是一种种图形显示示软件工具具包,它为为图形硬件件提供软件件接口。OOpenGGL为计算算机动画提提供由图形形生成图像像帧的工具具。
2、MFCC提供的图图形用户界界面程序设设计技术可可以编写人人机交互程程序,OppenGLL技术可以以进行各种种图形绘制制。四:实验步步骤文件-新新建-项项目 选选择MFCC应用程序序 输入名名称OpeenGLPPlat右击项目名名,选择属属性,再选选择链接器器中的输入入选项,附附加依赖项项:opeengl332.liib; gluu32.llib ;glauux.liib3选择类类视图模式式,右击VView,再添加变量和头文文件或直接在VView头头文件中添添加变量:proteectedd:HGLRRC m_hRRC;添加包含OOpenGGL头文件件的语句:在COpeenGLPPlatVView
3、.cpp中中添加代码码#incllude #incllude #incllude 4右击属属性 消消息按钮 选择WWM_CRREATEE 添加在int COpeenGLPPlatVView:OnCCreatte(LPPCREAATESTTRUCTT lpCCreatteStrruct)函数中添添加代码/添加新新的代码开开始CClieentDCC dc(thiss); PIIXELFFORMAATDESSCRIPPTOR pfd; meemsett(&pffd,0,sizeeof(PPIXELLFORMMATDEESCRIIPTORR); pffd.nSSize=sizeeof(PPIXELLF
4、ORMMATDEESCRIIPTORR); pffd.nVVersiion=11; pffd.dwwFlaggs=PFFD_DRRAW_TTO_WIINDOWW| PPFD_SSUPPOORT_OOPENGGL| PFDD_DOUUBLEBBUFFEER; pffd.iPPixellTypee=PFDD_TYPPE_RGGBA; pffd.cCColorrBitss=24; pffd.cDDepthhBitss=32; innt piixelFFormaat=ChhooseePixeelForrmat(dc.mm_hDCC,&pffd); SeetPixxelFoormatt(dc.m_hDD
5、C,piixelFFormaat,&ppfd); m_hRC=wglCCreatteConntextt(dc.m_hDDC);retuurn 00;右击属性 消息按按钮 选选择WM_DESTTROY 添加void COpeenGLPPlatVView:OnDDestrroy()函数中添添加代码 /添加新的的代码开始始wglMaakeCuurrennt(NULLL,NULLL);wglDDeletteConntextt(m_hRRC);m_hRRC=NULLL;右击属性 消息按按钮 选选择WM_SIZEE 添加void COpeenGLPPlatVView:OnSSize(UINTT nTypp
6、e, intt cx, intt cy) 函数中添添加代码 /添加新的的代码开始始CClieentDCC dc(thiss);wglMMakeCCurreent(dc.m_hDDC,m_hRRC); gglMattrixMMode(GL_PPROJEECTIOON);glLooadIddentiity();doubble d=10;doubble n=1000;glOrrtho(-cx/n,cx/n,-cy/n,cy/n,-d,d);glMaatrixxModee(GL_MMODELLVIEWW);glViiewpoort(00,0,ccx,cy);wglMMakeCCurreent(NULL
7、L,NULLL);5.在OppenGLLPlattVieww.cppp中OnDDraw函函数中添加加以下代码码:void CMy11Vieww:OnDDraw(CDC* pDC) / 把 ”/*pDDC*/” 改成 pDCCOpeenGLPPlatDDoc* pDocc = GeetDoccumennt();ASSEERT_VVALIDD(pDocc);if (!pDooc)retturn;/ TTODO: 在此处处为本机数数据添加绘绘制代码wglMMakeCCurreent(pDC-m_hDDC,m_hRRC);glCllearCColorr(1.0ff,1.0f,1.0ff,1.0ff);
8、 gglCleearDeepth(1.0);glCllear(GL_CCOLORR_BUFFFER_BIT|GL_DDEPTHH_BUFFFER_BIT);glEnnablee(GL_CCOLORR_MATTERIAAL);glEnnablee(GL_LLIGHTTING);glEnnablee(GL_LLIGHTT0); gglEnaable(GL_AAUTO_NORMMAL);glEnnablee(GL_NNORMAALIZEE);glEnnablee(GL_DDEPTHH_TESST);glDeepthFFunc(GL_LLESS);glMaatrixxModee(GL_MMODELLV
9、IEWW);glLooadIddentiity();glCoolor33f(1.0ff,0.0ff,0.0ff);glRootateed(600.0,11.0,11.0,11.0); /茶壶auxWWireTTeapoot(3.0);SwapBBuffeers(pDC-m_hDDC);wglMMakeCCurreent(NULLL,NULLL);五:实验结结果 实验二OppenGLL基本图形形元素和模模型变换一:实验目目的1. 掌握握二次曲面面的绘制函函数及其应应用方法。2. 掌握握基本实体体模型的绘绘制函数及及其应用方方法。二:实验内内容1. 学习习二次曲面面的绘制函函数及其应应用方法。2.
10、 学习习基本实体体模型的绘绘制函数及及其应用方方法。三:实验背背景知识OpenGGL提供了了二次曲面面和基本实实体模型的的绘制函数数及其应用用方法。这这些二次曲曲面和基本本实体模型型在OpeenGL内内部实现中中实际上也也是将它们们离散分割割成为大量量的多边形形,然后通通过绘制多多边形的方方法实现对对这些二次次曲面和基基本实体模模型的绘制制。四:实验程程序 实验步骤114与上上述实验11相同5在OpeenGLPPlatVView.cpp中中OnDrraw函数数中添加以以下代码:wglMaakeCuurrennt(pDC-m_hDDC,m_hRRC);glMattrixMMode(GL_MMOD
11、ELLVIEWW); /二次曲面面glCollor3ff(1.0ff,0.0ff,0.0ff);GLUquuadriic* qqd=glluNewwQuaddric();/创建二次次曲面对象象gluQuuadriicDraawStyyle(qqd,GLLU_FIILL);/设置二二次曲面对对象绘制模模式GLUU_LINNE;GLLU_SIILHOUUETTEE;GLUU_POIINTglLoaadIdeentitty();glRottatedd(-1005.0,1.0,0.0,0.0);glTraanslaated(-6.00,0.00,-2.0);gluCyylindder(qqd,2.0,
12、1.0,4.0,300,4);/(圆台,下下底面半径径,上底面面半径,圆圆台高度,绕绕z轴分割瓣瓣数,绕zz轴方向层层数)glLoaadIdeentitty();glTraanslaated(-6.00,0.00,-2.0);gluDiisk(qqd,1.0,2.0,300,4);/平面圆圆盘(,内内圆半径,外外圆半径,扇扇形瓣数,环环的个数)/.gluPaartiaalDissk(qdd,1.00,2.00,10,4,0,75);/拱状图图形(,内内圆半径,外外圆半径,扇扇形瓣数,环环的个数,起起始角,图图形张开的的角度)/.gluSppheree(qd,2.0,30,66);/球(,球球的
13、半径,分分割的瓣数数,分割的的层次)auxSoolidTTetraahedrron(44.0);/实体模模型auxxWireeTeappot();auxxSoliidTeaapot();/auuxWirreSphhere(3.0);auxxSoliidSphhere(3.0);/auuxWirreCubbe(4.0);aauxSoolidCCube(4.0);/auuxWirreBoxx(3.00,4.00,5.00);auuxSollidBoox(3.0,4.0,5.0);/auuxWirreTorrus(11.0,33.0);/圆环环auxSSoliddToruus(1.0,3.0);/a
14、uuxWirreCyllindeer(2.0,4.0);aauxSoolidCCylinnder(2.0,4.0);/auuxWirreIcoosaheedronn(4.00);auuxSollidIccosahhedroon(4.0);/二十面面体 /auxxWireeOctaahedrron(44.0);auxSSoliddOctaahedrron(44.0);/八面面体 /auxxWireeTetrraheddron(4.0);auxxSoliidTettraheedronn(4.00);/四面体 /auxxWireeDodeecaheedronn(4.00);auuxSollidDoo
15、decaahedrron(44.0);/十二二面体 /auxxWireeConee(2.00,4.00);auuxSollidCoone(22.0,44.0);/圆锥锥体 SwaapBuffferss(pDC-m_hDDC); /双双缓冲wglMMakeCCurreent(NULLL,NULLL); 实验三 光光照与材质质一:实验目目的:1. 掌握握利用OppenGLL编写绘制制具有真实实感效果的的图形方法法。2. 掌握握添加光源源和设置颜颜色材料属属性的方法法。二:实验内内容:1. 掌握握添加光源源的实现方方法。2. 掌握握设置颜色色和材料属属性的方法法。三:实验要要求通过本实验验,掌握添添
16、加光源和和设置颜色色材料属性性的方法,利利用OpeenGL编编写绘制具具有真实感感效果的图图形。四:实验程程序实验步骤114与上上述实验11相同5在OpeenGLPPlatVView.cpp中中OnDrraw函数数中添加以以下代码:wglMaakeCuurrennt(pDC-m_hDDC,m_hRRC);glCleearCoolor(1.0ff,1.0ff,1.0ff,1.0ff);glCleearDeepth(1.0);glCleear(GL_CCOLORR_BUFFFER_BIT|GL_DDEPTHH_BUFFFER_BIT);glEnaable(GL_CCOLORR_MATTERIAAL
17、);glEnaable(GL_LLIGHTTING);glEnaable(GL_LLIGHTT0);glEnaable(GL_AAUTO_NORMMAL);glEnaable(GL_NNORMAALIZEE);glEnaable(GL_DDEPTHH_TESST);glDeppthFuunc(GL_LLESS);/设置模模型变换矩矩阵glMaatrixxModee(GL_MODEELVIEEW);glLooadIddentiity(); /设置光光源参数GLflloat lighht_poositiion=1.0f,1.0ff,1.0ff,0.0ff;GLflloat lighht_ammbi
18、ennt=0.22f,0.2ff,0.2ff,0.2ff;GLflloat lighht_diiffusse=0.55f,0.5ff,0.2ff,0.2ff;GLflloat lighht_sppecullar=0.5f,0.5ff,0.5ff,0.2ff;glLiightffv(GLL_LIGGHT0,GL_PPOSITTION,lighht_poositiion);glLiightffv(GLL_LIGGHT0,GL_AAMBIEENT,llightt_ambbientt);glLiightffv(GLL_LIGGHT0,GL_DDIFFUUSE,llightt_difffusee);gl
19、Liightffv(GLL_LIGGHT0,GL_SSPECUULAR,lighht_sppecullar);/设置置材质参数数GLflloat mateeriall_ambbientt=0.2ff,0.2ff,0.2f,0.2ff;GLflloat mateeriall_difffusee=0.2ff,0.8ff,0.4ff,0.8ff;GLflloat mateeriall_speeculaar=0.22f,0.8ff,0.4ff,0.8ff;GLflloat mateeriall_emiissioon=0.22f,0.2ff,0.2ff,1.0ff;GLflloat mateeriall
20、_shiinesss=10.00f; glMaateriialfvv(GL_BACKK,GL_AMBIIENT,mateeriall_ambbientt);/FRONNT_ANND_BAACKglMaateriialfvv(GL_BACKK,GL_DIFFFUSE,mateeriall_difffusee);glMaateriialfvv(GL_BACKK,GL_SPECCULARR,matteriaal_sppecullar);glMaateriialfvv(GL_BACKK,GL_EMISSSIONN,matteriaal_emmissiion);glMaateriialfvv(GL_BA
21、CKK,GL_SHINNINESSS,maateriial_sshineess);glCoolor33f(1.0ff,0.0ff,0.0f);/红色glRootateed(600.0,11.0,11.0,11.0);auxSoolidTTeapoot(2.0);SwappBufffers(pDC-m_hDDC); /双双缓冲wglMMakeCCurreent(NULLL,NULLL); 实验结果:实验四 纹纹理映射一:实验目目的1. 掌握握二维纹理理映射方法法。2. 掌握握利用OppenGLL编写绘制制具有真实实感效果的的图形方法法。二:实验内内容掌握二维纹纹理映射方方法。三:实验要要求通过本
22、实验验,掌握掌掌握二维纹纹理映射方方法。四:实验程程序实验步骤114与上上述实验11相同5在OpeenGLPPlatVView.cpp中中OnDrraw函数数中添加以以下代码:wglMaakeCuurrennt(pDC-m_hDDC,m_hRRC);glCllearCColorr(1.0ff,1.0ff,1.0ff,1.0ff);glCllear(GL_CCOLORR_BUFFFER_BIT|GL_DDEPTHH_BUFFFER_BIT);glEnnablee(GL_CCOLORR_MATTERIAAL);glEnnablee(GL_LLIGHTTING);glEnnablee(GL_LLIG
23、HTT0); gglEnaable(GL_AAUTO_NORMMAL);glEnnablee(GL_NNORMAALIZEE);glEnnablee(GL_DDEPTHH_TESST);glDeepthFFunc(GL_LLESS); gglMattrixMMode(GL_MMODELLVIEWW);glLooadIddentiity(); /设置光光源参数GLflloat lighht_poositiion=1.0f,1.0ff,1.0ff,0.0ff;GLflloat lighht_ammbiennt=0.22f,0.2ff,0.2ff,0.2ff;GLflloat lighht_diif
24、fusse=0.55f,0.5ff,0.2ff,0.2ff;GLflloat lighht_sppecullar=0.5f,0.5ff,0.5ff,0.2ff;glLiightffv(GL_LLIGHTT0,GL_PPOSITTION,lighht_poositiion);glLiightffv(GL_LLIGHTT0,GL_AAMBIEENT,lighht_ammbiennt);glLiightffv(GL_LLIGHTT0,GL_DDIFFUUSE,lighht_diiffusse);glLiightffv(GL_LLIGHTT0,GL_SSPECUULAR,lighht_sppecull
25、ar);/设置置材质参数数GLflloat mateeriall_ambbientt=0.2ff,0.2ff,0.2ff,0.2ff;GLflloat mateeriall_difffusee=0.2ff,0.8ff,0.4ff,0.8ff;GLflloat mateeriall_speeculaar=0.22f,0.8ff,0.4ff,0.8ff;GLflloat mateeriall_emiissioon=0.22f,0.2ff,0.2ff,1.0ff;GLflloat mateeriall_shiinesss=10.00f; glMatteriaalfv(GL_BBACK,GL_AAMB
26、IEENT,mateeriall_ambbientt);/FFRONTT_ANDD_BACCKglMaateriialfvv(GL_BBACK,GL_DDIFFUUSE,mateeriall_difffusee);glMaateriialfvv(GL_BBACK,GL_SSPECUULAR,mateeriall_speeculaar);glMaateriialfvv(GL_BBACK,GL_EEMISSSION,mateeriall_emiissioon);glMaateriialfvv(GL_BBACK,GL_SSHINIINESSS,mateeriall_shiinesss);glRoot
27、ateed(800.0,11.0,11.0,11.0);AUX_RGBIImageeRec *piccturee=auxDDIBImmageLLoad(_T(C:tsIIcon.bmp);/(此处图片片路径为CC盘根目录录下)if(ppictuure!=NULLL)glEEnablle(GL_TTEXTUURE_22D);glPPixellStorrei(GL_UUNPACCK_ALLIGNMMENT,1);glTTexImmage22D(GL_TTEXTUURE_22D,/二维纹纹理 00,/纹理层层次 33,/颜色分分量个数 ppictuure-sizeeX,/纹理宽宽度 ppictuur
28、e-sizeeY,/纹理高高度 00,/纹理边边框宽度(或或) GGL_RGGB,/像素数数据格式 GGL_UNNSIGNNED_BBYTE,/像素数数据类型 ppictuure-dataa);/存储图图象数据glTTexPaarameeterii(GL_TTEXTUURE_22D,GL_TTEXTUURE_WWRAP_S,GL_RREPEAAT);/循环glTTexPaarameeterii(GL_TTEXTUURE_22D,GL_TTEXTUURE_WWRAP_T,GL_RREPEAAT);glTTexPaarameeterii(GL_TTEXTUURE_22D,GL_TTEXTUURE_
29、MMAG_FFILTEER,GL_NNEAREEST);glTTexPaarameeterii(GL_TTEXTUURE_22D,GL_TTEXTUURE_MMIN_FFILTEER,GL_NNEAREEST);glTTexEnnvi(GL_TTEXTUURE_EENV,GL_TTEXTUURE_EENV_MMODE,GL_MMODULLATE);/GGL_DEECAL,GL_glBeegin(GL_QQUADSS);glCoolor33f(0.0,1.0,0.0);glTeexCooord2dd(-2.0,-22.0);glVeertexx3d(-2.5,-2.55,3);glTeexCoo
30、ord2dd(-2.0,2.0);gglVerrtex33d(2.5,-22.5,33);glTeexCooord2dd(2.00,2.00);gllVerttex3dd(2.55,2.55,3);glTeexCooord2dd(2.00,-2.0);gglVerrtex33d(-22.5,22.5,33);glCoolor33f(1.0,1.0,0.0);glTeexCooord2dd(0.00,0.00);gllVerttex3dd(-2.5,2.5,0);glTeexCooord2dd(0.00,1.00);gllVerttex3dd(2.55,2.55,0);glTeexCooord2
31、dd(1.00,1.00);gllVerttex3dd(2.55,2.55,3);glTeexCooord2dd(1.00,0.00);gllVerttex3dd(-2.5,2.5,3);glCoolor33f(1.0,0.0,1.0);glTeexCooord2dd(0.44,0.44);gllVerttex3dd(-2.5,-22.5,00);glTeexCooord2dd(0.44,0.66);gllVerttex3dd(-2.5,-22.5,33);glTeexCooord2dd(0.66,0.66);gllVerttex3dd(-2.5,2.5,3);glTeexCooord2dd(
32、0.44,0.44);gllVerttex3dd(-2.5,2.5,0);glEndd();SwappBufffers(pDC-m_hDDC); /双双缓冲wglMMakeCCurreent(NULLL,NULLL); 实验五 基基于OpeenGL的的动画编程程一:实验目目的1. 掌握握VC中的的文档视图图架构。2. 掌握握利用OppenGLL编写动画画效果的方方法。二:实验内内容掌握VC中中的文档视视图架构及及动画程序序编写。三:实验要要求通过本实验验,掌握利利用OpeenGL编编写动画效效果的方法法。四:实验程程序实验步骤114与上上述实验11相同5.添加SStar类类在Starr.h中添
33、添加以下代代码#praggma oncee#incllude #incllude #incllude classs Staarpubliic: Staar(vooid); int mm_n; int mm_siggn;/变形符:增加,-1:减少少 doubble mm_raddiusCCenteer; doubble mm_raddiusMMiddlle; doubble mm_raddiusCCorneer; GLflloat m_reedCennter,m_grreenCCenteer,m_blueeCentter; GLflloat m_reedMidddle,m_grreenMMidd
34、lle,m_blueeMidddle; GLflloat m_reedCorrner,m_grreenCCorneer,m_blueeCornner; GLdooublee m_aanglee;/旋转角角度 GLdooublee m_ppointt263;/每个顶顶点坐标值值 GLflloat m_coolor263;/每个顶顶点颜色值值 voidd mb_adjuustGLLfloaat(GLLfloaat& ff,GLffloatt minn,GLffloatt maxx); voidd mb_calcculattePoiint(vvoid);/计算顶顶点坐标值值 voidd mb_dra
35、ww(voiid);/绘制图图形 voidd mb_nexttFramme(vooid);/计算下下一帧publiic: SStar(voidd); 在Starr.cppp中添加以以下代码: #inncludde SStdAffx.h#incllude Staar.h/ 构造造函数:初初始化各个个成员变量量Star:Staar(vooid) mm_raddiusCCenteer=2.0; / 中心球半半径 mm_raddiusMMiddlle=2.828; / 中间球半半径,这里里2sqrtt(2)2.8228 mm_raddiusCCorneer=3.464; / 角上球半半径,这里里2sq
36、rtt(3)3.4664 mm_reddCentter=11.0f; / 中心球点点颜色 mm_greeenCeenterr=0.00f; mm_bluueCennter=1.0ff; mm_reddMidddle=00.0f; / 中间球点点颜色 mm_greeenMiiddlee=1.00f; mm_bluueMidddle=0.0ff; mm_reddCornner=00.0f; / 角上球点点颜色 mm_greeenCoornerr=0.00f; mm_bluueCorrner=1.0ff; mm_anggle=445.0; / 旋转角度度 mmb_caalcullatePPointt
37、( ); mm_n=00; / 变形计数数器 mm_siggn=1; / 变形符号号: 1: 增加; -1: 减小 / 构造函数数Starr结束/ 析构构函数Star:Sttar(vvoid) / 析构函数数Staar结束/ 值调调整函数:强制使得得参数f的的值位于区区间miin, mmax内内void Starr:mbb_adjjustGGLflooat(GGLflooat& f, GGLflooat mmin, GLflloat max) iif (ffmaxx) ff=maxx; / 函数mbb_adjjustGGLflooat结束束/ 计算算顶点的坐坐标值和颜颜色值void Starr
38、:mbb_callculaatePooint(voidd) iint ii, j; iint iid1 =00, 2, 6, 8, 11, 3, 5, 7; iint iid2 =99, 111, 144, 166, 100, 122, 133, 155; iint ssign11 =-1, 1, -1, 1, 0, -1, 1, 0; iint ssign22 = 1, 1, -1, -1, 1, 0, 0, -1; ffor (i=0, j=44; i4; ii+, j+) / 下面0.577是是“sqrtt(3)/3”的近似值值 mm_poiintiid1ii00=0.577*m_raa
39、diussCornner*ssign11i; mm_poiintiid1ii11=0.577*m_raadiussCornner*ssign22i; mm_poiintiid1ii22=0.577*m_raadiussCornner; mm_colloriid1ii00=m_redCCorneer; mm_colloriid1ii11=m_greeenCorrner; mm_colloriid1ii22=m_blueeCornner; / 下面面0.7007是“sqrtt(2)/2”的近似值值 mm_poiintiid1jj00=0.707*m_raadiussMidddle*ssign11j
40、; mm_poiintiid1jj11=0.707*m_raadiussMidddle*ssign22j; mm_poiintiid1jj22=0.707*m_raadiussMidddle; mm_colloriid1jj00=m_redMMiddlle; mm_colloriid1jj11=m_greeenMidddle; mm_colloriid1jj22=m_blueeMidddle; / for循循环结束 mm_poiint440=0.00; mm_poiint441=0.00; mm_poiint442=m_rradiuusCennter; mm_collor440=m_rredC
41、eenterr; mm_collor441=m_ggreennCentter; mm_collor442=m_bblueCCenteer; ffor (i=9; i117; ii+) mm_poiintii2=0.00; ffor (i=0, j=44; i4; ii+, j+) / 下面0.707是是“sqrtt(2)/2”的近似值值 mm_poiintiid2ii00=0.707*m_raadiussMidddle*ssign11i; mm_poiintiid2ii11=0.707*m_raadiussMidddle*ssign22i; mm_colloriid2ii00=m_redMMi
42、ddlle; mm_colloriid2ii11=m_greeenMidddle; mm_colloriid2ii22=m_blueeMidddle; mm_poiintiid2jj00=m_radiiusCeenterr*siggn1jj; mm_poiintiid2jj11=m_radiiusCeenterr*siggn2jj; mm_colloriid2jj00=m_redCCenteer; mm_colloriid2jj11=m_greeenCennter; mm_colloriid2jj22=m_blueeCentter; / for循循环结束 ffor (i=0, j=117; i
43、i9; i+, j+) mm_poiintjj0=m_ppointti0; mm_poiintjj1=m_ppointti1; mm_poiintjj2=-m_poinnti2; mm_collorjj0=m_ccolorri0; mm_collorjj1=m_ccolorri1; mm_collorjj2=m_ccolorri2; / for循循环结束 / 函数mbb_callculaatePooint结结束/ 绘制制图形void Starr:mbb_draaw(vooid) iint ii, j, k, m; iint iid38= 0, 0, 1, 44, 3, 6, 4, 88, /
44、上表表面三角形形映射关系系 3, 4, 4, 55, 6, 7, 7, 55, 4, 1, 2, 22, 4, 4, 8, 44 ; iint fface499= 0, 1, 2, 9, 110, 111, 117, 118, 119, / 侧侧面与表面面的顶点映映射关系 0, 3, 6, 9, 112, 114, 117, 220, 223, 6, 7, 8, 114, 115, 116, 223, 224, 225, 8, 5, 2, 116, 113, 111, 225, 222, 119 ; gglBeggin(GGL_TRRIANGGLES); ffor (i=0; i88; i+)
45、 / 上表表面 ffor (j=0; j33; j+) mm=idjii; gglCollor3ff (m_coloorm0, m_ccolorrm1, m_coolorm22); gglVerrtex33d(m_poinntm0, m_ppointtm1, m_poointm22); / for循循环结束 ffor (k=0; k44; k+) / 四个个侧面 ffor (i=0; i88; i+) ffor (j=0; j33; j+) mm=faccekidjii; gglCollor3ff (m_coloorm0, m_ccolorrm1, m_coolorm22); gglVerrt
46、ex33d(m_poinntm0, m_ppointtm1, m_poointm22); / for循循环结束 ffor (i=0; i88; i+) / 下表表面 ffor (j=0; jnnMax) mm_siggn=-11; iif (mm_n3360) mm_anggle=00.0; mmb_caalcullatePPointt( ); / 函数mbb_nexxtFraame结束束6在COOpenGGLPlaatVieew类开头头添加#incllude Staar.h在vieww中添加一一个WM_TIMEER函数 vooid CCOpennGLPllatViiew:OnTiimer(U
47、INTT_PTRR nIDDEvennt)/ TTODO: 在此添添加消息处处理程序代代码和/或调用默默认值 CCOpennGLPllatDooc* ppDoc=GetDDocumment(); AASSERRT_VAALID(pDocc); iif(!ppDoc) rreturrn; ppDoc-m_sstar.mb_nnextFFramee(); IInvallidatte();CVieew:OOnTimmer(nnIDEvvent);在COpeenGLPPlatDDoc类中中添加m_starr变量:publiic:Starr m_starr;7.在viiew中的的OnCrreatee函数
48、中添添加时间触触发:int CCOpennGLPllatViiew:OnCrreatee(LPCRREATEESTRUUCT lpCrreateeStruuct)if (CVieew:OnCCreatte(lpCrreateeStruuct) = -1)retturn -1;/ TTODO: 在此此添加您专专用的创建建代码. SetTTimerr(1,333,NUULL);retuurn 00;8.在viiew中的的OnDeestrooy函数中中添加代码码:KillTTimerr(1);9.在OppenGLLPlattVieww.cppp中OnDDraw函函数中添加加以下代码码void CMy
49、44Vieww:OnDDraw(CDC* pDC)CMy44Doc* pDooc = GetDDocumment();ASSEERT_VVALIDD(pDocc);if (!pDDoc)retturn;wglMMakeCCurreent(pDC-m_hDDC,m_hRRC);glCllearCColorr(1.0ff,1.0ff,1.0ff,1.0ff);glCllear(GL_CCOLORR_BUFFFER_BIT|GL_DDEPTHH_BUFFFER_BIT);glEnnablee(GL_CCOLORR_MATTERIAAL);glEnnablee(GL_LLIGHTTING);glEnn
50、ablee(GL_LLIGHTT0); gglEnaable(GL_AAUTO_NORMMAL);glEnnablee(GL_NNORMAALIZEE);glEnnablee(GL_DDEPTHH_TESST);glDeepthFFunc(GL_LLESS); gglMattrixMMode(GL_MMODELLVIEWW); gglLoaadIdeentitty(); /设置光光源参数GLflloat lighht_poositiion=1.0f,1.0ff,1.0ff,0.0ff;GLflloat lighht_ammbiennt=0.22f,0.2ff,0.2ff,0.2ff;GLflloat lighht_diiffusse=0.55f,0.5ff,0.2ff,0.2ff;GLflloat lighht_sppecullar=0.5f,0.5ff,0.5ff,0.2ff;glLiightffv(GL_LLIGHTT0,GL_PPOSITTION,lighht_poositiion);glLiightffv(GL_LLIGHTT0,GL_AAMBIE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沪科版八年级物理全一册《第三章光的世界》单元检测卷及答案
- 利用元数据促进数据共享协作
- 苏教版五年级下册课内阅读25篇、及课外阅读材料(含答案)
- 2024高中地理第四章区域经济发展章末整合学案新人教版必修3
- 2024高中生物第5章生态系统及其稳定性第1节生态系统的结构课堂演练含解析新人教版必修3
- 2024高中语文第二单元第7课陆文学自传课时作业含解析粤教版选修唐宋散文蚜
- 2024高考地理一轮复习第十六章第1讲资源的跨区域调配-以我国西气东输为例教案含解析新人教版
- 2024高考历史一轮复习方案专题九走向世界的资本主义市场第22讲“蒸汽”的力量与走向整体的世界教学案+练习人民版
- 2024高考地理一轮复习第一部分自然地理-重在理解第二章地球上的大气第6讲冷热不均引起大气运动学案新人教版
- (3篇)2024年幼儿园园长年度考核表个人总结
- 南京市劳动合同书(全日制文本)
- 生物化学课件
- 内蒙古自治区巴彦淖尔市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- (精选word)洪恩识字-生字卡片1-200
- 课文背书统计表
- 三年级语文下册教案-14 蜜蜂3-部编版
- 苏教版小学数学四年级下册全册教案
- 药理治疗中枢神经系统退行性疾病药.pptx
- 强三基反三违除隐患促安全百日专项行动实施方案
- 新人教版七年级数学上册全册专项训练大全
- 标准预防--ppt课件
评论
0/150
提交评论