图形学算法--Bresenham算法画圆(四分法)

之前几篇blog都是在写图形处理中直线的画法,现在开始我们进入圆的画法。首先要讲的就是圆的Bresenham四分画法。
圆的Bresenham四分画法,其基本思想和直线的Bresenham画法是一样的,由当前点推断出下一个点的位置,一个点一个点地生成。同时,由于圆的的对称性,我们只需要计算出第一象限中的14圆就行了,其他三个象限的圆能通过对称性直接得到。具体做法如下:


假设目前所要画的点全部在以圆心为原点的直角坐标系中的第一象限。
如上图所示,假设我们当前点是 ,则下一个将要画出的点就一定是H(x+1,y)V(x,y−1)D(x+1,y−1)之一,现在的任务就是要判断这三个点中要去哪一个。其逻辑关系为:
If D在圆上,则选择D为一下个点
Else if D 在圆内,则选取D、H两者间最靠近圆的点
Else if D 在园外,则选取V、D两之间最靠近圆的点
其具体过程如下:
1、构造判别式
像画直线一样,我首先需要构造一个计算点到圆上的距离的判别式:F(x,y)=x2+y2−R2(我们把圆心看做坐标原点)
若F(x,y)>0,则 在圆外
若F(x,y)<0,则 在园内
若F(x,y)=0,则 在园上
2、计算判别式
当前点为p(x,y),则我们首先需要判断的是,D点在不在圆上,计算D点到圆的距离:ΔD=F(x+1,y−1)=(x
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值