不使用函数绘制圆圈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用函数绘制圆圈相关的知识,希望对你有一定的参考价值。

所以我想知道circle()函数是如何工作的,如何在不使用它的情况下绘制圆圈(想做与之相关的事情)。有谁知道这个东西?

答案

栅格化圆的经典方法是使用Midpoint Circle Algorithm

它的工作原理是跟踪尽可能接近x2 + y2 = r2等值线的像素。这甚至可以通过纯整数计算来完成,这尤其适用于低计算功率器件。

另一答案

圆是距离另一个点恒定距离的一组点,称为中心。

如果你可以绘制由两个lines定义的points,你可以在画布上绘制circle的表示,知道它的center和它的radius

方法是确定位于圆周上的一组连续点,然后用线连接它们。

例如,在python中(读取像伪代码):

import math

def make_circle(center, radius, num_points=40):
    """returns a sequence of points on the circumference
    """ 
    points = [center]
    d_theta = 2 * math.pi / num_points
    cx, cy = center
    for idx in range(num_points + 1):
        theta = idx * d_theta
        points.append((cx + math.cos(theta) * radius, cy + math.sin(theta) * radius))
    return points

如果你想尝试一下,这里是:circles codeskulptor。 您将看到,出于显示目的,圆周上的40个点足以提供可接受的再现。

以上是关于不使用函数绘制圆圈的主要内容,如果未能解决你的问题,请参考以下文章

通过在 imageview 中绘制圆圈裁剪图像

Android:如何使用onDraw()函数在一个视图中绘制一个圆圈和一个按钮

使用片段着色器在特定位置绘制完美的水平线

如何重新加载圆形进度条

使用 UIBezierPath 绘制 100 多个不同位置的圆圈

画布圆圈绘制不一致