《计算机图形学基础》实验讲义.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机图形学基础》实验讲义.doc

《计算机图形学基础》实验讲义 卢迪 王鹏 张开玉 哈尔滨理工大学 电气与电子工程学院电子信息工程系 实验一 直线的生成 实验目的 熟练掌握二维直线段的中点Bresenham算法的原理。 掌握直线段中点Bresenham绘制算法的高级语言程序设计方法。 实验内容 根据课堂所学的直线段的中点Bresenham算法的原理应用高级语言设计二维直线段的生成子程序,并设计主程序。进行调试,得到正确的显示结果。要求每个同学的设计独立完成,实验数据不同,绘制出的图形结果也不相同。 实验用设备仪器及材料 硬件设备:赛扬400或PentiumIII450以上的CPU处理器、64M以上的内存、200M以上的自由硬盘空间、支持24位真彩色的显卡、彩色显示器。本实验使用的是性能优良的联想开天6000品牌机。 软件环境:Windows XP操作系统、Turboc2集成开发环境。 实验原理 中点Bresenham绘制二维直线段的基本原理是每次在最大的位移方向上走一步,而另一个方向是走步还是不走步要取决于误差项的判别。 直线的方程 该直线方程将平面分为三个区域: 对于直线上的点,F(x,y)=0; 对于直线上方的点,F(x,y)0; 对于直线下方的点,F(x,y)0。 如图1-1 所示。 基本原理: 假定0≤k≤1,x是最大位移方向 判别式: 则有: 误差项的递推: d0: d≥0: 初始值d的计算 由于我们用的只是d的符号,用2d△x代替d来摆脱小数。 d0=0.5-k变为d=△x-2△y d0时,d=d+1-k变为d=d+2△x-2△y d0时,d=d-k变为d=d-2△y 0≤k≤1时Bresenham算法的算法步骤为: 1.输入直线的两端点P0(x0,y0)和P1(x1,y1)。 2.计算初始值△x、△y、d=△x-2△y、x=x0、y=y0。 3.绘制点(x,y)。判断d的符号。 若d0,则(x,y)更新为(x+1,y+1),d更新为d+2△x-2△y;否则(x,y)更新为(x+1,y), d更新为d-2△y。 4.当直线没有画完时,重复步骤3。否则结束。 五、实验方法及步骤 设计二维直线段的生成子程序。 设计主程序。 编译、链接、调试程序,直至得到正确的显示结果。 改变直线的起点和终点坐标,并改变直线的显示颜色,观察不同的输入的不同显示结果。 六、选作实验 结合你所学过的数值微分算法绘制二维直线段的原理,设计直线段生成算法的子程序及进行验证的主程序,并进行调试,得到正确的显示结果。 结合你所学过的改进的中点Bresenham算法绘制二维直线段的原理,设计直线段生成算法的子程序及进行验证的主程序,并进行调试,得到正确的显示结果。 以上两个选作实验供已完成基本实验项目的同学选作,也可作为同学课下练习的实验项目。 学生本人签名 教师对学生本次实验完成情况的成绩评定 实验二 圆的生成 一、实验目的 熟练掌握八分法画圆和中点Bresenham算法生成圆弧的原理。 掌握中点Bresenham算法生成圆弧的高级语言程序设计方法。 二、实验内容 根据课堂所学的中点Bresenham算法生成圆弧的原理应用高级语言设计圆弧的生成子程序,并设计主程序。进行调试,得到正确的显示结果。要求由键盘输入圆心坐标和圆的半径,由程序生成圆形。 三、实验用设备仪器及材料 硬件设备:赛扬400或PentiumIII450以上的CPU处理器、64M以上的内存、200M以上的自由硬盘空间、支持24位真彩色的显卡、彩色显示器。本实验使用的是性能优良的联想开天6000品牌机。 软件环境:Windows XP操作系统、Turboc2集成开发环境。 四、实验原理 八分法画圆的思想:先绘制出第一象限上半部分的八分之一圆弧,再根据圆的对称性,绘制其余的七个对称部分,实现绘制一个完整的圆。 中点Bresenham算法生成圆弧的基本原理: 构造函数F(x,y)=x2-y2-R2。 对于圆上的点,有F(x,y)=0; 对于圆外的点,F(x,y)0; 而对于圆内的点,F(x,y)0。 ?算法原理: M的坐标为:M(xi +1,yi-0.5) 当F(xM,yM)0时,取Pu(xi +1,yi); 当F(xM,yM)0时,取Pd(xi +1,yi-1); 当F(xM,yM)=0时,约定取Pd。 构造判别式: 当d0时,下一点取Pu(xi +1,yi); 当d=0时,下一点取Pd(xi +1,yi-1)。 误差项的递推: d0: d=0: 判别式的初始值: 改进:用d-0.25代替d。 算法步骤: 1.

文档评论(0)

magui + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档