# Drawing a solid circle onto texture

Has anyone modified Eric Haines’ (Eric5h5) TextureDrawCircle script to draw a solid circle? It currently draws only the perimeter. Any suggestions on how a solid circle drawing algorithm would go?

Here’s a link to Eric’s lovely script: TextureDrawCircle - Unify Wiki

and here’s a snippet:

``````static function Circle (tex : Texture2D, cx : int, cy : int, r : int, col : Color) {
var y = r;
var d = 1/4 - r;
var end = Mathf.Ceil(r/Mathf.Sqrt(2));

for (x = 0; x <= end; x++) {
tex.SetPixel(cx+x, cy+y, col);
tex.SetPixel(cx+x, cy-y, col);
tex.SetPixel(cx-x, cy+y, col);
tex.SetPixel(cx-x, cy-y, col);
tex.SetPixel(cx+y, cy+x, col);
tex.SetPixel(cx-y, cy+x, col);
tex.SetPixel(cx+y, cy-x, col);
tex.SetPixel(cx-y, cy-x, col);

d += 2*x+1;
if (d > 0) {
d += 2 - 2*y--;
}
}
}
``````

Thank you very much!

Problem solved! Below is a modified function for creating a solid circle!

``````public void Circle(Texture2D tex, int cx, int cy, int r, Color col)
{
int x, y, px, nx, py, ny, d;

for (x = 0; x <= r; x++)
{
d = (int)Mathf.Ceil(Mathf.Sqrt(r * r - x * x));
for (y = 0; y <= d; y++)
{
px = cx + x;
nx = cx - x;
py = cy + y;
ny = cy - y;

tex.SetPixel(px, py, col);
tex.SetPixel(nx, py, col);

tex.SetPixel(px, ny, col);
tex.SetPixel(nx, ny, col);

}
}
}
``````

@pajamajama @Bunny83 I want to draw rectangles in the same way . I dont know how to do that? I also would like to know that how can I draw rectangles with round edges or maybe add some more shapes. I’m currently stuck here and any help would be great. Thanks in advance.