计算机图形学基础实验指导书

上传人:cl****1 文档编号:494333610 上传时间:2023-01-25 格式:DOC 页数:13 大小:203KB
返回 下载 相关 举报
计算机图形学基础实验指导书_第1页
第1页 / 共13页
计算机图形学基础实验指导书_第2页
第2页 / 共13页
计算机图形学基础实验指导书_第3页
第3页 / 共13页
计算机图形学基础实验指导书_第4页
第4页 / 共13页
计算机图形学基础实验指导书_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《计算机图形学基础实验指导书》由会员分享,可在线阅读,更多相关《计算机图形学基础实验指导书(13页珍藏版)》请在金锄头文库上搜索。

1、计算机图形学基础实验指导书目 录实验一 直线的生成- 2 -实验二 圆弧及椭圆弧的生成- 3 -实验三 多边形的区域填充- 4 -实验四 二维几何变换- 5 -实验五 裁剪算法- 6 -实验六 三维图形变换- 7 -实验七 BEZIER曲线生成- 8 -实验八 交互式绘图技术实现- 10 -实验一 直线的生成一、实验目的掌握几种直线生成算法的比较,特别是Bresenham直线生成算法二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容用不同的生成算法在屏幕上绘制出直线的图形,对不同的算法可设置不同的线形或颜色表示区别。四、实验步骤直线Bresenham生

2、成算法思想如下1) 画点(x1,y1),dx=x2-x1,dy=y2-y1,计算误差初值P1=2dy-dx,i=1;2) 求直线下一点位置 xi+1=xi+1 如果Pi0,则yi+1=yi+1,否则 yi+1=yi;3) 画点(xi+1,yi+1);4) 求下一个误差Pi+1点,如果Pi0,则Pi+1=Pi+2dy-2dx,否则 Pi+1=Pi+2dy;i=i+1,如果idx+1则转步骤2,否则结束操作。实验二 圆弧及椭圆弧的生成一、实验目的掌握几种圆弧和椭圆弧生成算法的比较,特别是Bresenham圆弧和椭圆弧生成算法二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、Ope

3、nGL三、实验内容1用Bresenham生成算法在屏幕上绘制出圆弧的图形。2用Bresenham生成算法在屏幕上绘制出椭圆弧的图形四、实验步骤圆的生成算法一般将圆划分为8等份,只需计算(900,450)的八分之一圆弧,其它用对称法求得(参见下图)。Bresenham生成算法思想如下(第一象限,且斜率k1的情况):1) 计算误差初值P1=3-2r,i=1,画点(0,r);2) 求下一个光栅点位置 xi+1=xi+1 如果Pi0,则yi+1=yi,否则 yi+1=yi-1;3) 画点(xi+1,yi+1);4) 求下一个误差Pi+1点,如果Pi0,则Pi+1=Pi+2xi+6,否则 Pi+1=Pi

4、+4(xi-yi)+10;5) i=i+1,如果x=y则结束操作,否则转步骤2。实验三 多边形的区域填充一、实验目的1通过实验,进一步理解和掌握几种常用多边形填充算法的基本原理;2掌握多边形区域填充算法的基本过程;3掌握在Visual C+环境下用多边形填充算法编程实现指定多边形的填充二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容1用种子填充算法实现区域填充。2扫描线填充算法实现区域填充。3用x-扫描线算法实现多边形的填充(可选);4实现边缘填充算法和边标志填充算法(可选);四、实验步骤区域填充是指从区域内的某一个象素点(种子点)开始,由内向外将填

5、充色扩展到整个区域内的过程。区域是指已经表示成点阵形式的填充图形,它是相互连通的一组像素的集合。1、栈结构实现4-连通边界填充算法的算法步骤为: 种子象素入栈;当栈非空时重复执行如下三步操作: (a)栈顶象素出栈; (b)将出栈象素置成填充色; (c)检查出栈象素的4-邻接点,若其中某个象素点不是边界色且未置成多边形色,则把该象素入栈。 2、栈结构实现8-连通边界填充算法的算法步骤为:种子象素入栈;当栈非空时重复执行如下三步操作:(a) 栈顶象素出栈;(b) 将出栈象素置成填充色;(c) 检查出栈象素的8-邻接点,若其中某个像素点不是边界色且未置成多边形色,则把该像素入栈。实验四 二维几何变换

6、一、实验目的进一步加深对常用的二维几何变换的理解,如平移、旋转、放大缩小等。掌握变换顺序和变换矩阵。二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容1 通过二维几何变换的数学模型,编写平移、旋转、放缩、对称变换;2 绘制一个北极星图案或字母图案,如下图所示,实现该图形的平移、旋转、放缩、对称等几何变换; 3 加入鼠标功能,实现图形的拾取及交互式移动等功能。四、实验步骤二维几何图形的步骤: 1、选取二维空间坐标系。2、在选定的坐标系中,确定图形走笔顺序或连点顺序(拓扑结构) ,写出图形中上各顶点位置坐标,同时引入齐次坐标表示成n(点数)*3阶矩阵。3、

7、根据图形的拓扑结构及顶点坐标,绘制图形。4、将图形的顶点坐标矩阵乘以变换矩阵(不同的变换乘以不同的变换矩阵),得到变换后的顶点坐标,再根据图形的拓扑结构及顶点坐标,绘制变换之后的图形。实验五 裁剪算法一、实验目的1、熟悉各种直线裁剪算法,包括CohenSutherland线段裁剪算法,中点分割线段裁剪算法,Liang-Barsky裁剪算法等,掌握编码裁剪法的编程方法和步骤。2、掌握多边形逐边裁剪(Sutherland-Hodgman)法的编程方法和步骤。3、了解字符裁剪算法的原理与编程方法。二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容1、 实现直

8、线的裁剪。在屏幕上绘制出一个矩形作为裁剪边界,再用不同的颜色绘出几个由线段组成的简单几何图形,它们和裁剪边界可相交或不相交。按一个键,实现一条线段的裁剪,裁剪后的线段可用另一种颜色绘制,继续按键,直至全部线段裁剪完。2、实现多边形逐边裁剪算法。四、实验步骤1、Sutherland-Cohen(编码) 裁剪算法用数组保存裁剪边界的坐标值和被裁剪边界的坐标值;根据逐边裁剪方法对被裁剪边界进裁剪,计算出裁剪后的坐标;再将裁剪后的直线用不同颜色绘制到屏幕上。Sutherland-Cohen(编码)算法的思想是:对于每条线段P1P2分为三种情况处理。(1)若P1P2完全在窗口内,则显示该线段P1P2简称

9、“取”之。(2)若P1P2明显在窗口外,则丢弃该线段,简称“弃”之。(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。2、Sutherland-Hodgman 多边形裁剪算法多边形裁剪算法的关键在于,通过裁剪,不仅要保留窗口内多边形的边界部分,而且要将窗框有关部分按一定的次序插入多边形保留边界之间,从而使多边形的边仍然保持封闭状态。Sutherland-Hodgman 多边形裁剪算法:令多边形的顶点按边线逆时针走向排序P1、P2、Pn,多边形各边先与上窗框求交。求交后删去多边形一窗框之上的部分,并插入窗边及

10、延长线与多边形的交点之间的部分,从而形成一个新多边形。然后,新的多边形按相同的方法与右窗框相剪裁。如此重重,直至多边形与各窗框都裁剪完毕。实验六 三维图形变换一、实验目的1、复习用二维平面来表示三维立体图形的正等测投影或斜二侧投影图形。2、编程实现三维简单立体的平移变换、旋转变换、对称变换、变比变换、错切变换。3、对变换后的简单三维几何体用正等测投影或斜二侧投影图形来表示。4、用编写的绘制三维几何图形的函数。二、实验环境实验设备:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容1、在屏幕上绘制出如下图所示或其他简单几何体的正等测投影的几何图形。 2、对上述简单三维几何体进

11、行三维平移变换、旋转、缩放、对称等几何变换,用不同的颜色在屏幕上绘制出变换后的三维图形正等测投影图。四、实验步骤1、三维图形的变换实际上是一个变换矩阵,平面图形是由若干个三维点P(xi,yi,zi)组成,经过变换后的三维点P(xi,yi ,zi),其变换公式为: x y z 1 =x y z 1T对于不同的变换,都是用矩阵乘法来计算坐标,只需改变变换矩阵即可。因此对每一种坐标变换可编成一个子程序。2、 变换后的三维点并不能直接在二维屏幕上绘制出来,必须用到前一个实验的内容,选用一个轴测投影,将三维点经过轴测投影变换后,得出P*(x*i,y*i ,z*i)x* y* z* 1 =x y z 1T

12、正等测3、编程时的技巧用数组将三维图形的特征坐标点(顶点)保存,由特征坐标点(顶点)绘制出三维图形的命令(一般由直线命令组成)编写一个绘图子程序,调用绘图子程序绘制出变换以前的图形(必须经过轴测投影变换),根据不同的三维几何变换,选用相应三维坐标变换公式(调用相应的子程序)得出变换后的坐标;再经轴测投影变换后,得出P*(x*i,y*i ,z*i),调用绘图子程序绘制出变换后的图形。实验七 Bezier曲线生成一、实验目的1、 复习Bezier曲线参数表示法。2、 编程实现用二次Bezier曲线绘制。3、编程实现用三次Bezier曲线绘制和分段光滑Bezier曲线图形的绘制。二、实验环境实验设备

13、:计算机实验使用的语言:C或Visual C+、OpenGL三、实验内容1、编程实现在屏幕上绘制出两次Bezie曲线的几何图形和特征多边形图形,对于直线和曲线设置不同的线形和颜色。2、先在屏幕上绘制出三次Bezie曲线的几何图形和特征多边形图形,对于直线和曲线设置不同的线形和颜色。3编程实现用分段三次Bezier曲线绘制光滑Bezier曲线图形。四、实验步骤1、 二次Bezier曲线的计算公式为:P(t)=(P0-2P1+P2)t2+(-2P0+2P1)t+P0X(t)=(X0-2X1+X2)t2+(-2X0+2X1)t+X0Y(t)=(Y0-2Y1+Y2)t2+(-2Y0+2Y1)t+Y0其

14、中P0、P1、P2为三个已知的点,坐标分别为(X0、Y0)、(X1、Y1)、(X1、Y2)。2、 三次Bezier曲线的计算公式为:P(t)=(-P0+3P1-3P2+P3)t3+(3P0-6P1+3P2)t2+(-3P0+3P1)t+P0X(t)= (-X0+3X1-3X2+X3)t3+(3X0-6X1+3X2)t2+(-3X0+3X1)t+X0Y(t)= (-Y0+3Y1-3Y2+Y3)t3+(3Y0-6Y1+3Y2)t2+(-3Y0+3Y1)t+Y0其中P0、P1、P2、P3为四个已知的点,坐标分别为(X0、Y0)、(X1、Y1)、(X1、Y2) 、(X3、Y3)。3、程序设计方法根据B

15、ezier曲线的定义,输入Bezier曲线的特征多边形(例如三次Bezier曲线输入四个型值点),然后把t从01分成n等分,按相应的Bezier曲线公式计算出Bezier曲线上的点,用绘直线段的方法依次这些点连接起来,就得到Bezier曲线。如果要画多段Bezier曲线,可设置一些变量存放Bezier曲线的条数,按条数依次绘制出来即可。实验八 交互式绘图技术实现一、实验目的1、掌握各种交互式绘图技术及其原理;2、掌握Visual C+集成编程环境的使用,图形设备接口和常用图形程序设计、鼠标编程、画刷与画笔以及菜单设计等,能够利用Visual C+实现各种交互式绘图技术;3、了解OpenGL的基本操作及其库函数,能够通过OpenGL库函数实现各种交互式绘图技术。二、实验

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

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