How to make a high resolution mesh from RegionIntersection in 3D

I want to make a high-resolution 3d model of the Reuleaux tetrahedron by using Mathematica

The Reuleaux tetrahedron is the intersection of four balls of radius s centered at the vertices of a regular tetrahedron with side length s.

p = {{0, 0, -(Sqrt[(3/2)]/2)}, {1/Sqrt[3], 0, 1/(2 Sqrt[6])},
{-(1/(2 Sqrt[3])), 1/2, 1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), 1/(2 Sqrt[6])}};

Graphics3D[{Red, Opacity[.4], Ball /@ p}, Boxed -> False]


reg = RegionIntersection @@ (Ball /@ p);
DiscretizeRegion[reg]


Needs["OpenCascadeLink"]
s = OpenCascadeShape /@ (Ball /@ p);


Or, even simpler:

shape = OpenCascadeShape[ RegionIntersection @@ (Ball /@ p)];


Or:

Needs["NDSolveFEM"]
bmesh = ToBoundaryMesh[RegionIntersection @@ (Ball /@ p),


You can then visualize with, for example:

groups = bmesh["BoundaryElementMarkerUnion"];
temp = Most[Range[0, 1, 1/(Length[groups])]];
colors = ColorData["BrightBands"][#] & /@ temp;
bmesh["Wireframe"["MeshElementStyle" -> FaceForm /@ colors]]


DiscretizeRegion before RegionIntersection.

p = {{0, 0, -(Sqrt[(3/2)]/2)}, {1/Sqrt[3], 0,
1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), 1/2,
1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), 1/(2 Sqrt[6])}};
reg = DiscretizeRegion /@ Ball /@ p
RegionIntersection[reg, ViewPoint -> {-1.14137, 0.973908, 0.865322},
ViewProjection -> "Orthographic"]


• MaxCellMeasure -> 0.01,AccuracyGoal -> 3 Maybe useful. Dec 12 '20 at 11:14
• +1 You can add the options ViewPoint->{-1.14137, 0.973908, 0.865322}, ViewProjection->"Orthographic" to the RegionIntersection and skip the RegionPlot3D Dec 12 '20 at 16:29
• @BobHanlon Thank you! Just what I looking for! Dec 12 '20 at 16:32
With[{p = {{0, 0, -(Sqrt[(3/2)]/2)}, {1/Sqrt[3], 0,
1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), 1/2,
1/(2 Sqrt[6])}, {-(1/(2 Sqrt[3])), -(1/2), 1/(2 Sqrt[6])}}},
RegionIntersection @@ (Ball /@ p) //
RegionPlot3D[#, PlotPoints -> 80] &
]
`