贵州大学计算机图形学实验报告----直线生成算法

上传人:飞*** 文档编号:35595503 上传时间:2018-03-17 格式:DOC 页数:12 大小:253.50KB
返回 下载 相关 举报
贵州大学计算机图形学实验报告----直线生成算法_第1页
第1页 / 共12页
贵州大学计算机图形学实验报告----直线生成算法_第2页
第2页 / 共12页
贵州大学计算机图形学实验报告----直线生成算法_第3页
第3页 / 共12页
贵州大学计算机图形学实验报告----直线生成算法_第4页
第4页 / 共12页
贵州大学计算机图形学实验报告----直线生成算法_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《贵州大学计算机图形学实验报告----直线生成算法》由会员分享,可在线阅读,更多相关《贵州大学计算机图形学实验报告----直线生成算法(12页珍藏版)》请在金锄头文库上搜索。

1、贵州大学计算机图形学实验报告学院:计算机科学与信息学院 专业:软件工程 班级:102 班姓名学号实验组实验时间指导教师成绩实验项目名称实验一 直线生成算法实验目的通过本实验,了解并掌握在光栅显示系统中直线的生成和显示算法,熟悉相关开发平台。为后继实验打下基础。实验要求1、 能够使用 DDA 数值微分法绘制直线。2、 能够使用中点画线算法绘制直线。3、 能够使用 Bresenham 画线算法绘制直线。实验原理一、一、DDADDA 数值微分法画直线数值微分法画直线已知直线段 L 的起点为 P0(x0,y0),终点为 P1(x1,y1)直线的斜率 K 则为:K=(y1-y0)/(x1-x0).直线的

2、方程为:y = kx+b.则对于|k|1 来说,y 每增加 1 个步长,x 增加 1/k。分析如下所示:|k|1 的推导过程Xi+1 = yi+1/k b/k = yi/k - b/k +y/ky = 1Xi+1 = Xi+1/kyixiyi+1xi+1DDA 算法的分析:复杂度:加法+取整优点:避免了 y=kx+b 方程中的浮点乘法,比直接用点斜式画线快。缺点:需浮点数加法及取整运算,不利于硬件实现。二、中点划线法二、中点划线法假设直线的起点、终点分别为:(X0,Y0),(X1,Y1),直线方程: F(x,y)=ax+by+c=0,其中: a=y0-y1,b=(x1-x0),c=x0y1-x

3、1y0。如 F(x,y)=0, 则(x,y) 在直线上如 F(x,y)0, 则(x,y)在直线上方对于|k|=0,M 在 L(Q 点)上方,取右方 B 为下一个象素;当 d=0,选 T 或 B 均可,约定取 B 为下一个象素判断了 M 的位置之后则可以依次的画出各个点,从而得到一条直线。对于|k|1d=F(M)=F(xp+0.5,yp+1)=a(xp+0.5)+b(yp+1)+c当 d=0,M 在 L(Q 点)下方,取右上方 T 为下一个象素;当 d=0,M 在 L 上方,增量 d1 为 a;当 d1 的情况 d 的初值为 0.5a+b,当 d=0,M 在 L 下方,增量 d1 为 b;当 d

4、=0 时,取当前像素(xi,yi)的右上方像素(xi+1,yi+1),e 减小 1,而当 e= -1 float x;x = x0;for (y = y0; y = -1 d1 = 2 * a; d2 = 2 * (a + b); while (x = 0) d = a + 2 * b; d1 = 2 * b; d2 = 2 * (a + b); while (y = -1 i = 0) y+; e = e - 1; else for (int i = 0; i = 0) y-; e = e - 1; else if(k=0) for (int i = 0; i = 0) x+; e = e

5、- 1; else for (int i = 0; i = 0) x-; e = e - 1; System.out.println(“Bresenham划线算法 k = “ + k); 实验结果在 java 中原点位于左上点,水平向右为 X 轴正方向,垂直向下为 Y 轴正方向。用三种算法划线的过程中采用了不同的颜色加以区分:DDA 算法(黄色),中点划线算法(绿色),Bresenham 算法(蓝色)。运行程序后,分别显示如下:DDA 算法:斜率显示:中点划线算法斜率显示:Bresenham 算法斜率显示:实验总结本次试验我收获很大,掌握了三种划线算法的基本原理,并成功编出了测试程序,我觉得试验是将书本知识与实践结合的最佳途径,编写程序的过程也不是很顺利,过程中存在很多 BUG,通过调试得到了解决,但是还遗留一些问题没有解决,在我的代码中,要运行算法画直线,必须先将其他的两种算法的代码注释,才能显示,否则后一中算法的颜色就会覆盖前一种算法的颜色,因为我画的六条直线在三种算法中都是相同的斜率。此次试验中存在的不足我会查阅相关资料并改正,争取得到更好的完善。指导教师意见签名: 年 月 日注:可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。

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

最新文档


当前位置:首页 > 商业/管理/HR > 企业文档

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