全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
茶壶的生成1. 配置环境:在编程之前需要加头文件.步骤:1. ylut.h复制到C:program FilesMicrosoftvisual studioVC98includeGL2. glut32.lib复制C: program FilesMicrosoftvisual studioVC98lib3. glut32.dlb复制C: windowssystem32 4. 如何把lib库文件添加到项目中 在原来的VC6开发环境中,点击菜单的project-setting,弹出项目属性对话框,然后点选link选项卡,在里面的Object/Library Modules输入要加入的lib文件名即可。2. 程序代码:/ chahu.cpp : author wangnina/studentnumber:201396052043 赵燕#include stdafx.h#include #include static double speed= 18.0; void init() /初始化背景颜色,光照,材质等 glClearColor(0.9,0.9,1,1.0); /初始背景色 /* 光照处理 */ GLfloat light_ambient = 0.0, 0.0, 0.0, 1.0 ;GLfloat light_diffuse = 1.0, 1.0, 1.0, 1.0 ;GLfloat light_specular = 1.0, 1.0, 1.0, 1.0 ;GLfloat light_position0 = 3.0, 1.0, 1.0 ,1.0 ; /定义光位置得齐次坐标(x,y,z,w),如果w=1.0,为定位光源(也叫点光源),/如果w0,为定向光源(无限光源),定向光源为无穷远点,因而产生光为 /平行光。 glLightfv(GL_LIGHT0, GL_AMBIENT , light_ambient ); /环境光 glLightfv(GL_LIGHT0, GL_DIFFUSE , light_diffuse ); /漫射光 glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); /镜面反射 glLightfv(GL_LIGHT0, GL_POSITION, light_position0); /光照位置 /* 材质处理 */ GLfloat mat_ambient = 0.0, 0.2, 1.0, 1.0 ;GLfloat mat_diffuse = 0.8, 0.5, 0.2, 1.0 ; GLfloat mat_specular = 1.0, 1.0, 1.0, 1.0 ;GLfloat mat_shininess = 100.0 ; /材质RGBA镜面指数,数值在0128范围内 glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); glEnable(GL_LIGHTING); /启动光照 glEnable(GL_LIGHT0); /使第一盏灯有效 glEnable(GL_DEPTH_TEST); /测试深度缓存 /* 其他可选项 */ / glDepthFunc(GL_LESS); /函数指定比较函数,用来比较每个引入象素的z值和深度缓存中给定的z值,只有当/激活深度检验时才执行此比较。 / glEnable(GL_CULL_FACE); /剔除多边形表面:在三维空间中,一个多边形虽然有两个面,但我们无法看见背/面的那些多边形,而一些多边形虽然是正面的,但被其他多边形所遮挡。如果将/无法看见的多边形和可见的多边形同等对待,无疑会降低我们处理图形的效率。/在这种时候,可以将不必要的面剔除。/ glCullFace(GL_FRONT); /glCullFace的参数可以是GL_FRONT,GL_BACK或者GL_FRONT_AND_BACK,分别表示/剔除正面、剔除反面、剔除正反两面的多边形。/ glEnable(GL_COLOR_MATERIAL); /材质颜色追踪当前颜色 static void Reshape(int width, int height)const float ar = (float) width / (float) height;glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); /对投影矩阵堆栈应用随后的操作。 glLoadIdentity();glFrustum(-ar, ar, -1.0, 1.0, 2.0, 10.0);glMatrixMode(GL_MODELVIEW); /对模型矩阵堆栈应用随后的操作。/glMatrixMode(GL_TEXTURE); /对纹理矩阵应用随后的操作。 glLoadIdentity(); static void key(unsigned char key, int x, int y)switch (key) case 27 : case q:exit(0);break; /按ESC键(ASCII码为27)和q键为退出 case +: /按+和-分别为增加和降低转速 if(speed1)speed=speed-1.0;break;case -:speed=speed+1.0;break; /glutPostRedisplay(); static void idle(void)glutPostRedisplay(); /标记当前窗口图象层需要重新绘制,在glutMainLoop()的事件处理循环的下一个/反复中,将调用该窗口的显示回调函数重新绘制该图层。 static void display(void)const double angle = glutGet(GLUT_ELAPSED_TIME)/speed; /调用glutInit函数后运行的时间,或者是第一次调用glutGet(GLUT_ELAPSED_TIME)/后运行的时间。 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix();glTranslated(0.0,0.0,-4.0);glRotated(angle,1,1,0);glutSolidTeapot(1.0);glPopMatrix();/glFlush();glutSwapBuffers(); /函数交换当前窗口的使用层的缓存,它将后台缓存中的内容交换到前台缓存中/如果不是使用双缓存结构的,则glutSwapBuffers()不起任何作用。 int main(int argc, char *argv)glutInit(&argc, argv);glutInitWindowSize(800,600);glutInitWindowPosition(0,0);glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);/指定RGBA模式窗口,双缓存,深度缓存 glutCr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025山东青岛融资担保集团有限公司社会招聘8人考试笔试备考试题及答案解析
- 2025年河北国际旅行卫生保健中心(石家庄海关口岸门诊部)招聘编外工作人员1名笔试考试备考试题及答案解析
- 移动办公平台实施方案
- 抽水蓄能电站电力碳足迹的计算与分析
- 质量改进技术培训方案
- 2025贵州赤水市第一医共体及赤水市中心血库招聘编外人员41人考试笔试模拟试题及答案解析
- 2025年吉安青源发展集团有限公司附下属子公司面向社会公开招聘【22人】考试笔试参考题库附答案解析
- 2025重庆铁路口岸物流开发有限责任公司招聘3人考试笔试备考试题及答案解析
- 2025年甘肃省庆阳市陇东学院考核招聘急需紧缺专业硕士研究生19人(第二期)笔试考试参考题库附答案解析
- 市政管网智能阀门与控制系统方案
- 《全现浇混凝土外墙工艺工法图集》
- 加固安全施工技术交底
- 2023年国考公务员行测真题及参考答案
- 2023年高中音乐课件我为共产主义把青春贡献-选自歌剧《江姐》
- 2023学年完整公开课版DaddyRobot
- 在劳动教育中发展小学生的初步筹划思维 论文
- 隐患排查治理培训
- 全冷轧薄板质量缺陷图谱
- 高压电动机算例
- 留人招人激励方案实用文档
- 中医药治疗带状疱疹后遗神经痛
评论
0/150
提交评论