- 1
- 0
- 约5.71千字
- 约 58页
- 2022-09-19 发布于广东
- 举报
直线的扫描转换——中点Bresenham算法 符号说明: P——当前点; M——中点; Pd和Pu——下一步可能位置; Q——理想直线在x=xi+1位置上的点; 第30页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 算法说明: 设直线斜率在0~1之间,且位于第一象限。光标走步规则为:每次在x方向上加1,y方向根据误差项判断,或加1或加0。 第31页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 误差项判别式构造: 当前点P,下一个点可能为Pd (即yi+1=yi点) ,可能为Pu (即yi+1=yi+1点)。M为Pd 与Pu的中点。 若M在Q点下方,说明Pu点离直线近,则有yi+1=yi+1; 若M在Q点上方,说明Pd点离直线近,则有yi+1=yi; 第32页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 直线方程为: 要判断点M与直线的位置关系,只需要把M的坐标代入直线方程,若: F(xM, yM)=0,即点M在直线上; F(xM, yM)0,即点M在直线上方; F(xM, yM)0,即点M在直线下方; 第33页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 点M与点Q误差项d判别式推导: 当di0时,M在直线下方,Pu (即yi+1=yi+1点)为下一个点; 当di=0时,M在直线上方或在直线上,Pd (即yi+1=yi点)为下一个点。 根据递推思想,推导出di与di+1的关系。 第34页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 当di0时,xi+1=xi+1; yi+1=yi+1; 则有: 第35页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 当di=0时,xi+1=xi+1; yi+1=yi; 则有 d的初值:绘制直线时,光点最初在直线的起点P0(x0, y0)处,可推导出:d0=0.5-k 第36页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 直线的斜率k=dy/dx,将斜率带入判别式: 当di0时,则有 当di=0时,则有 d的初值: di的正负决定下一个点的位置,与di 的具体数值无关,因此,统一以2dxHdi替代di,以简化判别式。 第37页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 当di0时,则有 当di=0时,则有 d的初值: 因此在代码中最终用到的判别式为: 第38页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 绘制点(x, y) yes no 第39页,共58页,编辑于2022年,星期三 直线的扫描转换——中点Bresenham算法 上述推导的中点Bresenham算法绘制直线的判别式适用于直线斜率在0~1之间的情况。 观察例mid_bresenham.cpp绘制斜率在0~1之间的直线和斜率大于1的直线。 当直线大于1时,可不必重新推导判别式,只需交换x和y的规则。bresenham.cpp 第40页,共58页,编辑于2022年,星期三 直线的扫描转换——Bresenham算法 中点Bresenham算法的误差项判别式需要用到直线斜率,改进后的Bresenham算法,思路保持不变,对误差项判别式进行简化。 Bresenham算法直接比较距离t和s的大小,来确定下一个绘制的像素。 第41页,共58页,编辑于2022年,星期三 计算机图形学基础:基本图形生成算法——直线及圆弧的扫描转换 广东工业大学机电学院图学与数字媒体工程系 基本图形生成算法直线圆弧 第1页,共58页,编辑于2022年,星期三 通常认为,基本二维图形包括点、直线、圆、椭圆、多边形域和字符串等。复杂曲线及各种复杂图形均可由直线段和圆弧来拟合,因此研究直线和圆弧的生成算法是二维图形生成技术的基础。 第2页,共58页,编辑于2022年,星期三 在光栅显示器生成一个对象,实质上是往帧缓冲区的相应单元中写入数据;如画一条直线,实质上是发现最佳逼近直线的像素序列、并填入相应颜色的过程,这个过程称为直线的光栅化,或者称为直线的扫描转换。 第3页,共58页,编辑于2022年,星期三 “发现最佳逼近直线的像素序列”就是发现直线生成的算法。不同的算法有不同的效率,但各种算法的核心都是围绕着判别和生成x、y增量的过程和方法(走笔规则)展开研究的。 第4页,共58页,编辑于2022年,星期三 通常从以下四方面评价直线扫描转换算法的质量: 一、显示像素点应尽量靠近理想直线,直线要直,走样小; 二、直线端点准确,且绘制无
原创力文档

文档评论(0)