Для (x, y) пиксельных координат по длине линии отрегулируйте угол, чтобы он стал кругом - PullRequest
0 голосов
/ 27 октября 2019

У меня есть функция для генерации пиксельных координат линии с заданным углом и длиной пикселя.

    # Start position of line
    lineStartX = 100
    lineStartY = 100

    # Length of line in pixels
    lineLength = 100

    # Set angle of line
    angle = 0

    for pixel in range(lineLength):

        # Next pixel with angle adjustment
        endy = (pixel + 1) * math.sin(math.radians(angle))
        endx = (pixel + 1) * math.cos(math.radians(angle))

        # Add next pixel with angle adjustment to line start coordinates
        Xcoordinate = lineStartX + (endx)
        Ycoordinate = lineStartY + (endy)

Как мне отрегулировать угол каждой параллельной пиксельной координаты, чтобы сформировать круг?

Я пытался постепенно регулировать угол для каждого пикселя, но это только частично завершает круг, я не уверен, что делать дальше.

        angle += 0.10

Обновление: когда я увеличиваю угол какпредложено:

        angle += 2 * np.arcsin(math.pi / lineLength)

enter image description here

Круг еще только частично завершен

1 Ответ

0 голосов
/ 27 октября 2019

Если линия будет окружностью, длина будет равна ее окружности. Поскольку нарисовать идеальный круг на матрице пикселей невозможно, некоторые правила аппроксимации будут в порядке. Вы можете попробовать постепенно регулировать угол не на 0,10, а на

2 * arcsin(pi / length)

, чтобы концы спирали сходились:)

...