ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:43KB ,
资源ID:901442      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-901442.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(OpenGL绘制的几类三维实体.DOC)为本站会员(天***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

OpenGL绘制的几类三维实体.DOC

1、OpenGL 绘制的几类三维实体EXAM304_H/防止重复嵌入#if !defined _EXAM304_H_#define _EXAM304_H_/指定嵌入文件#include#include/宏#define RADIUS 50.0f#define SIZE 100.0f#define CONE 1#define TETRAHEDRON 2#define CUBE 3#define DODECAHEDRON 4#define ICOSAHEDRON 5#define OCTAHEDRON 6#define SPHERE 7#define TORUS 8#define TEAPOT 9#d

2、efine WIRED 10/全局变量GLboolean bWire=false;GLint nSelected=CONE;/函数原型void OnDisplay(void);void OnReshape(int,int);void OnMenu(int value);void CreateMenu();void SetupLights();#endifEXAM304.cpp#include “EXAM304.H“void main(int argc,char *argv)glutInit(glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH)

3、;glutInitWindowSize(640,480);glutInitWindowPosition(10,10);glutCreateWindow(“EXAM304“);glutCreateMenu(OnMenu);glutDisplayFunc(OnDisplay);glutReshapeFunc(OnReshape);CreateMenu();SetupLights();glutMainLoop();void OnDisplay(void)glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glEnable(GL_DEPTH_TEST);g

4、lPushMatrix();glColor3f(0.0f,1.0f,1.0f);glEnable(GL_NORMALIZE);switch(nSelected)case(CONE):if(bWire)glutWireCone(RADIUS,2*RADIUS,30,30);elseglutSolidCone(RADIUS,2*RADIUS,30,30);break;case(TETRAHEDRON):glPushMatrix();glScalef(RADIUS,RADIUS,RADIUS);if(bWire)glutWireTetrahedron();elseglutSolidTetrahedr

5、on();glPopMatrix();break;case(CUBE):if(bWire)glutWireCube(1.5*RADIUS);elseglutSolidCube(1.5*RADIUS);break;case(DODECAHEDRON):glPushMatrix();glScalef(RADIUS/2,RADIUS/2,RADIUS/2);if(bWire)glutWireDodecahedron();elseglutSolidDodecahedron();glPopMatrix();break;case(ICOSAHEDRON):glPushMatrix();glScalef(R

6、ADIUS,RADIUS,RADIUS);if(bWire)glutWireIcosahedron();elseglutSolidIcosahedron();glPopMatrix();break;case(OCTAHEDRON):glPushMatrix();glScalef(RADIUS,RADIUS,RADIUS);if(bWire)glutWireOctahedron();elseglutSolidOctahedron();glPopMatrix();break;case(SPHERE):if(bWire)glutWireSphere(RADIUS,30,30);elseglutSol

7、idSphere(RADIUS,30,30);break;case(TORUS):if(bWire)glutWireTorus(RADIUS/2,RADIUS,30,30);elseglutSolidTorus(RADIUS/2,RADIUS,30,30);break;case(TEAPOT):if(bWire)glutWireTeapot(RADIUS);elseglutSolidTeapot(RADIUS);glPopMatrix();glutSwapBuffers();/窗口尺寸变化后的回调函数void OnReshape(int w,int h)glViewport(0,0,w,h);

8、glMatrixMode(GL_PROJECTION);glLoadIdentity();float aspect=(float)h/(float)w;if(w=h)glOrtho(-SIZE,SIZE,-SIZE*aspect,SIZE*aspect,-SIZE,SIZE);elseglOrtho(-SIZE/aspect,SIZE/aspect,-SIZE,SIZE,-SIZE,SIZE);gluLookAt(10.0f,20.0f,25.0f,0.0f,0.0f,0.0f,0.0f,1.0f,0.0f);void OnMenu(int value)if(value=WIRED)bWire

9、=!bWire;elsenSelected=value;glutPostRedisplay();void CreateMenu()glutAddMenuEntry(“圆锥体“,CONE);glutAddMenuEntry(“四面体“,TETRAHEDRON);glutAddMenuEntry(“正方体“,CUBE);glutAddMenuEntry(“正十二面体“,DODECAHEDRON);glutAddMenuEntry(“正二十面体“,ICOSAHEDRON);glutAddMenuEntry(“正八面体“,OCTAHEDRON);glutAddMenuEntry(“球体“,SPHERE

10、);glutAddMenuEntry(“圆环体“,TORUS);glutAddMenuEntry(“茶壶“,TEAPOT);glutAddMenuEntry(“线框或实体“,WIRED);glutAttachMenu(GLUT_RIGHT_BUTTON);void SetupLights()GLfloat ambientLight=0.2f,0.2f,0.2f,1.0f;GLfloat diffuseLight=0.9f,0.9f,0.9f,1.0f;GLfloat specularLight=1.0f,1.0f,1.0f,1.0f;GLfloat lightPos=50.0f,100.0f,

11、80.0f,1.0f;glEnable(GL_LIGHTING);glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);glLightfv(GL_LIGHT0,GL_SPECULAR,specularLight);glLightfv(GL_LIGHT0,GL_POSITION,lightPos);glEnable(GL_LIGHT0);glEnable(GL_COLOR_MATERIAL);glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);glMaterialfv(GL_FRONT,GL_SPECULAR,specularLight);glMateriali(GL_FRONT,GL_SHININESS,100);

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。