Рисование круга без использования функции - PullRequest
0 голосов
/ 21 апреля 2019

Поэтому мне было интересно, как работает функция circle(), и как я могу нарисовать кружок, не используя ее (хотел сделать что-то связанное с ней).Кто-нибудь знает это?

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

Классическим способом растеризации круга является использование алгоритма Midpoint Circle .

Работает, отслеживая пиксели, максимально приближенные к изолинии x 2 + y 2 = r 2 . Это может быть сделано даже с помощью целочисленных вычислений, что особенно подходит для устройств с малой вычислительной мощностью.

0 голосов
/ 22 апреля 2019

Круг - это набор точек, расположенных на постоянном расстоянии от другой точки, называемой центром.

Если вы можете нарисовать 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

И если вы хотите попробовать это, вот оно: кодексов кругов .
Вы увидитечто для отображения достаточно 40 точек на окружности, чтобы получить приемлемое отображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...