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

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学基础实验指导书

计算机图形学基础实验指导书 目 录 实验一 直线的生成 - 2 - 实验二 圆弧及椭圆弧的生成 - 3 - 实验三 多边形的区域填充 - 4 - 实验四 二维几何变换 - 5 - 实验五 裁剪算法 - 6 - 实验六 三维图形变换 - 7 - 实验七 Bezier曲线生成 - 8 - 实验八 交互式绘图技术实现 - 10 - 实验一 直线的生成 一、实验目的 掌握几种直线生成算法的比较,特别是Bresenham直线生成算法 二、实验环境 实验设备:计算机 实验使用的语言:C++、 三、实验内容 用不同的生成算法在屏幕上绘制出直线的图形,对不同的算法可设置不同的线形或颜色表示区别。 四、实验步骤 直线Bresenham生成算法思想如下 画点(x1,y1),dx=x2-x1,dy=y2-y1,计算误差初值P1=2dy-dx,i=1; 求直线下一点位置 xi+1=xi+1 如果Pi0,则yi+1=yi+1,yi+1=yi; 画点(xi+1,yi+1); 求下一个误差Pi+1点,如果Pi0,则Pi+1=Pi+2dy-2dx,Pi+1=Pi+2dy; i=i+1,如果idx+1则转步骤2,否则结束操作。 实验二 圆弧及椭圆弧的生成 一、实验目的 掌握几种圆弧和椭圆弧生成算法的比较,特别是Bresenham圆弧和椭圆弧生成算法 二、实验环境 实验设备:计算机 实验使用的语言:C++、 三、实验内容 1.用Bresenham生成算法在屏幕上绘制出圆弧的图形。 2.用Bresenham生成算法在屏幕上绘制出椭圆弧的图形 四、实验步骤 圆的生成算法一般将圆划分为8等份,只需计算(900,450)的八分之一圆弧,其它用对称法求得(参见下图)。 Bresenham生成算法思想如下(第一象限,且斜率k1的情况): 计算误差初值P1=3-2r,i=1,画点(0,r); 求下一个光栅点位置 xi+1=xi+1 如果Pi0,则yi+1=yi,yi+1=yi-1; 画点(xi+1,yi+1); 4) 求下一个误差Pi+1点,如果Pi0,则Pi+1=Pi+2xi+6,Pi+1=Pi+4(xi-yi)+10; 5) i=i+1,如果x=y则结束操作,否则转步骤2。 实验三 多边形的区域填充 一、实验目的 1.通过实验,进一步理解和掌握几种常用多边形填充算法的基本原理; 2.掌握多边形区域填充算法的基本过程; 3.掌握在Visual C++环境下用多边形填充算法编程实现指定多边形的填充 二、实验环境 实验设备:计算机 实验使用的语言:C++、 三、实验内容 1.用种子填充算法实现区域填充。 2.扫描线填充算法实现区域填充。 3.用x-扫描线算法实现多边形的填充(可选); 4.实现边缘填充算法和边标志填充算法(可选); 四、实验步骤 区域填充是指从区域内的某一个象素点(种子点)开始,由内向外将填充色扩展到整个区域内的过程。区域是指已经表示成点阵形式的填充图形,它是相互连通的一组像素的集合。 1、栈结构实现4-连通边界填充算法的算法步骤为: 种子象素入栈;当栈非空时重复执行如下三步操作: (a)栈顶象素出栈; (b)将出栈象素置成填充色; (c)检查出栈象素的4-邻接点,若其中某个象素点不是边界色且未置成多边形色,则把该象素入栈。 2、栈结构实现8-连通边界填充算法的算法步骤为: 种子象素入栈;当栈非空时重复执行如下三步操作: (a) 栈顶象素出栈; (b) 将出栈象素置成填充色; (c) 检查出栈象素的8-邻接点,若其中某个像素点不是边界色且未置成多边形色,则把该像素入栈。 实验四 二维几何变换 一、实验目的 进一步加深对常用的二维几何变换的理解,如平移、旋转、放大缩小等。掌握变换顺序和变换矩阵。 二、实验环境 实验设备:计算机 实验使用的语言:C++、 三、实验内容 通过二维几何变换的数学模型,编写平移、旋转、放缩、对称变换; 绘制一个北极星图案或字母图案,如下图所示,实现该图形的平移、旋转、放缩、对称等几何变换; 加入鼠标功能,实现图形的拾取及交互式移动等功能。 四、实验步骤 二维几何图形的步骤: 1、选取二维空间坐标系。 2、在选定的坐标系中,确定图形走笔顺序或连点顺序(拓扑结构) ,写出图形中上各顶点位置坐标,同时引入齐次坐标表示成n(点数)*3阶矩阵。 3、根据图形的拓扑结构及顶点坐标,绘制图形。 4、将图形的顶点坐标矩阵乘以变换矩阵(不同的变换乘以不同的变换矩阵),得到变换后的顶点坐标,再根据图形的拓扑结构及顶点坐标,绘制变换之后的图形。 实验五 裁剪算法 一、实验目的 1、熟悉各种直线裁剪算法,包括Cohen-Sutherland线

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档