Dudeney's Dissection

[Home]   [Puzzles & Projects]    [Delphi Techniques]   [Math Topics]   [Library]   [Utilities]

 

Search

 

Search DelphiForFun.org only

Support DFF

 If you shop at Amazon anyway,  consider using this link. We receive a few cents from each purchase.   Thanks.

In Association with Amazon.com

 

Support DFF

 If you benefit from the website,  in terms of knowledge, entertainment value, or something otherwise useful, consider making a donation via PayPal  to help defray the costs.  (No PayPal account necessary to donate via credit card.)  Transaction is secure.

 

 

Contact

Feedback:  Send an e-mail with your comments about this program (or anything else).

 

Search DelphiForFun.org only

 

 

 

 

Problem Description

Cut a square into four pieces that can be reassembled into an equilateral triangle with the same area.


 

Background & Techniques

A geometric dissection is a division of a polygon into pieces that can be rearranged to form a polygon of a different shape.    The self taught mathematician and British puzzleist, H. E. Dudeney, published this interesting geometric dissection in 1902.

This program allows you to print a square and triangle of appropriate size so you can work on it yourself, or print the set of polygons that you can rearrange into either shape.

There is also a button to bring up a form with some of the construction details, for those that may be interested.  

As a programming exercise, there were two challenges.  First was to determine where to draw the lines which form the polygons.   The construction usually proceeds from the triangular form - the problem then being to translate these corner points appropriately to the square.  I added a PointPerpendicularLine function to define the last two polygon lines.  Also a Dist function to locate the offsets for polygon corners when redrawing them  on the square    

The second challenge was transferring the image to the printer.   Simply "stretchdrawing" the image canvas to the printer canvas works, but the printout appears rather coarse.  (Since  typical screen resolution is around 100 pixels per inch and a typical printer prints at 600 pixels per inch, the printed pixels will be about 6 times larger than on the screen image.)  It's much better to redraw the image on the printer canvas.  The "trick" used here is to generalize the drawing routines so that the same code is used for the onscreen displays and for the printer canvas.     

Running/Exploring the Program 

bulletBrowse source extract
bulletDownload source
bulletDownload  executable

Suggestions for Further Explorations

I had planned to animate the solution - the polygons can be "hinged"  so that with three shared corners as hinge points a you can rearrange them into either shape.  You can  find several Java versions on the web, so it can't be that hard  to do  in Delphi.   Just too many other things to do right now - we'll get back to it one of these days.

Apparently there are many other dissections, octagon to square, pentagon to square, etc.   

 

Original Date: October 16,  2002

Modified: May 18, 2009

  [Feedback]   [Newsletters (subscribe/view)] [About me]
Copyright 2000-2013, Gary Darby    All rights reserved.