From fca7c0609a24553c00b3bdf65a6f059879bb893a Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Thu, 22 Dec 2022 11:53:14 -0700 Subject: [PATCH] Factor out epsilon in earclip_triangulation --- manimlib/utils/space_ops.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/manimlib/utils/space_ops.py b/manimlib/utils/space_ops.py index 75ce94fb..509d8545 100644 --- a/manimlib/utils/space_ops.py +++ b/manimlib/utils/space_ops.py @@ -383,9 +383,10 @@ def earclip_triangulation(verts: Vect3Array | Vect2Array, ring_ends: list[int]) list(range(e0, e1)) for e0, e1 in zip([0, *ring_ends], ring_ends) ] + epsilon = 1e-6 def is_in(point, ring_id): - return abs(abs(get_winding_number([i - point for i in verts[rings[ring_id]]])) - 1) < 1e-5 + return abs(abs(get_winding_number([i - point for i in verts[rings[ring_id]]])) - 1) < epsilon def ring_area(ring_id): ring = rings[ring_id] @@ -396,8 +397,8 @@ def earclip_triangulation(verts: Vect3Array | Vect2Array, ring_ends: list[int]) # Points at the same position may cause problems for i in rings: - verts[i[0]] += (verts[i[1]] - verts[i[0]]) * 1e-6 - verts[i[-1]] += (verts[i[-2]] - verts[i[-1]]) * 1e-6 + verts[i[0]] += (verts[i[1]] - verts[i[0]]) * epsilon + verts[i[-1]] += (verts[i[-2]] - verts[i[-1]]) * epsilon # First, we should know which rings are directly contained in it for each ring