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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算机图形学 直线段生成绘制的实现算法94730.doc

1、1实验二 直线段生成绘制的实现算法班级 信计二班 学号 20080502077 姓名 王承宇 分数 一、实验目的和要求:1、了解 Visual C+等编程环境中常用控件命令与绘图函数,初步掌握在试验设计集成下进行图形处理程序的设计方法。2、熟练掌握直线的 3 中扫描转换算法:DDA 算法,中点算法和Bresenham 算法。二、实验内容:1、编程实现 DDA 算法、Bresenham 算法、中点递归算法绘制直线段。2、分析对比三种算法的像素逼近效果和程序执行速度 。3、输出要求:每种算法要分别在八个二分之一象限内画一条直线段。三、实验结果分析:1、该程序实现了三种算法的直线段绘制。2、比较三种

2、算法的结果:像素逼近效果由好到差依次为:Bresenham 算法、DDA 算法、中点算法。执行速度由快到慢依次为:中点算法、DDA 算法、Bresenham 算法。3、中点算法和 Bresenham 算法都隐含着对逼近过程中误差项的处理,这样就使得直线生成更准确。四、程序代码:1、基于 DDA 算法画任一斜率的直线:#include #include / 四舍五入int Round(float x)return (int)(x abs(y2 - y1) ? abs(x2 - x1) : abs(y2 - y1);2x = (float)x1;y = (float)y1;cx = (float)

3、(x2 - x1) / steps;cy = (float)(y2 - y1) / steps;for(int i = 0; i #include / 使用中点算法画任意斜率的直线(包括起始点,不包括终止点)void Line_Midpoint(int x1, int y1, int x2, int y2, int color)int x = x1, y = y1;int a = y1 - y2, b = x2 - x1;int cx = (b = 0 ? 1 : (b = -b, -1);int cy = (a 1d = 2 * b + a; d1 = 2 * b;d2 = 2 * (a +

4、 b);while(y != y2) if(d #include / 使用 Bresenham 算法画任意斜率的直线(包括起始点,不包括终止点)void Line_Bresenham(int x1, int y1, int x2, int y2, int color)int x = x1;int y = y1;int dx = abs(x2 - x1);int dy = abs(y2 - y1);int s1 = x2 x1 ? 1 : -1;int s2 = y2 y1 ? 1 : -1;bool interchange = false; / 默认不互换 dx、dyif (dy dx) /

5、当斜率大于 1 时,dx、dy 互换int temp = dx;dx = dy;dy = temp;interchange = true;6int p = 2 * dy - dx;for(int i = 0; i = 0)if (!interchange) / 当斜率 1 时,选取左右象素点x += s1;p -= 2 * dx;if (!interchange)x += s1; / 当斜率 1 时,选取 y 为步长p += 2 * dy;/ 主函数void main()initgraph(640, 480);/ 测试画线Line_Bresenham(100, 1, 1, 478, GREEN);Line_Bresenham(1, 478, 638, 1, GREEN);/ 按任意键退出getch();closegraph();输出结果为:7

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


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

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

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