📜  圆和圆生成算法的扫描转换方法

📅  最后修改于: 2022-05-13 01:57:13.565000             🧑  作者: Mango

圆和圆生成算法的扫描转换方法

圆的扫描转换:

  • 圆被定义为到一个公共点的距离都相同的一组点。
  • 圆心称为圆心,半径是圆心到圆周上任意一点的距离。
  • 这是一个八边对称的图形,分为四个象限。通过只知道一个点并通过每 45 度轴反映它,这种对称性有助于在计算机上构建一个圆。

fig = 圆的扫描转换

方法 :
方法 I – 直接法或多项式法:

  • 在这种方法中,圆是在多项式方程的帮助下定义的。

方法二——极坐标法:

  • 在这种方法中,坐标被转换为极坐标。

图 = 极性形式

圆生成算法:
1)中点圆算法

  • 中点圆绘制算法用于计算圆的所有周长点。
  • 在该算法中,计算了两个像素之间的中点,这有助于计算决策参数。
  • 决策参数的值将决定应该选择哪个像素来绘制圆。
  • 该算法只计算一个八分圆的点,其他八分圆的点是使用圆的八向对称生成的。

算法 :



  • 步骤 1:绘制初始点,使得 x = 0 和 y = r。
  • 步骤 2:找到初始决策参数:P=5/4 – r。
  • Step 3: if (P< 0): Set P= P+ 2x + 3 and yN = y , xN = x + 1 else if (P>= 0): Set P= P+ 2(xy) + 5 and yN = y – 1 , xN = x + 1。
  • 步骤 4:使用 8 向对称绘制完整的圆。

图 = 中点圆算法

2) Bresenham 的圆绘制算法

  • Bresenham 的画圆算法是一种画圆算法,它计算所有最接近圆边界的最近点。
  • 它是一种增量方法。 •
  • 它只使用整数算法,这使得它工作得更快,也更简单。
  • 该算法遵循的策略是选择与真实圆边界距离最小的像素,然后继续计算圆上的连续点。
  • 众所周知,圆具有8个对称性,即如果我们知道第一个八分圆的边界坐标,则可以通过改变它们的大小或根据各自的八分圆交换坐标值来轻松计算其余7个八分圆的值。
  • 该算法类似地计算像素的位置。
  • 在这里,我们只计算第一个八分圆的值,其余八分圆的值可以通过使用圆的八向对称特性将这些值扩展到其他 7 个八分圆来计算。

算法 :

  • 步骤 1:初始化 x = 0 ,y = r。
  • 步骤 2:计算决策参数如下:D = 3 – 2r。
  • 第 3 步:如果 D < 0:则 D = D + 4x + 6 xN = x + 1 yN = y 如果 D ≥ 0:则 D = D + 4 (x – y) + 10 xN = x + 1 yN = y – 1
  • 第 4 步:使用 8 向对称绘制完整的圆。

fig = Bresenham 圆算法