I've got a List of BoundaryMeshRegion
s, created via ConvexHullMesh
:
hulls0 = ConvexHullMesh /@ RandomReal[{-10, 10}, {3, 1, 2}];
hulls1 = ConvexHullMesh /@ RandomReal[{-10, 10}, {3, 2, 2}];
hulls2 = ConvexHullMesh /@ RandomReal[{-10, 10}, {3, 3, 2}];
hulls = Flatten[List[hulls0, hulls1, hulls2]];
Show[hulls]
Question
I now want to extend every region, to include also all points within a given distance d
. Afterwards I want to obtain the union of all extended regions.
A 0D region (point) will therefore become a circle, a 1D region (line) will become two half circles with a rectangle in between, and so on.
My simple approach using
infReg[d_,regs_] := ImplicitRegion[RegionDistance[#, {x, y}] < d, {x, y}] & /@ regs
RegionUnion[infReg[2,hulls]]
doesn't work...
Real test case
You can take these hulls
to test a solution with one of my real cases: PasteBin - Testcase
Minimal test case (take d=1
)
poly1 = ConvexHullMesh[{{0, 0}, {1, 1}, {2, 0}, {1, -1}}];
poly2 = ConvexHullMesh[{{0, 0}, {2, 2}, {2, 0}, {0, -2}}];
hulls = {poly1, poly2}
a 1D region (line) will become two half circles with a rectangle in between
- that is a stadium, in Mma since v10.2 it's calledStadiumShape
. $\endgroup$StadiumShape
for 2D andCapsuleShape
for 3D... $\endgroup$