Получить весь массив пикселей внутри круга

У меня есть это:

enter image description here

и мне нужно знать все пиксели в массив внутри круга.

спасибо.

1 ответов


вы ищете следующий набор точек:

Circle equation

С r радиус вашего круга и (m1, m2) в центр.

чтобы получить эти пиксели, повторите все позиции и сохраните те, которые соответствуют критериям в списке:

List<int> indices = new List<int>();

for (int x = 0; x < width; x++)
{
    for (int y = 0; y < height; y++)
    {
        double dx = x - m1;
        double dy = y - m2;
        double distanceSquared = dx * dx + dy * dy;

        if (distanceSquared <= radiusSquared)
        {
            indices.Add(x + y * width);
        }
    }
}