计算机图形学移动的光源源代码.doc

上传人:公**** 文档编号:556440847 上传时间:2023-11-24 格式:DOC 页数:3 大小:32.50KB
返回 下载 相关 举报
计算机图形学移动的光源源代码.doc_第1页
第1页 / 共3页
计算机图形学移动的光源源代码.doc_第2页
第2页 / 共3页
计算机图形学移动的光源源代码.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《计算机图形学移动的光源源代码.doc》由会员分享,可在线阅读,更多相关《计算机图形学移动的光源源代码.doc(3页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include static GLfloat xRot = 0.0f;static GLfloat yRot = 0.0f;void SetupRC()/设置光源LIGHT0的参数GLfloat light_diffuse=1.0f,1.0f,1.0f,1.0f;GLfloat light_ambient=0.0f,0.5f,0.5f,1.0f;glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse);glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient);/使光源有效

2、glEnable(GL_LIGHTING);glEnable(GL_LIGHT0);/开启深度测试glEnable(GL_DEPTH_TEST);glClearColor(0.0f, 0.0f, 0.0f,1.0f);void ChangeSize(int w, int h)GLfloat nRange = 80.0f;if(h = 0)h = 1; glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(40.0f, (GLfloat) w/(GLfloat) h, 1.0f, 20

3、.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();void RenderScene(void)glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);GLfloat position = 0.0f, 0.0f, 1.5f, 1.0f ;glPushMatrix ();glTranslatef (0.0f, 0.0f, -5.0f);glPushMatrix ();glRotated (yRot, 0.0f, 1.0f, 0.0f);glRotated (xRot, 1.0f, 0.0f, 0.0f);

4、/设置光源的位置glLightfv (GL_LIGHT0, GL_POSITION, position);glTranslated (0.0f, 0.0f, 1.5f);/绘制一个黄色的光球glDisable (GL_LIGHTING);glColor3f (1.0f, 1.0f, 0.0f);glutSolidSphere (0.1f, 50.0f, 50.0f);glEnable (GL_LIGHTING);glPopMatrix ();/设置材质属性GLfloat mat_diffuse=0.0,0.5,1.0,1.0;glMaterialfv(GL_FRONT_AND_BACK,GL_

5、DIFFUSE,mat_diffuse);glutSolidTorus (0.275, 0.85, 50, 50);glPopMatrix ();glutSwapBuffers();void SpecialKeys(int key, int x, int y)if(key = GLUT_KEY_UP)xRot-= 5.0f;if(key = GLUT_KEY_DOWN)xRot += 5.0f;if(key = GLUT_KEY_LEFT)yRot -= 5.0f;if(key = GLUT_KEY_RIGHT)yRot += 5.0f;if(key 356.0f)xRot = 0.0f;if

6、(key 356.0f)yRot = 0.0f;if(key -1.0f) yRot = 355.0f;glutPostRedisplay();int main(int argc, char* argv)glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);glutCreateWindow(移动的光源);glutReshapeFunc(ChangeSize);glutSpecialFunc(SpecialKeys);glutDisplayFunc(RenderScene);SetupRC();glutMainLoop();return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号