Addendum

On the page Some Theorems on Rotation and Translation, there it covers the product of rotations.

I have learned, that with Complex Numbers, these theorems become trivial to prove, and one can obtain the equivalent rotation or translation much easily. (from Visual Complex Analysis , by Tristan Needham. p.17. Buy at amazon )

Complex Numbers have interesting history. Here we will only give a formal style definition, but with some explanations on why they are so defined.

Complex Number is defined as a pair {a,b}, where a and b are real numbers.

Addition of complex number is defined as: {a,b} ⊕ {c,d} := {a + c, b + d}

Multiplication is defined as: {a, b}⊗{c, d} := {a*c - b*d, b*c + a*d}

This definition of multiplication has important meaning when interpreted geometrically. Complex numbers can be thought as vectors, with a multiplication rule.

Here's a explanation: Suppose the distance from {c,d} to {0,0} is r, and suppose it makes an angle θ with the positive x-axis. Then, a complex number {a,b} multipied by {c,d} by the definition {a*c - b*d, b*c + a*d}, is geometrically equivalent of rotating the point {a,b} by θ, then scale it by r.

If A and B are complex numbers, than A⊗B == B⊗A. The order does not matter.


A rotation of θ around origin is expressed in complex number as multiplication by {Cos[θ],Sin[θ]}. In other words, a point {a,b} rotated by θ around the origin can be written as {a,b}⊗{Cos[θ],Sin[θ]}.

A translation by {a,b} is expressed as adding a complex number {a,b}.


Here's how to find products of rotation, using complex numbers.

A rotation of θ centered on A can be done by a sequence of:

 1. translation of -A,
 2. rotation of θ on origin,
 3. translate it back by A.

In formulas, we have:

 r[A,θ] == t[A]^-1 * r[0,θ] * t[A].
 
Expressed as complex numbers, the right hand side is

 R (Z - A) + A
  
where Z is the complex number to be acted on, and R is {Cos[θ],Sin[θ]}.

Expand and collect we have

 R Z + (-R+1) A

The R Z term is a rotation of Z, while the other term is a
translation. So, we have shown that a rotation on arbitrary center is
equivalent to a rotation on origin followed by a translation.

Similarly, a translation followed by a rotation on origin:

 t[A] * r[0,θ]

written in complex numbers

 (Z + A) R

is equal to

 Z R + A R

meaning that it is equivalent to a rotation on origin followed by a
translation.

A rotation θ on a point B followed by a translation is also
equivalent to a rotation on origin followed by a translation. Witness:

r[B,θ] * t[A]

Since rotation on a arbitrary point B is equivalent to rotation on
origin followed by a translation, as show above, so we can rewrite the
r[B,θ] to be

r[{0,0},α] * t[C]

for some α and C. Thus

r[B,θ] * t[A] == r[{0,0},α] * t[C] * t[A]

This shows that a rotation on a point followed by a translation is
just a rotation on origin followed by a translation.

The exact coordinate any product of symmetry can be easily calculated
by complex numbers.

The sequence of rotations
 r[{a1,a2},α] * r[{b1,b2},β]
applied to the point
 {x,y}

in complex numbers is then:

 (
    (  ({x,y} - {a1,a2}) * {Cos[α],Sin[α]} + {a1,a2}  )
    - {a1,a2}
 )
 * {Cos[β],Sin[β]}
 + {b1,b2}

In Mathematica, if we define the complex multiplication as cTimes, and
addition as cPlus:

 cPlus[{a_, b_}, {c_, d_}] := {a + c, b + d}
 cTimes[{a_, b_}, {c_, d_}] := {a*c - b*d, b*c + a*d}

then our sequence of rotations:

cPlus[cTimes[cPlus[cPlus[cTimes[cPlus[{x, y}, -{a1, a2}], {Cos[α],
Sin[α]}], {a1, a2}], -{b1, b2}], {Cos[β], Sin[β]}], {b1,
b2}]

Expands to:

{b1 + Cos[β]*(a1 - b1 + (-a1 + x)*Cos[α] - (-a2 +
y)*Sin[α]) - (a2 - b2 + (-a2 + y)*Cos[α] + (-a1 +
x)*Sin[α])*Sin[β], b2 + Cos[β]*(a2 - b2 + (-a2 +
y)*Cos[α] + (-a1 + x)*Sin[α]) + (a1 - b1 + (-a1 +
x)*Cos[α] - (-a2 + y)*Sin[α])*Sin[β]}
2002-02