浏览代码

Fix issue with Difference

https://github.com/3b1b/manim/issues/2174
Grant Sanderson 1 周之前
父节点
当前提交
99493fc4f7
共有 1 个文件被更改,包括 9 次插入9 次删除
  1. 9 9
      manimlib/mobject/boolean_ops.py

+ 9 - 9
manimlib/mobject/boolean_ops.py

@@ -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