diff options
Diffstat (limited to 'src/ft_draw_circle.c')
-rw-r--r-- | src/ft_draw_circle.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/ft_draw_circle.c b/src/ft_draw_circle.c index 32a1612..3e17dfa 100644 --- a/src/ft_draw_circle.c +++ b/src/ft_draw_circle.c @@ -18,24 +18,26 @@ void ft_draw_circle(int32_t a, int32_t b, int32_t color, t_cub *cl) { - const uint16_t scale = cl->mlist->scale / 2.5; - int x; - int y; + float scale; float i; float angle; float x1; float y1; - x = a; - y = b; - i = 0; - while (i < 360) + scale = cl->mlist->scale / 2.5; + while (scale > 0) { - angle = i; - x1 = scale * cos(angle * M_PI / 180); - y1 = scale * sin(angle * M_PI / 180); - *(int*)(cl->img.ptr + (x + (int)x1) * 4 + ((y + (int)y1) * cl->img.sizeline)) = color; - i += 0.1; + while (i < 360) + { + angle = i; + x1 = scale * cos(angle * M_PI / 180); + y1 = scale * sin(angle * M_PI / 180); + *(int*)(cl->img.ptr + (a + (int)x1) * 4 + + ((b + (int)y1) * cl->img.sizeline)) = color; + i += 0.1; + } + i = 0; + scale--; } } |