Skip to main content
6 of 6
added 6 characters in body
cvgmt
  • 91.7k
  • 6
  • 113
  • 194

Edit

  • To get a more smooth surface, we use RegionPlot3D and use DisplayFunction to transform the region.
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)}], Boxed -> False, MaxRecursion -> 2] 

enter image description here

  • Transform the Dodecahedron.
reg = PolyhedronData["Dodecahedron", "Region"]; RegionPlot3D[ BoundaryDiscretizeRegion[reg, MaxCellMeasure -> .01], DisplayFunction -> ReplaceAll[{x_Real, y_Real, z_Real} :> {x (-x + y + z), y (x - y + z), z (x + y - z)}], MaxRecursion -> 2, Boxed -> False] 

enter image description here

Original

  • We can DiscretizeRegion the Cuboid[] 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] 

enter image description here

  • 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]} 

enter image description here

cvgmt
  • 91.7k
  • 6
  • 113
  • 194