diff --git a/src/modules/graphics/Graphics.cpp b/src/modules/graphics/Graphics.cpp index 741c5c516..f8bb086f0 100644 --- a/src/modules/graphics/Graphics.cpp +++ b/src/modules/graphics/Graphics.cpp @@ -1350,7 +1350,7 @@ void Graphics::rectangle(DrawMode mode, float x, float y, float w, float h) void Graphics::rectangle(DrawMode mode, float x, float y, float w, float h, float rx, float ry, int points) { - if (rx == 0 || ry == 0) + if (rx <= 0 || ry <= 0) { rectangle(mode, x, y, w, h); return; @@ -1409,7 +1409,8 @@ void Graphics::rectangle(DrawMode mode, float x, float y, float w, float h, floa void Graphics::rectangle(DrawMode mode, float x, float y, float w, float h, float rx, float ry) { - rectangle(mode, x, y, w, h, rx, ry, calculateEllipsePoints(rx, ry)); + int points = calculateEllipsePoints(std::min(rx, std::abs(w/2)), std::min(ry, std::abs(h/2))); + rectangle(mode, x, y, w, h, rx, ry, points); } void Graphics::circle(DrawMode mode, float x, float y, float radius, int points)