# GeometricTransformation

GeometricTransformation[g,tfun]

represents the result of applying the transformation function tfun to the geometric objects corresponding to the primitives g.

transforms geometric objects in g by effectively replacing every point r by m.r.

GeometricTransformation[g,{m,v}]

effectively replaces every point r by m.r+v.

GeometricTransformation[g,{t1,t2,}]

represents multiple copies of g transformed by a collection of transformations.

# Details and Options  • remains unchanged under evaluation, but affects how g is rendered.
• GeometricTransformation works on lists of graphics primitives and directives in 2D and 3D.
• GeometricTransformation[g,{m,v}] effectively applies an affine transform to g.
• GeometricTransformation[g,{{mxx,myx},{mxy,myy}}] transforms the unit vectors and to {mxx,mxy} and {myx,myy}, respectively.
• For different spec, GeometricTransformation[g,{m,spec}] leaves fixed the following special points on the bounding box of g:
•  Center center Left midpoint of the left side Right midpoint of the right side Top midpoint of the top Bottom midpoint of the bottom Front midpoint of the front Back midpoint of the back {Left,Top}, etc. corners
• For objects specified with scaled coordinates Scaled[{x,y}], GeometricTransformation effectively applies its transformation to the corresponding ordinary coordinates.
• Normal[expr] if possible replaces all GeometricTransformation[gi,] constructs by versions of the gi in which the coordinates have explicitly been transformed.
• The following option can be given:
•  ContentSelectable Automatic whether to allow contents to be selected
• For matrices m1 and m2, GeometricTransformation[GeometricTransformation[g,m1],m2] is equivalent to GeometricTransformation[g,m2.m1].

# Examples

open allclose all

## Basic Examples(3)

Transform a 2D object:

Transform a 3D object:

Multiple transforms can be applied to the same object:

## Scope(5)

Transformation applied to a 2D shape:

Transformation applied to a 3D shape:

Objects with scaled coordinates:

Keep the rightmost point of the circle fixed:

Create nested transformations:

## Properties & Relations(2)

Using {m,v} as the second argument is the same as using AffineTransform[{m,v}]:

When possible, Normal will perform the transformations explicitly:

## Neat Examples(1)

Rotating and moving a cuboid along a space curve: