TransformationFunction[data]
represents a transformation function that applies geometric and other transformations.
TransformationFunction
TransformationFunction[data]
represents a transformation function that applies geometric and other transformations.
Details
- TransformationFunction[…] objects are generated by constructors such as TranslationTransform, RotationTransform, etc.
- TransformationFunction[…][x] applies the transformation function to a vector x, returning a transformed vector.
- TransformationFunction[…][{x1,x2,…}] for a list of vectors applies the transformation to each vector xi, producing a list of transformed vectors.
- TransformationFunction works with both numerical and symbolic vectors and represents a linear fractional transformation
, where A∈Matrices[{m,n}], b∈Matrices[{m,1}], c∈Matrices[{1,n}] and d∈Matrices[{1,1}]. - For smaller dimensions, it is typically displayed as an
transformation matrix
. TransformationMatrix can be used to extract the transformation matrix. - Composition[t1,t2] where ti has transformation matrix
gives a new TransformationFunction object with transformation matrix
. - InverseFunction[t] where t has transformation matrix
gives a new TransformationFunction object with transformation matrix
where
is the matrix inverse. - GeometricTransformation can be used to represent the effect of applying a TransformationFunction object to geometrical or graphics objects when restricted to affine transformations.
- TransformationFunction[…][prop] gives the transformation property prop. For a transformation function with transformation matrix
, properties include: -
"AffineQ" whether the transformation is structurally affine or not, it gives True if both c and d are zero "AffineMatrix" the matrix A "AffineVector" the vector b "FractionalVector" the vector c "FractionalConstant" the constant d "ArgumentLength" the length n of the vector x "ResultLength" the length m of the result vector "TransformationMatrix"
Examples
open all close allBasic Examples (1)
Scope (15)
Constructing TransformationFunction (10)
A translation by the vector {qx,qy,qz}:
t = TranslationTransform[{qx, qy, qz}]t[{x, y, z}]r = RotationTransform[θ, {0, 0, 1}]r[{x, y, z}]Scaling along the coordinate axes:
ScalingTransform[{sx, sy}]Shearing in the
direction by an angle θ:
ShearingTransform[θ, {1, 0}, {0, 1}]ReflectionTransform[{0, 0, 1}]Rescaling the box [xmin, xmax][ymin, ymax] to the unit square:
RescalingTransform[{{xmin, xmax}, {ymin, ymax}}]A general TransformationFunction:
t = LinearFractionalTransform[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}]t[{x, y}]tl = LinearFractionalTransform[{ Array[Subscript[a, #1, #2]&, {2, 2}] }]tl[{x, y}]ta = LinearFractionalTransform[{ Array[Subscript[a, #1, #2]&, {2, 2}], Array[Subscript[b, #]&, {2}] }]ta[{x, y}]A linear fractional transformation:
tlft = LinearFractionalTransform[{Array[Subscript[a, #1, #2]&, {2, 2}], Array[Subscript[b, #]&, {2}], Array[Subscript[c, #]&, {2}]}]tlft[{x, y}]Working with TransformationFunction as a Function (4)
Here
is a rotation of
around the
axis:
t = RotationTransform[π / 3., {0, 0, 1}]t[{1, 0, 0}]This transforms a list of vectors:
vl = RandomReal[1, {10, 3}];t[vl]Composing two transformations:
t1 = RotationTransform[θ]t2 = RotationTransform[ϕ]Composition[t1, t2]//Simplifyt = RotationTransform[θ]it = InverseFunction[t]//SimplifyComposition[it, t]//SimplifyComputing the partial derivative
:
f = TransformationFunction[{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}]Derivative[{1, 2}][f]Working with TransformationFunction as a Formula (1)
This defines a general transform:
t = LinearFractionalTransform[{ {{1, 2}, {3, 4}}, {1, 2}, {3, 1} }]This is the corresponding formula:
f = t[{x, y}]D[f, {x, 2}]Limit[f, x -> 1]Integrate[f, x]Plot3D[f, {x, -1, 1}, {y, -1, 1}, PlotStyle -> {Red, Green}, Exclusions -> {1 + 3x + y == 0}]Applications (2)
TransformationFunction can be used as an argument to GeometricTransformation:
t = AffineTransform[{DiagonalMatrix[{2, 2, 1}], {1, 1, 1}}]Graphics3D[GeometricTransformation[Cylinder[], t], Axes -> True]Integrate a function over a rhombic region:
Integrate[(x ^ 3 + y ^ 3)Boole[x / 2 < y < x / 2 + 3 / 4 && y / 2 < x < y / 2 + 3 / 4], {x, 0, 3 / 2}, {y, 0, 3 / 2}]
defines a change of variables that maps the unit square to the integration region:
t = AffineTransform[{{1, 1 / 2}, {1 / 2, 1}}]The integrand in the new coordinates:
fuv = x ^ 3 + y ^ 3 /. Thread[{x, y} -> t[{u, v}]]jac = Det[TransformationMatrix[t]]Integrate[fuv Abs[jac], {u, 0, 1}, {v, 0, 1}]Properties & Relations (1)
Find the ![]()
power of a transformation:
t = LinearFractionalTransform[{{-3, 2, 1}, {0, 1, 1}, {4, -2, -4}}]tt[n_] := LinearFractionalTransform[MatrixPower[TransformationMatrix[t], n]]Nest[Together@t@#&, {x0, y0}, 5]tt[5][{x0, y0}]% == %%//SimplifyFind the ![]()
iteration using RSolve:
RSolve[Thread /@ {{x[n + 1], y[n + 1]} == t[{x[n], y[n]}], {x[0], y[0]} == {x0, y0}}, {x, y}, n]{x[5], y[5]} /. %[[1]]//SimplifyRelated Guides
Text
Wolfram Research (2007), TransformationFunction, Wolfram Language function, https://reference.wolfram.com/language/ref/TransformationFunction.html (updated 2019).
CMS
Wolfram Language. 2007. "TransformationFunction." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/TransformationFunction.html.
APA
Wolfram Language. (2007). TransformationFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TransformationFunction.html
BibTeX
@misc{reference.wolfram_2026_transformationfunction, author="Wolfram Research", title="{TransformationFunction}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/TransformationFunction.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_transformationfunction, organization={Wolfram Research}, title={TransformationFunction}, year={2019}, url={https://reference.wolfram.com/language/ref/TransformationFunction.html}, note=[Accessed: 12-June-2026]}