How can I create a logical intersection of MeshRegion objects that are three-dimensional? The RegionIntersection function will not work (see "possible issues" in the Mathematica documentation https://reference.wolfram.com/language/ref/RegionIntersection.html).

I know that RegionPlot3D allows logical operators - perhaps there is a way to plot the MeshRegions to a RegionPlot3D and use logical operators to create an intersection?

Something else I thought may work is checking for region membership in all the regions I want to intersect of the tetrahedra making up the mesh region, but RegionMember only checks membership of points.

The types of MeshRegions I am working with are 3D Delaunay, for example

DelaunayMesh@RandomReal[{-1, 1}, {25, 3}]

EDIT: I tried to use this solution as suggested in the comments, but it only seems to work for two polyhedra that have the same general shape: only one variable is used for how the vertices should be connected ("faces"). Also, I cannot fully understand the method by which the intersection points were found. It seems to rely on the fact that z convex polyhedron can be defined algebraically as the set of solutions to a system of linear inequalities (see here). Is there perhaps a simpler way?

  • 1
    $\begingroup$ I assume you're using 3D Delaunay meshes and they are convex, you have the convenient result that the intersection of two convex sets is also a convex set, so it would be the convex hull of the intersection points. You can already get the intersection points as per this answer using graphics and then just take the convex hull of those points $\endgroup$ – Histograms May 29 '15 at 1:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.