计算机图形学 您所在的位置:网站首页 画圆的多种方法 计算机图形学

计算机图形学

2024-05-28 22:58| 来源: 网络整理| 查看: 265

目录

圆的几何特性分析

MidPoint画圆算法

原理:

代码实现:

Bresenham画圆算法

原理:

代码实现:

圆的几何特性分析

        圆是中心对称图形,具有以下几何特性:         1>对于一个圆心在原点的圆形对象,圆上一个点,我们可以根据x=y、x=0、y=0三条对轴,将其不断对称产生圆上8个点,如下图利用(xi, yi)可产生圆上标注的8个点.         2>同样的,对于一个圆的1/8圆弧来讲,可以根据x=y、x=0、y=0三条对轴,将其不断对称产生整圆,如下图利用一象限y轴与y=x直线之间的8分之圆可以对称得到整圆.         3>利用八分之圆对称得到整圆的方法本质上是利用八分之圆上所有点对称得到整圆的过程。

        下面给出的圆的绘制算法都是基于以上对圆的几何特性的认识展开的。         说明:对于圆我们可以首先考虑当圆心在坐标原点的情况,然后再根据圆心位置将圆上坐标进行平移,得到圆的实际位置。下面我们的考虑都是基于圆心在坐标原点进行分析。实际算法中进行简单变化即可。

MidPoint画圆算法 原理:

        MidPoint画圆算法的思想与中点画直线算法的思想大致一致,在前一已知点位置的基础上,选择下一绘制点可能像素位置中靠近圆像素进行绘制的一种算法。

      我们考虑第一象限y轴与直线y=x之间的八分之圆的顺时针绘制方式。对于这一部分的点来讲,假设在某点(xpos, ypos)确定的情况下,那么我们绘制的下一个像素点位置应当在(xpos+1, ypos)与(xpos+1, ypos-1)之间做选择。决策方式取决于这两点中点(xpos+1, ypos-0.5)与圆的位置关系,具体来讲,就是点(xpos+1, ypos-0.5)在圆的外面时,点(xpos+1, ypos-1)据圆上点更近,选择该点;点(xpos+1, ypos-0.5)在圆的内部时,点(xpos+1, ypos)据圆上点更近,选择该点。利用圆半径,我们可以获知圆方程为x*x+y*y-R*R=0,令d=F(x, y)=x*x+y*y-R*R,则当F(xi, yi)>0时,点(xi, yi)在圆的外面;当F(xi, yi)首先,对于d的初值我们易得为1.25-R。由于我们所涉及的都是整数运算,1.25-R在正负性上与1-R等价,为简化计算,可认为d0=1-R。 2>假设我们现在确定绘制了(xpos, ypos)点,并对d进行一定变化后(此时d=F(xpos+1, ypos+0.5)),d假设我们现在确定绘制了(xpos, ypos)点,当前d为F(xpos+1, ypos-1),当d=0时,下一个点选择为(xpos+1, ypos-1)。 5>当下一个点选择为(xpos+1, ypos-1)时,我们下一次需要计算F(xpos+2, ypos-2),有:F(xpos+2, ypos-2)\\=(xpos+2)^{2}+(ypos-2)^{2}-R^{2}\\=d+2*xpos+3-2ypos+3\\=d+((xpos-ypos+3)1) 故d的变化量deat1为((xpos-ypos+3)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有