Homothety of a Stellated Icosahedron(VRML)

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.