第四讲基本图形生成
例:用中点画线法P0(0,0) P1(5,2) a=y0-y1=-2 b=x1-x0=5 d0=2a+b=1 d1=2a=-4 d2=2(a+b)=6 i xi yi d 1 0 0 1 2 1 0 -3 3 2 1 3 4 3 1 -1 5 4 2 5 0 1 2 3 4 5 3 2 1 第三种算法——Bresenham算法 为了避免做费时的乘除运算和取整运算,Bresenham提出了一种更好的直线生成算法。其基本思想是借助一个决策变量来确定下一个像素点。 首先讨论m=dy/dx,当0≤m≤1且x1x2时(1a象限)的Bresenham算法。 假设直线上第i个象素点坐标已经确定,设为(xi,yi),那么,直线上下一个象素点的可能位置是(xi+1,yi)或(xi+1,yi+1)。(注意m1) 直线Bresenham算法描述 由图中可以知道:在x=xi+1处,直线上点的y值是y=m(xi+1)+b,该点离象素点(xi+1,yi)和象素点(xi+1,yi+1)的距离分别是d1和d2: d1=y-yi=m(xi+1)+b-yi d2=(yi+1)-y=(yi+1)-m(xi+1)-b 两个距离差是 d1-d2=2m(xi+1)-2yi+2b-1 直线Bresenham算法描述 我们来分析公式d1-d2=2m(xi+1)-2yi+2b-1 (1)当此值为正时,d1d2,说明直线上理论点离(xi+1,yi+1)象素较近,下一个象素点应取(xi+1,yi+1)。 (2)当此值为负时,d1d2,说明直线上理论点离(xi+1,yi)象素较近,则下一个象素点应取(xi+1,yi)。 (3)当此值为零时,说明直线上理论点离上、下两个象素点的距离相等,取哪个点都行,假设算法规定这种情况下取(xi+1,yi+1)作为下一个象素点。 因此只要利用(d1-d2)的符号就可以决定下一个象素点的选择。 直线Bresenham算法描述 进一步定义一个新的判别式(决策变量): pi=dx (d1-d2)=2dy·xi-2dx·yi+c(c=2 dy+ dx (2b-1)) dx=(x2-x1)0,因此pi与(d1-d2)有相同的符号; 则此时pi的计算仅包含整数运算;c为常量,可在递推运算中被消去; 经过一系列误差判别变量的递推,得到如下算法表示: 初始 p1=2dy-dx 当pi≥0时: yi+1=yi+1, xi+1=xi+1, pi+1=pi+2(dy-dx) 否则: yi+1=yi, xi+1=xi+1, pi+1=pi+2dy 可以看出,第i+1步的判别变量pi+1仅与第i步的判别变量pi、直线的两个端点坐标分量差dx和dy有关,运算中只含有整数相加和乘2运算,而乘2可利用算术左移一位来完成,因此这个算法速度快并易于硬件实现。 直线Bresenham算法实现 条件:0≤m≤1且x1x2 1、输入线段的两个端点坐标和画线颜色:x0,y0, x1,y1,color; 2、设置象素坐标初值:x=x0,y=y0; 3、设置初始误差判别值:p=2·dy-dx; 4、分别计算:dx=x1-x0、dy=y1-y0; 5、循环实现直线的生成: for(x=x0;x=x1;x++) { putpixel(x,y,color) ; if(p=0) { y=y+1; p=p+2·(dy-dx); } else { p=p+2·dy; } } Bresenham算法的优点如下: ⒈ 不必计算直线的斜率,因此不做除法。 ⒉ 不用浮点数,只用整数。 ⒊ 只做整数加减运算和乘2运算,而乘2运算可以用移位操作 实现。 Bresenham算法的运算速度很快,并适于用硬件实现。 讨论:以上考虑的是 0<dy<dx 的情况,对于适用所有8个方向的直线的生成算法,则要考虑以判断条件|dx||dy|为分支,并分别将2a、3a象限的直线和3b、4b象限的直线变换到1a、4a和2b、1b象限方向去,以实现程序处理的简洁。 直线Bresenham算法完善 第四讲 基本图形生成 直线的生成算法 圆的生成算法 区域填充算法 裁剪算法 圆的生成算法 这里仅讨论圆心位于坐标原点的圆的扫描转换算法,对于圆心不在原点的圆,可先用平移变换,将它的圆心平移到原点,然
您可能关注的文档
- 第四章:静电场中的电介质20141016.ppt
- 第四篇 10kV电缆线路电缆沟设计模块说明.doc
- 第四编 行政赔偿救济.ppt
- 第四章:园路.ppt
- 第四节 数学概念的学习.doc
- 第四节 浓硫酸.ppt
- 第四节 参数的区间估计.ppt
- 第四节 自动喷水灭火系统的设计计算.ppt
- 第四节DJL化学平衡-1.pptx
- 第四节.圆弧连接.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- CAD软件:CATIA二次开发_CATIAVBA编程基础.docx VIP
- 2025 国家电投 新能源区域化管理实施方案.docx VIP
- 基于 CNN-BiLSTM 的中短期电力负荷预测.docx VIP
- 乘运合同纠纷案代理词吴一诉西安汽车客运有限公司客运合同纠纷案.docx VIP
- 机械设计软件:CATIA二次开发_(8).CATIAVBA高级编程技巧.docx VIP
- 佛教戒律论文开题报告.docx VIP
- 2025春人教版三年级下册英语Unit 2 Expressing yourself Part B Read and write 课件.pptx VIP
- CAD软件:CATIA二次开发_(6).CATIAVBA高级编程技巧.docx VIP
- 火电项目可行性报告.ppt VIP
- 机械设计软件:CATIA二次开发_(3).CATIAVBA编程入门.docx VIP
原创力文档

文档评论(0)