From 4e9313fa73f0760ec635e8259aa753e633c036e2 Mon Sep 17 00:00:00 2001 From: Hendiadyoin1 Date: Sun, 21 Aug 2022 20:08:34 +0200 Subject: [PATCH] PixelPaint: Use Sqrt1_2 constant in EllipseTool instead of 1/1.41 This also demotes the constant to floats instead of doubles, because we truncate it to int anyways and don't need the extra accuracy. --- Userland/Applications/PixelPaint/Tools/EllipseTool.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Userland/Applications/PixelPaint/Tools/EllipseTool.cpp b/Userland/Applications/PixelPaint/Tools/EllipseTool.cpp index 964f2851d4..a9256cb100 100644 --- a/Userland/Applications/PixelPaint/Tools/EllipseTool.cpp +++ b/Userland/Applications/PixelPaint/Tools/EllipseTool.cpp @@ -42,8 +42,9 @@ void EllipseTool::draw_using(GUI::Painter& painter, Gfx::IntPoint const& start_p } else { // For some reason for non-AA draw_ellipse() the ellipse is outside of the rect (unlike all other ellipse drawing functions). // Scale the ellipse rect by sqrt(2) to get an ellipse arc that appears as if it was inside of the rect. - auto shrink_width = ellipse_intersecting_rect.width() * (1 - 1 / 1.41); - auto shrink_height = ellipse_intersecting_rect.height() * (1 - 1 / 1.41); + // Ie. reduce the size by a factor of 1 - sqrt(1/2) + auto shrink_width = ellipse_intersecting_rect.width() * (1 - AK::Sqrt1_2); + auto shrink_height = ellipse_intersecting_rect.height() * (1 - AK::Sqrt1_2); ellipse_intersecting_rect.shrink(shrink_width, shrink_height); painter.draw_ellipse_intersecting(ellipse_intersecting_rect, m_editor->color_for(m_drawing_button), thickness); }