77范文网 - 专业文章范例文档资料分享平台

《虚拟现实与系统仿真》实验指导书- 修订(2)

来源:网络收集 时间:2019-01-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

m_hRC=NULL;

右击属性 消息按钮 选择WM_SIZE 添加

void COpenGLPlatView::OnSize(UINT nType, int cx, int cy) 函数中添加代码 //添加新的代码开始 CClientDC dc(this);

wglMakeCurrent(dc.m_hDC,m_hRC); glLoadIdentity(); double d=10; double n=100;

glOrtho(-cx/n,cx/n,-cy/n,cy/n,-d,d); glMatrixMode(GL_MODELVIEW); glViewport(0,0,cx,cy); wglMakeCurrent(NULL,NULL); glMatrixMode(GL_PROJECTION);

5.在OpenGLPlatView.cpp中OnDraw函数中添加以下代码:

void CMy1View::OnDraw(CDC* pDC) // 把 ”/*pDC*/” 改成 pDC {

SwapBuffers(pDC->m_hDC);

wglMakeCurrent(NULL,NULL);

// TODO: 在此处为本机数据添加绘制代码 wglMakeCurrent(pDC->m_hDC,m_hRC); glClearColor(1.0f,1.0f,1.0f,1.0f); glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity();

glColor3f(1.0f,0.0f,0.0f);

glRotated(60.0,1.0,1.0,1.0); //茶壶 auxWireTeapot(3.0);

COpenGLPlatDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc)

return;

五:实验结果

实验二OpenGL基本图形元素和模型变换

一:实验目的

1. 掌握二次曲面的绘制函数及其应用方法。 2. 掌握基本实体模型的绘制函数及其应用方法。

二:实验内容

1. 学习二次曲面的绘制函数及其应用方法。 2. 学习基本实体模型的绘制函数及其应用方法。

三:实验背景知识

OpenGL提供了二次曲面和基本实体模型的绘制函数及其应用方法。这些二次曲面和基本实体模型在OpenGL内部实现中实际上也是将它们离散分割成为大量的多边形,然后通过绘制多边形的方法实现对这些二次曲面和基本实体模型的绘制。

四:实验程序

实验步骤1~4与上述实验1相同

5在OpenGLPlatView.cpp中OnDraw函数中添加以下代码:

wglMakeCurrent(pDC->m_hDC,m_hRC); glMatrixMode(GL_MODELVIEW);

//二次曲面

glColor3f(1.0f,0.0f,0.0f);

GLUquadric* qd=gluNewQuadric();//创建二次曲面对象

gluQuadricDrawStyle(qd,GLU_FILL);//设置二次曲面对象绘制模式GLU_LINE;GLU_SILHOUETTE;GLU_POINT

glLoadIdentity();

glRotated(-105.0,1.0,0.0,0.0); glTranslated(-6.0,0.0,-2.0);

gluCylinder(qd,2.0,1.0,4.0,30,4);//(圆台,下底面半径,上底面半径,圆台高度,绕z轴分割瓣数,绕z轴方向层数)

glLoadIdentity();

glTranslated(6.0,0.0,-2.0);

gluDisk(qd,1.0,2.0,30,4);//平面圆盘(,内圆半径,外圆半径,扇形瓣数,环的个数) //...

gluPartialDisk(qd,1.0,2.0,10,4,0,75);//拱状图形(,内圆半径,外圆半径,扇形瓣数,环的个数,起始角,图形张开的角度) //...

//gluSphere(qd,2.0,30,6);//球(,球的半径,分割的瓣数,分割的层次)

//auxSolidTetrahedron(4.0);//实体模型auxWireTeapot(4.0);auxSolidTeapot(4.0);

//auxWireSphere(3.0);auxSolidSphere(3.0); //auxWireCube(4.0);auxSolidCube(4.0);

//auxWireBox(3.0,4.0,5.0);auxSolidBox(3.0,4.0,5.0); //auxWireTorus(1.0,3.0);//圆环auxSolidTorus(1.0,3.0); //auxWireCylinder(2.0,4.0);auxSolidCylinder(2.0,4.0);

//auxWireIcosahedron(4.0);auxSolidIcosahedron(4.0);//二十面体

//auxWireOctahedron(4.0);auxSolidOctahedron(4.0);//八面体 //auxWireTetrahedron(4.0);auxSolidTetrahedron(4.0);//四面体 //auxWireDodecahedron(4.0);auxSolidDodecahedron(4.0);//十二面体 //auxWireCone(2.0,4.0);auxSolidCone(2.0,4.0);//圆锥体

SwapBuffers(pDC->m_hDC); //双缓冲

wglMakeCurrent(NULL,NULL);

实验三 光照与材质

一:实验目的:

1. 掌握利用OpenGL编写绘制具有真实感效果的图形方法。 2. 掌握添加光源和设置颜色材料属性的方法。

二:实验内容:

1. 掌握添加光源的实现方法。 2. 掌握设置颜色和材料属性的方法。

三:实验要求

通过本实验,掌握添加光源和设置颜色材料属性的方法,利用OpenGL编写绘制具有真实感效果的图形。

四:实验程序

实验步骤1~4与上述实验1相同

5在OpenGLPlatView.cpp中OnDraw函数中添加以下代码:

wglMakeCurrent(pDC->m_hDC,m_hRC);

glClearColor(1.0f,1.0f,1.0f,1.0f); glClearDepth(1.0);

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS);

//设置模型变换矩阵

glMatrixMode(GL_MODELVIEW); glLoadIdentity();

GLfloat light_position[]={1.0f,1.0f,1.0f,0.0f}; GLfloat light_ambient[]={0.2f,0.2f,0.2f,0.2f}; GLfloat light_diffuse[]={0.5f,0.5f,0.2f,0.2f}; GLfloat light_specular[]={0.5f,0.5f,0.5f,0.2f};

//设置光源参数

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《虚拟现实与系统仿真》实验指导书- 修订(2)在线全文阅读。

《虚拟现实与系统仿真》实验指导书- 修订(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/460374.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: