The union will in general be non-convex, and Sage doesn't handle
non-convex polyhedra.
The best you can hope for is to construct the convex closure.

E.g. for polytopes (specified by vertices) just take the polytope spanned by the
union of the vertices.

On Fri, Feb 19, 2021 at 11:39 AM Zhaiyu <[email protected]> wrote:
>
> Dear members,
>
> I'm trying to do boolean union operation over multiple touching polyhedra 
> into one but couldn't find how to achieve this with Sage. For example, how 
> can I merge these two cubes and dissolve the interior face (the touching 
> face):
>
> ---------------------
> # two cubes touching
> cube_a = Polyhedron(vertices=[(0,0,0), (0,0,1), (0,1,0), (0,1,1), (1,0,0), 
> (1,0,1), (1,1,0), (1,1,1)])
> cube_b = Polyhedron(vertices=[(1,1/2,0), (1,1/2,1), (1,3/2,0), (1,3/2,1), 
> (2,1/2,0), (2,1/2,1), (2,3/2,0), (2,3/2,1)])
>
> # visualize
> cube_a.plot() + cube_b.plot()
> ---------------------
>
> The polyhedra can be assumed all convex, and each touching pair share a 
> polygon interface. I found polyhedron.intersection(other), but no 
> polyhedron.union(other) or so. Any workaround I can do? Thanks in advance.
>
> Best, Zhaiyu
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sage-support/ef9f99f3-921a-4743-aaa9-6d62aed6e385n%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-support/CAAWYfq3Mx8LnuVatpcvGCHu%2BnAzU6eLrq0POrFoCyu70O5bk-g%40mail.gmail.com.

Reply via email to