欢迎来到天天文库
浏览记录
ID:37709154
大小:48.00 KB
页数:4页
时间:2019-05-29
《bresenham画圆算法-推荐》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、bresenham画圆算法bresenham画圆算法中点画圆算法在一个方向上取单位间隔,在另一个方向的取值由两种可能取值的中点离圆的远近而定。实际处理中,用决策变量的符号来确定象素点的选择,因此算法效率较高。 一、中点画圆算法描述 设要显示圆的圆心在原点(0,0),半径为R,起点在(0,R)处,终点在(,)处,顺时针生成八分之一圆,利用对称性扫描转换全部圆。 为了应用中点画圆法,我们定义一个圆函数F(x,y)=x2+y2-R2(2-19) 任何点(x,y)的相对位置可由圆函数的符号来检测:F(x,y)<0 点
2、(x,y)位于数学圆内=0 点(x,y)位于数学圆上>0 点(x,y)位于数学圆外(2-20) 如下图所示,图中有两条圆弧A和B,假定当前取点为Pi(xi,yi),如果顺时针生成圆,那么下一点只能取正右方的点E(xi+1,yi)或右下方的点SE(xi+1,yi-1)两者之一。中点画线算法假设M是E和SE的中点,即,则: 1、当F(M)<0时,M在圆内(圆弧A),这说明点E距离圆更近,应取点E作为下一象素点;2、当F(M)>0时,M在圆外(圆弧B),表明SE点离圆更近,应取SE点;3、当F(M)=0时,在E点与SE
3、点之中随便取一个即可,我们约定取SE点。 二、中点画圆算法思想 因此,我们用中点M的圆函数作为决策变量di,同时用增量法来迭代计算下一个中点M的决策变量di+1。(2-21) 下面分两种情况来讨论在迭代计算中决策变量di+1的推导。 1、见图(a),若di<0,则选择E点,接着下一个中点就是,这时新的决策变量为:(2-22)(a)(di<0)中点画线算法 式(2-22)减去(2-21)得:di+1=di+2xi+3(2-23) 2、见图(b),若di≥0,则选择SE点,接着下一个中点就是,这时新的决策变量
4、为:(2-24)(b)(di≥0)中点画线算法 式(2-24)减去(2-21)得:di+1=di+2(xi-yi)+5(2-25) 我们利用递推迭代计算这八分之一圆弧上的每个点,每次迭代需要两步处理: (1)用前一次迭代算出的决策变量的符号来决定本次选择的点。 (2)对本次选择的点,重新递推计算得出新的决策变量的值。 剩下的问题是计算初始决策变量d0,如下图所示。对于初始点(0,R),顺时针生成八分之一圆,下一个中点M的坐标是,所以:(2-26)生成圆的初始条件和圆的生成方向
此文档下载收益归作者所有