




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告(Bresenham画线算法)1、 实验目的根据Bresenham画线算法,掌握绘制直线的程序设计方法。2、 实验原理 为了说明算法原理,我们首先考虑斜率非负且不超过 1 的直线的光栅化过程。设直线的起点坐标为 (xs , ys),终点坐标为(xe , ye),则直线的方程为:因此,其隐函数表示为:其中:显然,对于直线上的点,F(x , y) 等于零;对于直线下方的点,F(x , y) 大于零;而对直线上方的点,F(x,y) 小于零。假设当前选择的像素点是 (xi , yi),那么下一步要选择的像素点可能是 NE (xi+1 , yi+1),也可能是 E (xi+1 , yi)。选择的原则是看哪一个离直线与 x = xi+1 的交点最近。运用中点法则,我们只需考察中点 M 在直线的哪一侧,即计算:F(M) = F(xi + 1, yi + 1/2) = a(xi + 1) + b( yi + 0.5) + c并确定其正负号。由于根据函数值 F(xi+1, yi + 1/2) 进行判定,所以我们定义一个判定函数如下: di = 2F(xi + 1, yi + 1/2)根据定义:di = 2a(xi + 1) + 2byi + b + 2c当 d i 0时, M 在直线的下方,取 NE 为下一个像素点;当 d = 0时,两者都可以选,我们约定选 E。 di 的计算需要做 4 次加法和两次乘法。因此,为了有效地计算判定函数,我们需要建立关于 di 的递推公式。显然,di 的变化依赖于下一个像素点选的是 NE 还是 E。当 di 0 时,下一个像素点是 NE,则:di+1= 2F(xi + 2, yi + 1 + 1/2) = 2a(xi + 2) + 2b(yi +1)+b+2c = di + 2a + 2b由此,得到计算判定函数 di 的递推公式: 因为直线上的第一个像素点就是直线的起点 (xs, ys),所以判定函数 di 的初值为:d0 = 2a(xs + 1) + 2bys + b + 2c = 2dy - dx 故满足条件的直线的 Bresnham 算法的步骤如下: Step 1.初始化dx = xe xs , dy = ye ys , x = xs , y = ys , d = 2dy dx; Step 2.当 x 0) then y = y + 1; (3)计算判定函数 d: if (d 0) then d = d + 2dy 2dx; else d = d 2dy; Step 3.算法结束。三、实验程序#include#include#include#include#includevoid Bresenham_line(int xs,int ys,int xe,int ye,int c)int dx=abs(xe-xs),dy=abs(ye-ys),i,x=xs,y=ys;int twoDX=2*dx,twoDY=2*dy,p=2*dy-dx;int s1,s2,interchange=0,temp;if (xe-xs=0)s1=1;elses1=-1;if(ye-ys=0)s2=1;elses2=-1;if(dydx) temp=dx;dx=dy;dy=temp;interchange=1;for (i=0;i0)if(interchange)x+=s1;elsey+=s2;p-=twoDX;if(interchange)y+=s2;elsex+=s1; p+=twoDY;void main() int x1=60,y1=88,x2=345,y2=789,c=GREEN;int dx,dy,n,k,f;int x,y;int gdriver,gmode;gdriver=DETECT;initgraph(&gdriver,&gmode, );Bresenham_line(x1,y1,x2,y2,c);getch();closegraph();四、测试结果x1=60,y1=88,x2=345,y2=789,c=GREEN,则得图如下示:5、 实验总结本次实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大智慧公司被动行权的影响研究
- 教育技术让学习更高效
- 传统音韵以现代性演绎的“文人情怀”-《云游不羡仙乡》的演奏探析
- 国土空间规划对湖南省森林生态产品价值转化效率的影响研究
- 2025绿色建筑设计与施工合同及
- 智慧学习环境技术创新实验室的全面解读
- 智慧校园的助推器教育机器人智能教学助手的实践与思考
- IIoT在商业决策支持系统中的技术优势与挑战
- 教育技术领域的职业道德建设与监管
- 语文线上面试题目及答案
- 医院处方笺-模板
- 【渝人发〔2008〕2号】重庆市事业单位岗位设置管理实施办法(试行)
- 物流信息技术课程
- Q∕GDW 10354-2020 智能电能表功能规范
- 公安局冻结解除冻结存款汇款通知书
- (高清正版)JJF 1908-2021 双金属温度计校准规范
- 硬式内窥镜项目计划书_模板范本
- 最新防雷设施检测报告范本
- 上海初中科学会考知识点汇总——七年级第一学期牛津
- 计算机办公软件应用培训教学计划
- 专业技术人员年度情况考核登记表
评论
0/150
提交评论