Application Center - Maplesoft

App Preview:

Animation of Dudeney's Dissection Transforming an Equilateral Triangle to a Square

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application



Animation of Dudeney's Dissection Transforming an Equilateral Triangle to a Square 


Mark D. Meyerson
U.S. Naval Academy


In 1902, Henry Ernest Dudeney posed the problem of cutting an equilateral triangular region into 4 pieces that can be rearranged to form a square region.  His published solution (see Reference below) notes that the pieces can be hinged so as to smoothly rotate from one form to the other.  We use Maple packages in linear algebra, geometry, and plotting to construct a picture of the pieces, and then animate the construction.  


We'll use the linear algebra package to locate the cut points in the figure, the geometry package to describe (especially to rotate) the pieces, and the plotting package to animate the result: 

> restart: with(linalg): with(geometry):  with(plots):

Locating the initial points 

We start with an equilateral triangle with coordinates at points a, b, and c.  The midpoints of sides ab and bc are called e and f respectively. 

> a:=[0,0]: b:=evalf([1/2,sqrt(3)/2]): c:=[1,0]: e:=(a+b)/2: f:=(b+c)/2:

We wish to choose a point p on side ac so that distance ep is the length of the finished square.  Viewing ac as giving us a fixed base of length 1, we see that the second coordinate of b, b[2], determines the area of the triangle (and so the square) as b[2]/2.  Thus the distance formula gives us the following coordinates for p.  Also, we choose q the point on ac half the length of ac from p.  

> p:=evalf([(b[1]+sqrt(2*b[2]-b[2]^2))/2,0]): q:=p-[1/2,0]:

Then we use linear algebra to locate points r and s, the feet of perpendiculars from f and q respectively dropped to line ep.  In particular, r is found using the vector projection and then s is the point symmetrically across the midpoint of segment ep from r (we'll show this fact later).   

> r:=p+dotprod(f-p,e-p)/dotprod(e-p,e-p)*(e-p): s:=e-(r-p):

In the figure below that illustrates this, capital letters are used for the points (which will be renamed in the geometry module with capital letters next).   



Defining the regions 

The four regions that make up the dissection pieces are each defined geometrically in one of the following four lines.  The quadrilaterals are defined as two triangles (that will be the same color) and the points are renamed with capital letters.   

> triangle(T1,[point(A,a),point(Q,q),point(E,e)]): triangle(T2,[point(S,s),E,Q]):

> triangle(T3,[E,point(R,r),point(B,b)]): triangle(T4,[B,R,point(F,f)]):

> triangle(T5,[R,point(C,c),F]): triangle(T6,[R,point(P,p),C]):

> triangle(T7,[Q,P,S]):

We can draw the figure above with the command: 

> draw([T1(color=red),T2(color=red),T3(color=blue),T4(color=blue),T5(color=plum),T6(color=plum),T7(color=gold)],printtext=true,filled=true,axes=none,title="Starting equilateral triangle dissection",font=[TIMES,ROMAN,18]);


Animating the regions 

In the following we rotate the regions around the appropriate centers in n = 15 steps.  For example, T3 (part of the blue region) is rotated counterclockwise about E with the new locations labeled T30 through T315.  And T5 (part of the "plum" region) is first rotated about F with the triangle in the new location temporarily labeled s5, which is then rotated about E for final labels T50 through T515.  And T7 (the gold triangle) is rotated first about P, then about F, and finally about E.  The value of n can be increased to get more steps at the cost of computation time and memory. 

> n:=15: cc:=counterclockwise:

> for i from 0 to n do
rotation(T3||i,T3,i/n*Pi,cc,E): rotation(T4||i,T4,i/n*Pi,cc,E):
end do:

If we wish, we can draw the final position with: 

> draw([T1(color=red),T2(color=red),T3||n(color=blue),T4||n(color=blue),T5||n(color=plum),T6||n(color=plum),T7||n(color=gold)],filled=true,axes=none,title="Final square dissection");


Now that these values are assigned, it's just a matter of defining the procedure that draws (and colors) these triangular regions at each stage and then calling the procedure: 

> G:=proc(i)  local ii; ii:=floor(i): draw([T1(color=red),T2(color=red),T3||(ii)(color=blue),T4||(ii)(color=blue),T5||(ii)(color=plum),T6||(ii)(color=plum),T7||(ii)(color=gold)],printtext=false,filled=true,axes=none,title="Animation of Dudeney's equilateral triangle/square dissection"); end:

> animate(G,[frame],frame=0..n,frames=n+1,view=[-1.0..1.5,-0.3..1.9]);


The animation controls can be set to adjust speed and to make the animation continuous and oscillating.  The frame can also be "grabbed with the mouse" to adjust the size. 


First note that the three quadrilaterals fit together in the final (square) position since AE = EB and BF = FC by construction.  Also, since the angles at A, B, and C add up to 180 degrees, these three pieces will form a straight angle when arranged in the final position.  And since PQ is chosen to be half a unit long, it matches the remaining parts (AQ + PC).  Further, the other angles all match up "properly" since at E and F the angles are supplementary, as they are at P and Q.  Thus in the final position, we have a quadrilateral.  But since the angles at R and S are right angles, the final position is a rectangle.  And P was chosen with EP the right length so that this rectangle will be a square. 


Additionally, we see that FR and QS each turn out to be half the length of the square side, by looking at where they unfold to in the final position.  Also unfolding to the full length of the square side is each of PR+PS and ER+ES.  From this it follows that R and S are symmetric about the center point of EP, a fact used to simplify the computation of the position of s at an earlier stage. 


Dudeney, Henry Ernest, The Canterbury Puzzles and Other Curious Problems, Thomas Nelson and Sons, Ltd., London, Edinburgh, and New York, 1919, 2nd ed. (pages 178-180). 


We have shown how to create a Maple animation that smoothly rotates four pieces from an equilateral triangular region to a square region.

Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.