A mapping of a set A onto a set B is one in which distinct elements of A have distinct images in B is called a transformation (or one-to-one mapping) of A onto B .
A point transformation of the unextended space onto itself which carries each pair of points A, B into a pair A1,B1 such that A1*B1 = k*A*B where k is a fixed positive number, is called a similarity (or equiform transformation), and the particular case where k = 1 is called an isometry (or congruent transformation).
A similarity is said to be direct or opposite according as triangle ABC has or does not have the same sense as triangle A1B1C1 .
In Maple, the following isometries and similarities are implemented and applicable to polyhedra:
Direct Isometries | rotation, translation, ScrewDisplacement |
Opposite Isometries | reflection, RotatoryReflection, GlideReflection |
Non-isometric Similarities | homothety, homology |
In translation, the set S of all points of the unextended space is mapped onto itself by carrying each point P of S into a point P1 of S such that the directed segment PP1 is equal and parallel to a given directed segment AB of space. There are no invariant points under a translation of non-zero vector AB .
In rotation about an axis, each point P of S is carried into a point P1 of S by rotating P about a fixed line in space through a given angle. The fixed line is called the axis of rotation, and the points of the axis are the invariant points of the rotations.
In reflection in a point, each point P of S is carried into the point P1 of S such that PP1 is bisected by a fixed point O of space. The fixed point O is the only invariant point of the transformation.
In reflection in a line, each point P of S is carried into the point P1 of S such that PP1 is perpendicular bisected by a fixed line l of space.
In reflection in a plane, each point P of S is carried into the point P1 of S such that PP1 is perpendicularly bisected by a fixed plane p of space, and the points of p are the invariant points of the transformation.
In homothety, each point P of S is carried into the point P1 of S collinear with P and a fixed point O of space, and such that OP1/OP=k , where k is a nonzero real number. If k <> 1 , the point O is the only invariant point of the transformation.
A ScrewDisplacement is the product of a rotation and a translation along the axis of rotation.
A GlideReflection is the product of a reflection in a plane and a translation of vector AB where AB lies in the plane.
A RotatoryReflection is the product of a reflection in a plane and a rotation about a fixed axis perpendicular to the plane.
A homology is the product of a homothety and a rotation about an axis passing through the center of the homothety.
In general, to define a transformation without specifying the object to which the transformation is to be applied, one uses the "verb" form of the above transformations.
rotation | rotate |
translation | translate |
ScrewDisplacement | ScrewDisplace |
reflection | reflect |
RotatoryReflection | RotatoryReflect |
GlideReflection | GlideReflect |
homothety | dilate |
homology | StretchRotate |
When defining transformations using the "verb" forms, one can do more things relating to the theory of transformations.
When we speak of the resultant of the two transformations R*S as their "product" , we can make use of the analogy that exists between transformations and numbers.
Let R,S,... denote transformations, and write R*S for the resultant of R and S in that order.
Pusing the analogy further, let R^p denote the p-fold application of R , e.g., if R is a rotation through theta , R^p is the rotation through p*theta . A transformation R is said to be periodic if there is a positive integer p such that R^p=1 (the identity transformation), then its period is the smallest p which this happens.
Let R^(-1) denote the inverse of R , then the general formula for the inverse of a product is easily seen to be (R*S*T)^(-1)=T^(-1)*S^(-1)*R^(-1)
Let x denote any figure to which a transformation is applied, if T transform x into x1 (so that T^(-1) transforms x1 into x ), we write x1=x^T . This notation is justified by the fact that (x^T)^S=x^(T*S) .
If S transforms the pair of figures (x,x^T) into (x[1],x[1]^T[1]) , we say that S transforms T into T1 , and write T1=T^S , e.g., if T is a rotation about an axis l , then T^S is the rotation through the same angle about the transformed axis l^S .
In Maple, using the function inverse , one can compute the inverse of a given product of transformation, the function transprod converts a given transformation or product of transformations into a product of three primitive transformations ( translation, rotation and homothety ), while the function transform is to applied the "result" transformation to a specific object.
The following is an example of using transformations in the "verb" forms:
> with(geom3d): Define t1 which is a homothety with ratio 3, center of homology (0,0,0) > t1 := dilate(3,point(o,0,0,0)); t1 := dilate(3, o) > Define the plane oxy, and directed segment AB > point(A,1,0,0), point(B,0,0,1): > line(l1,[o,A]), line(l2,[o,B]), plane(p,[l1,l2]): > dsegment(AB,[A,B]): > Define t2 which is a glide-reflection with p as the plane of reflection and AB as the vector of translation > t2 := GlideReflect(p,AB); t2 := GlideReflect(p, AB) Define t3 as a screw-displacement with l3 as the rotational axis and AB as a vector of translation > t3 := ScrewDisplace(Pi/2,line(l3,[A,B]),AB); t3 := ScrewDisplace(1/2 Pi, l3, AB) Compute q1 which is the product of t2^t1*t3 > q1 := transprod(t2^t1,t3); q1 := transprod(dilate(1/3, o), reflect(p), translate(AB), dilate(3, o), rotate(1/2 Pi, l3), translate(AB)) Compute the inverse of q1 > q2 := inverse(q1); q2 := transprod(translate(_AB), rotate(3/2 Pi, l3), dilate(1/3, o), translate(_AB), reflect(p), dilate(3, o)) compute the product of q1*q2, one can quickly recognize that this is an identity transformation > q := transprod(q1,q2); q := transprod(dilate(1/3, o), reflect(p), translate(AB), dilate(3, o), rotate(1/2 Pi, l3), translate(AB), translate(_AB), rotate(3/2 Pi, l3), dilate(1/3, o), translate(_AB), reflect(p), dilate(3, o)) Simple check > tetrahedron(te,o,1); te > transform(te1,te,q); te1 > AreDistinct(te,te1); false Hence, the two objects are the same as they should.
Author: Ha Le (hle@cecm.sfu.ca) Create: April 6, 1996. Last Modified: November 17, 1998.