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

来源:互联网 发布:红帆oa软件 编辑:程序博客网 时间:2024/06/07 17:12

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

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

     

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

    

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

draw_x1--;

draw_y1--;

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

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

原创粉丝点击