diff --git a/Tests/LibWeb/Ref/canvas-arcs-and-ellipses.html b/Tests/LibWeb/Ref/canvas-arcs-and-ellipses.html new file mode 100644 index 00000000000..b942d944b14 --- /dev/null +++ b/Tests/LibWeb/Ref/canvas-arcs-and-ellipses.html @@ -0,0 +1,22 @@ + + + + diff --git a/Tests/LibWeb/Ref/reference/canvas-arcs-and-ellipses-ref.html b/Tests/LibWeb/Ref/reference/canvas-arcs-and-ellipses-ref.html new file mode 100644 index 00000000000..26021750221 --- /dev/null +++ b/Tests/LibWeb/Ref/reference/canvas-arcs-and-ellipses-ref.html @@ -0,0 +1,9 @@ + + diff --git a/Tests/LibWeb/Ref/reference/images/canvas-arcs-and-ellipses-ref.png b/Tests/LibWeb/Ref/reference/images/canvas-arcs-and-ellipses-ref.png new file mode 100644 index 00000000000..d5cfd94dd70 Binary files /dev/null and b/Tests/LibWeb/Ref/reference/images/canvas-arcs-and-ellipses-ref.png differ diff --git a/Userland/Libraries/LibWeb/HTML/Canvas/CanvasPath.cpp b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasPath.cpp index 77eaefa2c77..14c88b1767a 100644 --- a/Userland/Libraries/LibWeb/HTML/Canvas/CanvasPath.cpp +++ b/Userland/Libraries/LibWeb/HTML/Canvas/CanvasPath.cpp @@ -157,6 +157,8 @@ WebIDL::ExceptionOr CanvasPath::ellipse(float x, float y, float radius_x, auto end_point = resolve_point_with_angle(end_angle); auto delta_theta = end_angle - start_angle; + if (delta_theta < 0) + delta_theta += AK::Pi * 2; auto transform = active_transform();