对于bresenham画圆算法的一点点理解

      这里我想要讲的不是bresenham画圆算法怎么演算使用的,而是要讲算出八分之一的坐标点之后怎么利用圆的对称性把其他的八分之七的坐标点算出来。大笑

      一 很多人知道了怎么去算圆的其中八分之一的坐标点,由于圆有高度的对称性,所以非常便于我们计算其他的坐标点,对于我们写程序有很大帮助,提高效率。先来一张我从正点原子里看到的一个遥控器程序,是关于在0.96寸OLED上画圆的方法,我这里给一个截图吧:

     

    二 在该段代码之前需要计算4个比较特殊的点,分别坐落在x轴和y轴上面,很简单。然后就是计算其中的八分之一的圆弧坐标了,再看一个截图:

    

     根据这个图片同时对应上面一段代码,是不是很明显了呢,我把圆分成了八份,假设我先计算的是0区的坐标,那么1区、2区、3区、4区等等的坐标都可以算出来的。比如根据代码,其实就是从粉红色的点开始沿着粉红色的箭头开始算这个八分之一的坐标,然后利用y轴的对称性,粉红色的就和y轴左边的上部红色箭头对称,所以再看代码就是

draw_x1--;

draw_y1--;

 必须跟着箭头的方向走,按照这个规律,我们可以利用x轴、y=x和y=-x的对称性依次算出其他区的坐标了,对应看相应标号的代码就知道怎么去处理了,极大的简化了代码的难度。

   注释:第二张圆图我是利用AD画出来的。   

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值