Fix issue with Difference

https://github.com/3b1b/manim/issues/2174
This commit is contained in:
Grant Sanderson 2024-10-10 15:13:33 -05:00
parent 154a473a12
commit 99493fc4f7

View file

@ -11,15 +11,15 @@ from manimlib.mobject.types.vectorized_mobject import VMobject
def _convert_vmobject_to_skia_path(vmobject: VMobject) -> pathops.Path:
path = pathops.Path()
subpaths = vmobject.get_subpaths_from_points(vmobject.get_all_points())
for subpath in subpaths:
quads = vmobject.get_bezier_tuples_from_points(subpath)
start = subpath[0]
path.moveTo(*start[:2])
for p0, p1, p2 in quads:
path.quadTo(*p1[:2], *p2[:2])
if vmobject.consider_points_equal(subpath[0], subpath[-1]):
path.close()
for submob in vmobject.family_members_with_points():
for subpath in submob.get_subpaths():
quads = vmobject.get_bezier_tuples_from_points(subpath)
start = subpath[0]
path.moveTo(*start[:2])
for p0, p1, p2 in quads:
path.quadTo(*p1[:2], *p2[:2])
if vmobject.consider_points_equal(subpath[0], subpath[-1]):
path.close()
return path