From 4c1210b3ab1bf66b161f3d00cb859d36068c2fbb Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Mon, 25 Apr 2022 10:26:29 -0700 Subject: [PATCH] Add smarter default radius to round_corners --- manimlib/mobject/geometry.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/manimlib/mobject/geometry.py b/manimlib/mobject/geometry.py index eaad71e7..982372f6 100644 --- a/manimlib/mobject/geometry.py +++ b/manimlib/mobject/geometry.py @@ -895,7 +895,15 @@ class Polygon(VMobject): def get_vertices(self) -> list[np.ndarray]: return self.get_start_anchors() - def round_corners(self, radius: float = 0.5): + def round_corners(self, radius: float | None = None): + if radius is None: + verts = self.get_vertices() + min_edge_length = min( + get_norm(v1 - v2) + for v1, v2 in zip(verts, verts[1:]) + if not np.isclose(v1, v2).all() + ) + radius = 0.25 * min_edge_length vertices = self.get_vertices() arcs = [] for v1, v2, v3 in adjacent_n_tuples(vertices, 3):