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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(计算机图形学实验_透视茶壶源代码.doc)为本站会员(yjrm16270)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

计算机图形学实验_透视茶壶源代码.doc

1、#include#include#includeusing namespace std;float fTranslate;float fRotate;float fScale=1.0f;/set inital scale value to 1.0fbool bPersp=false;bool bAnim=false;bool bWire=false;int wHeight=0;int wWidth=0;/todo/hint:some additional parameters may needed here when you operate the teapotvoid Draw_Leg()g

2、lScalef(1,1,3);glutSolidCube(1.0f);/glutWireCone(1.0f);/定义操作茶壶的操作参数int tx=1;int ty=0;int tz=0;int tangle=90;/定义设置 scale 的参数float sx=0.3f;float sy=0.3f;float sz=0.3f;void Draw_Scene()glPushMatrix();glTranslatef(0,0,5);glRotatef(tangle,tx,ty,tz);/ glutSolidTeapot(1);glutSolidSphere(1.0f,10,10);glPopMa

3、trix();glPushMatrix();glTranslatef(0,0,3.5);glScalef(5,4,1);glutSolidCube(1.0);glPopMatrix();/leg1glPushMatrix();glTranslatef(1.5,1,1.5);Draw_Leg();glPopMatrix();/leg2glPushMatrix();glTranslatef(-1.5,1,1.5);Draw_Leg();glPopMatrix();/leg3glPushMatrix();glTranslatef(1.5,-1,1.5);Draw_Leg();glPopMatrix(

4、);/leg4glPushMatrix();glTranslatef(-1.5,-1,1.5);Draw_Leg();glPopMatrix();void updateView(int width,int height)glViewport(0,0,width,height);/reset the current viewportglMatrixMode(GL_PROJECTION);/select the projection matrixglLoadIdentity();/reset the projection matrixfloat whRatio=(GLfloat)width/(GL

5、float)height;if(bPersp)/todo when poperation ,hint:use function glupersPectiveelseglOrtho(-3,3,-3,3,-100,100);glMatrixMode(GL_MODELVIEW);/select the modelview matrixvoid reshape(int width,int height)if(height=0)/prevent a divide by zero byheight=1;wHeight=height;wWidth=width;updateView(wHeight,wWidt

6、h);void idle()glutPostRedisplay();float eye=0,0,8;float center=0,0,0;/todo:hint:you may need another array when you operate the teapotvoid key(unsigned char k,int x,int y)switch(k)case 27:case q:exit(0);break;case p:bPersp=!bPersp;updateView(wHeight,wWidth);break;case :bAnim=!bAnim;break;case o:bWir

7、e=!bWire;break;case a:center0=center0+1;break;/todo ,hint:eyeand centerare the keys to solve the problemscase d:center0=center0-1;break;case w:center2=center2+1;break;case s:center2=center2-1;break;case z:center1=center1+1;break;case c:center1=center1-1;break;case r:center0=0;center1=0;center2=0;/恢复

8、原状/茶壶相关操作case j:tx+;break;case l:tx-;break;case i:ty+;break;case k:ty-;break;case n:tz+;break;case m:tz-;ty-;break;case g:sx=sy=sz=sx+0.05;break;/放大case f:sx=sy=sz=sx-0.05;break;/缩小void redraw()glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glLoadIdentity();gluLookAt(eye0,eye1,eye2,center0,center1

9、,center2,0,1,0);/场景(0,0,0)扥视点中心(0,5,50)Y 轴向上if(bWire)glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);elseglPolygonMode(GL_FRONT_AND_BACK,GL_FILL);glEnable(GL_DEPTH_TEST);glEnable(GL_LIGHTING);GLfloat white=1.0,1.0,1.0,1.0;GLfloat light_pos=5,5,5,1;glLightfv(GL_LIGHT0,GL_POSITION,light_pos);glLightfv(GL_LIG

10、HT0,GL_AMBIENT,white);glEnable(GL_LIGHT0);glRotatef(fRotate,0,0,1.0f);/ratate around y axisglRotatef(-90,1,0,0);glScalef(sx,sy,sz);Draw_Scene();if(bAnim)fRotate+=0.3f;/todo hint:when you want to rotate the teepot you may like to add another line here =glutSwapBuffers();int main(int argc,char*argv)glutInit(glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_DOUBLE);glutInitWindowSize(480,480);int windowHandle=glutCreateWindow(“Simple GLUT App“);glutDisplayFunc(redraw);glutReshapeFunc(reshape);glutKeyboardFunc(key);glutIdleFunc(idle);glutMainLoop();return 0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报