Edit
- To get a more smooth surface, we use
RegionPlot3Dand useDisplayFunctionto transform the region.
RegionPlot3D[BoundaryDiscretizeRegion@Cuboid[]RegionPlot3D[ BoundaryDiscretizeRegion[Cuboid[], MaxCellMeasure -> .01], DisplayFunction -> ReplaceAll[{x_Real, y_Real, z_Real} :> {x (-x + y + z), y (x - y + z), z (x + y - z)}], PlotPointsBoxed -> 60False, MaxRecursion -> 2, Boxed -> False]2] - Transform the
Dodecahedron.
reg = PolyhedronData["Dodecahedron", "Region"]; RegionPlot3D[ BoundaryDiscretizeRegion@regBoundaryDiscretizeRegion[reg, MaxCellMeasure -> .01], DisplayFunction -> ReplaceAll[{x_Real, y_Real, z_Real} :> {x (-x + y + z), y (x - y + z), z (x + y - z)}], PlotPointsMaxRecursion -> 802, MaxRecursion -> 6, Boxed -> False] Original
- We can
DiscretizeRegiontheCuboid[]at first.
Clear[r]; r = TransformedRegion[DiscretizeRegion@Cuboid[], Function[ p, {p[[1]]*(-p[[1]] + p[[2]] + p[[3]]), p[[2]]*(p[[1]] - p[[2]] + p[[3]]), p[[3]]*(p[[1]] + p[[2]] - p[[3]])}]]; Region[r] - Test another reg,for example some polyhedrons.
Clear[reg, r]; reg = PolyhedronData["Dodecahedron", "Region"]; r = TransformedRegion[DiscretizeRegion[reg], Function[ p, {p[[1]]*(-p[[1]] + p[[2]] + p[[3]]), p[[2]]*(p[[1]] - p[[2]] + p[[3]]), p[[3]]*(p[[1]] + p[[2]] - p[[3]])}]]; {reg, Region[r]} 


