美文网首页
003计算机图形学:圆的生成算法

003计算机图形学:圆的生成算法

作者: 夏大王2019 | 来源:发表于2016-12-08 16:33 被阅读113次

    平面几何中园的方程可以描绘为:

    $(x-x_0)2+(y-y_{0})2=r^2$

    其中$(x_0,y_0)$ 是圆心坐标,r为半径。为了简化可以先考虑圆心和坐标原点重合的情况,其他情况可以在此基础上平移得到。

    由于圆的八分对策性,因此若已知圆弧上一点P(x,y),则可以得到另外7个对称点:(x,-y) (-x,y) (-x,-y) (-y,x) (-y,-x) (y,x) (y,-x) 。

    中点画圆算法的步骤

    决策参数取决于下一点$(x_k+1,y_k-1/2)$ 是在圆内还是圆外,如果圆内,则$y_k$更接近圆周边界,否则是$y_k-1$

    1. 输入圆半径r和圆心$(x_c,y_c)$,并得到圆周(圆心在原点)上的第一个点:

      $(x_0,y_0)=(0,r)$

    2. 计算决策参数的初始值:

      $p_0 = 5/4-r$

    3. 在每个$x_k$位置,从k=0开始,假设$p_k$<0,圆心在(0,0)的圆的下一个点为$(x_{k+1},y_k)$,并且

      $p_{k+1} = p_k + 2x_{k+1}+1$

      否则,圆的下一点是$(x_k+1,y_k-1)$,并且

      $p_{k+1} =p_k+2x_{k+1}+1-2y_{k+1}$

      其中 $2x_{k+1}=2x_k+2$且$2y_{k+1}=2y_k-2$。

    4. 确定在其他七个八分圆中的对称点。

    5. 将每个计算出的像素位置(x,y)移动到圆心在$(x_c,y_c)$的圆的路径上,并画坐标值:

      $x=x+x_c$, $y=y+y_c$

    6. 重复步骤3到步骤5,直至x>=y 。

    相关文章

      网友评论

          本文标题:003计算机图形学:圆的生成算法

          本文链接:https://www.haomeiwen.com/subject/geesmttx.html