TransformedRegion[reg,f]
represents the transformed region
, where reg is a region and f is a function.
TransformedRegion
TransformedRegion[reg,f]
represents the transformed region
, where reg is a region and f is a function.
Details and Options
- TransformedRegion is also known as the image of a region.
Examples
open all close allBasic Examples (2)
ℛ = TransformedRegion[Rectangle[], RotationTransform[π / 4]]Region[ℛ]Area[ℛ]ℛ = TransformedRegion[Disk[{1, 1}, 4], {Indexed[#, 1] Indexed[#, 2], Indexed[#, 1] + Indexed[#, 2]}&];Region[ℛ]RegionMeasure[ℛ]Scope (26)
Special Regions (10)
Some transformed regions are computed explicitly:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = TransformedRegion[Subscript[ℛ, 1], ShearingTransform[Pi / 4, {1, 0}, {0, 1}]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]A linear-fractional transformation of the unit ball:
Subscript[ℛ, 1] = Ball[];
𝒯 = TransformationFunction[{{7, 5, -2, -4}, {3, -8, 9, 4}, {-8, 3, 1, -6}, {1, 0, 0, 2}}];
Subscript[ℛ, 2] = TransformedRegion[Subscript[ℛ, 1], 𝒯]Graphics3D[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Translate a unit Disk:
ℛ = TransformedRegion[Disk[], TranslationTransform[{2, 3}]];{RegionMember[ℛ, {0, 0}], RegionMember[ℛ, {2, 3}]}Conditions for point membership:
RegionMember[ℛ, {x, y}]Region[ℛ]Shear a unit Rectangle:
ℛ = TransformedRegion[Rectangle[], ShearingTransform[30Degree, {1, 0}, {0, 1}]];Compute the RegionBounds:
RegionBounds[ℛ]Region[ℛ]Rotate a standard Triangle:
r = Triangle[];
Region[r]ℛ = TransformedRegion[Triangle[], RotationTransform[π / 3]];Region[ℛ]Region remains constant and bounded:
{ConstantRegionQ[r], ConstantRegionQ[ℛ]}{BoundedRegionQ[r], BoundedRegionQ[ℛ]}Scale a Circle:
r = Circle[];
Region[r]ℛ = TransformedRegion[r, ScalingTransform[2., {1, 1}]];Region[ℛ]Compute the ArcLength:
{ArcLength[r], ArcLength[ℛ]}A disk transformed by a nonlinear transformation
:
r1 = TransformedRegion[Disk[{1, 1}, 4], Function[p, {p[[1]] p[[2]], p[[1]] + p[[2]]}]];Region[r1]Express the same point mapping using Indexed:
r2 = TransformedRegion[Disk[{1, 1}, 4], {Indexed[#, 1] Indexed[#, 2], Indexed[#, 1] + Indexed[#, 2]}&];Region[r2]Compute the RegionMeasure:
RegionMeasure[r2]Map points from a 3D Cuboid into 2D by a nonlinear transformation
:
ℛ = TransformedRegion[Cuboid[{0, 0, 0}, {1, 1, 1}], {Indexed[#, 1] + Indexed[#, 2], Indexed[#, 1] + Indexed[#, 3]}&];Geometric and embedding dimension:
{RegionDimension[ℛ], RegionEmbeddingDimension[ℛ]}Compute the RegionCentroid:
c = RegionCentroid[ℛ]RegionPlot[ℛ, Epilog -> {Red, Point[c]}]SignedRegionDistance[ℛ, {1, 1}]SignedRegionDistance[ℛ, {0, 2}]Rotate a 3D Cuboid:
ℛ = TransformedRegion[Cuboid[{0, 0, 0}, {1, 1, 1}], RotationTransform[Pi / 3, {1, 1, 1}]];RegionDistance[ℛ, {0, 0, 0}]RegionDistance[ℛ, {2, 1, 0}]RegionNearest[ℛ, {1, 1, 1}]RegionNearest[ℛ, {2, 1, 0}]pts = Flatten[Table[{1 / 2, 1 / 2, 1 / 2} + {Cos[k 2π / 10]Sin[l π / 5], Sin[k 2π / 10]Sin[l π / 5], Cos[l π / 5]}, {k, 0., 9}, {l, 0., 4}], 1];
nst = RegionNearest[ℛ, #]& /@ pts;Graphics3D[{GeometricTransformation[Cuboid[], RotationTransform[Pi / 3, {1, 1, 1}]], {Dashed, Line[Transpose[{pts, nst}]]}, {Red, Point[pts]}, {Blue, Point[nst]}}]Integrate over a rotated unit cube:
ℛ = TransformedRegion[Cuboid[{0, 0, 0}, {1, 1, 1}], RotationTransform[Pi / 3, {1, 1, 1}]];Integrate[x y z, {x, y, z}∈ℛ]MinValue[{x y z - x y, {x, y, z}∈ℛ}, {x, y, z}]Reduce[x^2 + y^2 + z^2 == 3 / 2 && z^2 == x y && {x, y, z}∈ℛ, {x, y, z}]Formula Regions (6)
Shear a ParametricRegion:
pr = ParametricRegion[{Sin[θ], Sin[2θ]}, {{θ, 0, 2π}}];Region[pr]ℛ = TransformedRegion[pr, ShearingTransform[30Degree, {1., 0}, {0, 1}]];Compute the ArcLength:
ArcLength[ℛ]Nearest point on the region from a given point:
pt = {1.2, -0.75};
npt = RegionNearest[ℛ, pt]RegionPlot[ℛ, Epilog -> {PointSize[Large], {Red, Point[pt]}, {Blue, Point[npt]}, {Dashed, Line[{pt, npt}]}}]A rotated ParametricRegion:
pr = ParametricRegion[{{s, (1 + t) s ^ 2 - t}, -1 ≤ s ≤ 1 && 0 ≤ t ≤ 1}, {s, t}];Region[pr]ℛ = TransformedRegion[pr, RotationTransform[Pi / 4, {1, 1}]];Region[ℛ]Compute the Area:
Area[ℛ]Compute the RegionBounds:
RegionBounds[ℛ]RegionDistance[ℛ, {1, -1}]RegionDistance[ℛ, {2., 0}]Shear an ImplicitRegion:
ir = ImplicitRegion[x ^ 2 - y ^ 2 ≤ 1, {x, y}];DiscretizeRegion[ir, {{-2, 2}, {-2, 2}}]ℛ = TransformedRegion[ir, ShearingTransform[30Degree, {1, 0}, {0, 1}]];DiscretizeRegion[ℛ, {{-3, 3}, {-2, 2}}]{BoundedRegionQ[ir], BoundedRegionQ[ℛ]}{RegionMember[ℛ, {0, 0}], RegionMember[ℛ, {2, 0}]}Conditions for point membership:
RegionMember[ℛ, {x, y}]Scale an ImplicitRegion:
ir = ImplicitRegion[x^2 + y^2 + z^2 < 1 || (x + 1)^2 + y^2 + z^2 < 1, {x, y, z}];Region[ir]ℛ = TransformedRegion[ir, ScalingTransform[{1, 2, 2}]];Region[ℛ]Compute the Volume:
Volume[ℛ]Integrate over the region:
Integrate[x + y z, {x, y, z}∈ℛ]MinValue[{x + y z, {x, y, z}∈ℛ}, {x, y, z}]Reduce[x + y z == 3 / 2 && y == x z && {x, y, z}∈ℛ, {x, y, z}]An ImplicitRegion transformed by a nonlinear transformation
:
ir = ImplicitRegion[0 ≤ x ≤ 2 && 0 ≤ y ≤ 2 && x y ≤ 1, {x, y}];RegionPlot[ir]r1 = TransformedRegion[ir, Function[p, {p[[1]] p[[2]], p[[1]] + p[[2]]}]];RegionPlot[r1]Express the same point mapping using Indexed:
r2 = TransformedRegion[ir, {Indexed[#, 1] Indexed[#, 2], Indexed[#, 1] + Indexed[#, 2]}&];RegionPlot[r2]Compute the RegionMeasure:
RegionMeasure[r2]Map points from a 3D ball into 2D by a nonlinear transformation
:
ir = ImplicitRegion[x^2 + y^2 + z^2 < 1, {x, y, z}];Region[ir]ℛ = TransformedRegion[ir, {Indexed[#, 1] + Indexed[#, 2], Indexed[#, 1] + Indexed[#, 3]}&];Geometric and embedding dimension:
{RegionDimension[ℛ], RegionEmbeddingDimension[ℛ]}Compute the RegionCentroid:
c = RegionCentroid[ℛ]RegionPlot[ℛ, Epilog -> {Red, Point[c]}]Mesh Regions (3)
Rotate a BoundaryMeshRegion:
br = BoundaryMeshRegion[{{2, 1}, {6, -1}, {4, 1}, {6, 3}}, Line[{1, 2, 3, 4, 1}]]ℛ = TransformedRegion[br, RotationTransform[Pi / 3, {1, 1}]];Transformed region is still BoundaryMeshRegionQ:
{BoundaryMeshRegionQ[br], BoundaryMeshRegionQ[ℛ]}{RegionMember[ℛ, {2, 3}], RegionMember[ℛ, {1, 3}]}Compute the RegionCentroid:
c = RegionCentroid[ℛ]RegionPlot[ℛ, Epilog -> {Red, Point[c]}]Compute the Area:
Area[ℛ]Integrate[x y, {x, y}∈ℛ]Shear a MeshRegion:
mr = MeshRegion[{{0, 0, 0}, {1, 0, 0}, {1, 1, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 1}, {0, 1, 1}, {0.5, 0.5, 1.5}, {1.5, 0, 0}, {1.5, 1, 0}, {1, -0.5, 0}}, Hexahedron[{1, 2, 3, 4, 5, 6, 7, 8}]]ℛ = TransformedRegion[mr, ShearingTransform[30Degree, {1, 0, 0}, {0, 1, 0}]]Transformed region is still MeshRegionQ:
{MeshRegionQ[mr], MeshRegionQ[ℛ]}Compute the Volume:
Volume[ℛ]Compute the RegionBounds:
RegionBounds[ℛ]RegionDistance from a point:
RegionDistance[ℛ, {1, -1, 1}]RegionDistance[ℛ, {1, 1, 1}]Integrate over the region:
Integrate[x y z, {x, y, z}∈ℛ]Scale a lower-dimensional MeshRegion:
mr = MeshRegion[{{0, 0}, {1, 0}, {2, 1 / 2}, {2, -1 / 2}}, {Line[{1, 2}], Line[{2, 3}], Line[{3, 4}], Line[{4, 2}]}]ℛ = TransformedRegion[mr, ScalingTransform[2, {1, 1}]]Compute the ArcLength:
{ArcLength[mr], ArcLength[ℛ]}Nearest point on the region from a given point:
pt = {1.5, 1.5};
npt = RegionNearest[ℛ, pt]RegionPlot[ℛ, Epilog -> {PointSize[Large], {Red, Point[pt]}, {Blue, Point[npt]}, {Dashed, Line[{pt, npt}]}}]Derived Regions (5)
Transform a TransformedRegion:
tr = TransformedRegion[Cuboid[], ShearingTransform[30Degree, {1, 0, 0}, {0, 1, 1}]];Region[tr]ℛ = TransformedRegion[tr, ReflectionTransform[{0, 1, 1}]];Region[ℛ]Compute the Volume:
Volume[ℛ]Integrate over the region:
Integrate[x + y z, {x, y, z}∈ℛ]MinValue[{x + y z, {x, y, z}∈ℛ}, {x, y, z}]Reduce[x + y z == 3 / 2 && y == x z && {x, y, z}∈ℛ, {x, y, z}]Transform a RegionDifference:
rd = RegionDifference[Rectangle[{0, 0}], Disk[{1, 0}, 1 / 2]];Region[rd]ℛ = TransformedRegion[rd, RotationTransform[π / 4]];Region[ℛ]Compute the Area:
Area[ℛ]Compute the RegionBounds:
RegionBounds[ℛ]SignedRegionDistance from a given point:
SignedRegionDistance[ℛ, {-1 / 4, 1}]SignedRegionDistance[ℛ, {2, -3}]Transform a RegionBoundary:
rb = RegionBoundary[Polygon[{{0, 0}, {3, -1}, {2, 0}, {3, 1}}]];Region[rb]ℛ = TransformedRegion[rb, ScalingTransform[2, {1, 1}]];Compute the ArcLength:
ArcLength[ℛ]Nearest point on the region from a given point:
pt = {3 / 2, 2};
npt = RegionNearest[ℛ, pt]RegionPlot[ℛ, Epilog -> {PointSize[Large], {Red, Point[pt]}, {Blue, Point[npt]}, {Dashed, Line[{pt, npt}]}}]Transform a RegionProduct:
rp = RegionProduct[Disk[{0, 0}, 1], Line[{{0}, {1}}]];Region[rp]ℛ = TransformedRegion[rp, ReflectionTransform[{1, 0, 1}]];Region[ℛ]Compute the Volume:
Volume[ℛ]Compute the RegionBounds:
RegionBounds[ℛ]RegionDistance from a point:
RegionDistance[ℛ, {0, 0, 0}]RegionDistance[ℛ, {1, 1, 1}]Transform a RegionUnion by a nonlinear transformation
:
ru = RegionUnion[Disk[{0, 0}, 2], Disk[{3, 0}, 2]];Region[ru]r1 = TransformedRegion[ru, Function[p, {p[[1]] p[[2]], p[[1]] + p[[2]]}]];Region[r1]Express the same point mapping using Indexed:
r2 = TransformedRegion[ru, {Indexed[#, 1] Indexed[#, 2], Indexed[#, 1] + Indexed[#, 2]}&];Region[r2]Compute the RegionBounds:
RegionBounds[r2]CSG Regions (1)
Transform a CSGRegion in 2D:
TransformedRegion[CSGRegion["Difference", {Disk[], Disk[{0, 0}, 1 / 2]}], ScalingTransform[{3, 1}]]TransformedRegion[CSGRegion["Difference", {Ball[], Cuboid[{-2, -2, 0}, {2, 2, -2}]}], ScalingTransform[{3, 1, 1}]]Subdivision Regions (1)
Transform a SubdivisionRegion in 2D:
TransformedRegion[SubdivisionRegion[Rectangle[]], ScalingTransform[{3, 1}]]TransformedRegion[SubdivisionRegion[Cube[]], ScalingTransform[{3, 1, 1}]]Applications (2)
Any triangle is an affine transformation of the standard triangle:
{p0, p1, p2} = {{1, 1}, {2, 2}, {3, 1}};The transformation is given by
, where
:
A = {p1 - p0, p2 - p0};t = AffineTransform[{A, p0}];Compare original and transformed unit triangle:
Subscript[ℛ, 1] = Triangle[{p0, p1, p2}];
Subscript[ℛ, 2] = Triangle[{{0, 0}, {1, 0}, {0, 1}}];{Region[Subscript[ℛ, 1], Frame -> True],
Region[TransformedRegion[Subscript[ℛ, 2], t], Frame -> True]}Find the perspective transformation of a unit Cuboid with center
:
tr = LinearFractionalTransform[{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {-(1/2), 0, 0, 1}}];ℛ = TransformedRegion[Cuboid[], tr]RegionPlot3D[Evaluate@RegionMember[ℛ, {x, y, z}], {x, -2, 2}, {y, -0.5, 2.5}, {z, -0.5, 2.5}, Mesh -> None, PlotPoints -> 100, PlotStyle -> Opacity[0.3, Yellow]]Compute the Volume:
Volume[ℛ]Related Guides
History
Text
Wolfram Research (2014), TransformedRegion, Wolfram Language function, https://reference.wolfram.com/language/ref/TransformedRegion.html.
CMS
Wolfram Language. 2014. "TransformedRegion." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TransformedRegion.html.
APA
Wolfram Language. (2014). TransformedRegion. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TransformedRegion.html
BibTeX
@misc{reference.wolfram_2026_transformedregion, author="Wolfram Research", title="{TransformedRegion}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/TransformedRegion.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_transformedregion, organization={Wolfram Research}, title={TransformedRegion}, year={2014}, url={https://reference.wolfram.com/language/ref/TransformedRegion.html}, note=[Accessed: 13-June-2026]}