实验六3d编程及bezier曲线绘制

实验六3d编程及bezier曲线绘制

ID:32707604

大小:298.80 KB

页数:11页

时间:2019-02-14

实验六3d编程及bezier曲线绘制_第1页
实验六3d编程及bezier曲线绘制_第2页
实验六3d编程及bezier曲线绘制_第3页
实验六3d编程及bezier曲线绘制_第4页
实验六3d编程及bezier曲线绘制_第5页
资源描述:

《实验六3d编程及bezier曲线绘制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验七3D编程及Bezier曲线曲面绘制一、实验目的1.3D编程:熟悉视点观察函数的设置和使用;熟悉投影变换函数的设置和使用;熟悉基本3D图元的绘制2.了解OpenGL绘制Bezier曲线的方法二、实验环境硬件要求:PC机,主流配置,最好为独立显卡,显存512M以上。软件环境:操作系统:WindowsXP。语言开发工具:VC6.0。三、实验要求:按照实验内容做实验,保留所作步骤效果截图或演示程序,当场检查,现场计分四、实验内容1.3D编程3DCube.cpp为一静止3D立方体,3DCube2.cpp为正交投影下的旋转3D立方体,按下鼠标可实

2、现不同方向的旋转。分析3D编程代码与程序结构。图7-1静止立方体效果图图7-2旋转立方体效果图图7-3旋转茶壶和圆环效果图1.让静止的立方体绕Z轴不停旋转2.修改视点,目标点不变,观看显示效果3.修改目标点,视点不动,观看显示效果4.视点与目标点同时修改,观看显示效果5.视点与目标点不变,修改观察体大小,观看显示效果6.将正交投影观察体改为透视投影观察体,并设置其大小,观察显示效果7.将立方体替换为茶壶,观看显示效果.选做1.Bezier曲线绘制BezierCurve.cpp为绘制bezier曲线的源程序,仔细研读源程序,并作如下修改1).

3、改变控制点,观察曲线和曲面形状的变化,控制点起什么作用?2).改写bezier.cpp,增加控制点数目,修改控制点位置,使之成为空间封闭曲线,写出修改的关键代码及注释(TIPS:OpenGLBezier曲线绘制方法最多只能有8个控制点)3).根据bezier曲线的性质,改写程序,使之成为两段曲线光滑连接。每段曲线用不同颜色表示,并画出控制点。图7-2·Bezier曲线绘制效果五、函数参考(一)3D编程1.视点设置函数voidgluLookAt(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,GLdoubleat

4、x,GLdoubleaty,GLdoubleatz,GLdoubleupx,GLdoubleupy,GLdoubleupz)给出矩阵作用于当前矩阵,定义相机位置和方向视点:eyex,eyey,eyez目标点:atx,aty,atz相机向上方向:upx,upy,upz如果不引用该函数,则eyex=0,eyey=0,eyez=0,atx=0,aty=0,atz=-1,Upx=0,upy=1,upz=0此函数放在display函数中调用参考坐标系:世界坐标系2.正交投影变换设置函数.voidglOrtho(GLdoubleleft,GLdoubl

5、eright,GLdoublebottom,GLdoubletop,GLdoublenear,GLdoublefar),建立正交投影矩阵,定义一个正平行观察体。距离从相机位置处测量。right>left,top>bottom,far>nearOpenGL中不提供对观察平面的选择功能。近裁减平面永远和观察平面重合。如果OpenGL不提供投影函数,默认调用为:glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0)3.透视投影变换设置函数voidgluPerspective(GLdoublefov,GLdoubleaspect,G

6、Ldoublenear,GLdoublefar),定义一个透视矩阵作用于当前矩阵fov-近裁剪平面与远裁剪平面的连线与视点的角度,也称视场角(field-of-viewangle)aspect-投影平面的宽与高之比near,far-近裁剪平面和远裁剪平面离相机(视点)的距离4.三维基本图形绘制函数1)立方体绘制函数voidglutWireCube(GLdoublesize)//线框模式voidglutSolidCube(GLdoublesize)//实体模式功能:绘制一个边长为size的线框的或实心立方体,立方体的中心位于原点2)小球绘制函

7、数.voidglutWireSphere(GLdoubleRadius,Glintslices,Glintstacks)voidglutSolidSphere(GLdoubleRadius,Glintslices,Glintstacks);功能:绘制一个半径为Radius的线框的的或实心小球,小球的中心点位于原点,slices:为小球的经线数目,stacks为小球的纬线数目3)茶壶绘制函数voidglutWireTeapot(GLdoublesize);voidglutSolidTeapot(GLdoublesize);功能:绘制一个半径为

8、size的线框的或实心茶壶,茶壶的中心位于原点参数说明:参数size为茶壶的近似半径,以size为半径的球体可完全包容这个茶壶。4)圆环绘制函数.voidglutWireToru

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。