Search code examples
xna

Get all pixel array inside circle


I have this:

enter image description here

And I need to know all pixels in array inside the circle.

Thanks.


Solution

  • You are looking for the following set of pixels:

    Circle equation

    with r being the radius of your circle and (m1, m2) the center.

    In order to get these pixels iterate over all positions and store those which meet the criteria in a list:

    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);
            }
        }
    }