gives a TransformationFunction that represents a reflection in a mirror through the origin, normal to the vector v.
ReflectionTransform[v,p]
gives a reflection in a mirror through the point p, normal to the vector v.
ReflectionTransform
gives a TransformationFunction that represents a reflection in a mirror through the origin, normal to the vector v.
ReflectionTransform[v,p]
gives a reflection in a mirror through the point p, normal to the vector v.
Details
- ReflectionTransform gives a TransformationFunction that can be applied to vectors.
- ReflectionTransform works in any number of dimensions. In 2D it reflects in a line; in 3D it reflects in a plane.
- The point p can lie anywhere in the mirror.
Examples
open all close allBasic Examples (2)
Scope (3)
Reflection transform for symbolic unit vector {u, v, w}:
rt = ReflectionTransform[{u, v, w}]//Simplify[#, {Element[{u, v, w}, Reals], u ^ 2 + v ^ 2 + w ^ 2 == 1}]&Vectors normal to {u, v, w} remain unchanged:
rt[NullSpace[{{u, v, w}}]] == NullSpace[{{u, v, w}}]//Simplify[#, u ^ 2 + v ^ 2 + w ^ 2 == 1]&Transformation applied to a 2D shape:
gr = {Rectangle[], AbsolutePointSize[10], Opacity[1], {Magenta, Point[{0, 0}]}, {Green, Point[{1, 1}]}};Graphics[{{Opacity[.35], Blue, gr}, GeometricTransformation[{Opacity[.85], Red, gr}, ReflectionTransform[{1, 1}, {-.2, -.2}]]}]Transformation applied to a 3D shape:
gr = {Cuboid[], AbsolutePointSize[10], Opacity[1], {Magenta, Point[{0, 0, 0}]}, {Green, Point[{1, 1, 1}]}};Graphics3D[{{Opacity[.35], Blue, gr}, GeometricTransformation[{Opacity[.85], Red, gr}, ReflectionTransform[{2, 1, 0}, {-.1, -.1, 0}]]}, Boxed -> False]Applications (4)
gr = Plot[E ^ x, {x, -3, 2}];Show[gr, Plot[x, {x, -3, 7}, PlotStyle -> StandardGray], gr /. L_Line :> {Red, GeometricTransformation[L, ReflectionTransform[{-1, 1}]]}, PlotRange -> All]Plot[Sin[x], {x, -2Pi, 2Pi}, AspectRatio -> Automatic, Axes -> False, PlotRange -> All] /. L_Line :> Table[GeometricTransformation[L, ReflectionTransform[{Cos[u], Sin[u]}]], {u, Pi / 14Range[7]}]ImageTransformation[[image], ReflectionTransform[{1, 0}, {.5, 0}]]Reflection transform of a 3D image with respect to the
axis:
ImageTransformation[\!\(\*Graphics3DBox[«8»]\), ReflectionTransform[{1, 0, 0}], DataRange -> {{-.5, .5}, Automatic, Automatic}]Properties & Relations (5)
The reflection transformation is an isometric transform, i.e. preserves distances:
t = ReflectionTransform[{1, 2}, {3, 4}];{p1, p2} = {{10, 17}, {1, 2}};
{tp1, tp2} = t[{p1, p2}];EuclideanDistance[p1, p2] == EuclideanDistance[tp1, tp2]The reflection transformation is its own inverse:
t = ReflectionTransform[{1, 1, 1}];InverseFunction[t] == tThe determinant of the transformation matrix is
:
t = ReflectionTransform[{1, 2, 3}];Det[TransformationMatrix[t]]ReflectionTransform can be represented as a scaling transform:
t = ReflectionTransform[{1, 1, 1}];t == ScalingTransform[-1, {1, 1, 1}]Top-bottom image reflection using ImageTransformation:
i = [image];
ImageReflect[i] == ImageTransformation[i, ReflectionTransform[{0, 1}], PlotRange -> All]Reflection across the main diagonal:
ImageReflect[i, Left -> Top] == ImageTransformation[i, ReflectionTransform[{1, 1}], PlotRange -> All]Reflection across the main antidiagonal:
ImageReflect[i, Right -> Top] == ImageTransformation[i, ReflectionTransform[{-1, 1}], PlotRange -> All]Possible Issues (1)
Reflection changes the orientation of polygons:
gr = {FaceForm[Red, Blue], Polygon[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}}]};{Graphics3D[gr, PlotRange -> {-.1, .1}], Graphics3D[GeometricTransformation[gr, ReflectionMatrix[{0, 0, 1}]], PlotRange -> {-.1, .1}]}Neat Examples (1)
Reflect a 3D object about a point p:
cow = ExampleData[{"Geometry3D", "Cow"}, "GraphicsComplex"];p = {0, 0, -0.251619};Along the
axis, about the
plane:
Graphics3D[{EdgeForm[None], Opacity[0.5], Lighter[ColorData[1, 1], 0.5], cow, Lighter[ColorData[1, 2], 0.5], GeometricTransformation[cow, ReflectionTransform[{1, 0, 0}, p]]}, Lighting -> "Neutral", ImageSize -> Large, Boxed -> False]Along the
axis, about the
plane:
Graphics3D[{EdgeForm[None], Opacity[0.5], Lighter[ColorData[1, 1], 0.5], cow, Lighter[ColorData[1, 2], 0.5], GeometricTransformation[cow, ReflectionTransform[{0, 1, 0}, p]]}, Lighting -> "Neutral", ImageSize -> Large, Boxed -> False]Along the
axis, about the
plane:
Graphics3D[{EdgeForm[None], Opacity[0.5], Lighter[ColorData[1, 1], 0.5], cow, Lighter[ColorData[1, 2], 0.5], GeometricTransformation[cow, ReflectionTransform[{0, 0, 1}, p]]}, Lighting -> "Neutral", ImageSize -> Large, Boxed -> False]See Also
ReflectionMatrix TransformationMatrix TransformationFunction RotationTransform TranslationTransform ScalingTransform
Function Repository: InversionTransform
Related Guides
History
Text
Wolfram Research (2007), ReflectionTransform, Wolfram Language function, https://reference.wolfram.com/language/ref/ReflectionTransform.html.
CMS
Wolfram Language. 2007. "ReflectionTransform." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ReflectionTransform.html.
APA
Wolfram Language. (2007). ReflectionTransform. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ReflectionTransform.html
BibTeX
@misc{reference.wolfram_2026_reflectiontransform, author="Wolfram Research", title="{ReflectionTransform}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/ReflectionTransform.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_reflectiontransform, organization={Wolfram Research}, title={ReflectionTransform}, year={2007}, url={https://reference.wolfram.com/language/ref/ReflectionTransform.html}, note=[Accessed: 12-June-2026]}