# Parallelogram Iterations

The applet below illustrates an astounding fact discovered by Fabian Rothelius.

Let there be a parallelogram ABCD. Starting with ABCD, Fabian's algorithm generates another parallelogram A'B'C'D'. The algorithm then iterates on the latest parallelogram. (The applet allows for 200 iterations.)

Here is how it works:

A' = (A + B)/2,
D' = (A + D)/2,
B' = A' + C - A,
C' = D' + C - A.

You can see how this works by increasing the number of iterations in the applet.

### This applet requires Sun's Java VM 2 which your browser may perceive as a popup. Which it is not. If you want to see the applet work, visit Sun's website at https://www.java.com/en/download/index.jsp, download and install Java VM and enjoy the applet.

 What if applet does not run?

Why does it work?

### This applet requires Sun's Java VM 2 which your browser may perceive as a popup. Which it is not. If you want to see the applet work, visit Sun's website at https://www.java.com/en/download/index.jsp, download and install Java VM and enjoy the applet.

 What if applet does not run?

A' = (A + B)/2,
D' = (A + D)/2,
B' = A' + C - A,
C' = D' + C - A.

Fabian gives the following explanation:

Consider a parallelogram where AD = ½AB, and where angle DAB = π - arctan(7). For such a parallelogram, A'B'C'D' is congruent to ABCD, in fact simply rotated about the midpoint of CD, and so on for every subsequent parallelogram. Thus every vertex lies on one of three concentric circles, and the proposition is true for this case.

However, every other parallelogram can be thought of as an affine transformation of this parallelogram. But the construction of A'B'C'D' is preserved by this transformation, so those vertices (and those of every subsequent parallelogram) lie on the images of the three concentric circles, which are ellipses with common axes.