The Math Forum || Annie's Sketchpad Activites || Printable Version (no Java)

Morphing in Sketchpad

Or: How to Win an Academy Award

(shamelessly stolen from the GSP Deity himself, Nick Jackiw)

In this activity, we're going to turn an ordinary polygon into a circle. Doesn't sound very interesting when it's described like that, but what we're really going to do is "morph" a polygon onto a circle, which means create an image that at one point is a polygon, then becomes a circle.

To start, draw a polygon. You can do this by putting a series of points on the screen, selecting them all, and choosing "Construct Polygon Interior" from the Construct menu. Turn your polygon a pleasant color. (You don't need the segments connecting the points.) Now use the circle tool to draw a circle whose center is somewhere in the polygon. Make sure the shading of your polygon isn't 100% - if it is, you won't be able to see the center of the circle. Sorry, this page requires a Java-compatible web browser.
What we want to do is create a "mapping" that takes each point on the polygon to a point on the circle. So we will pick a point on the polygon and find the corresponding point on the circle. Each point on the polygon has to "go" to a point on the circle.

Select the polygon interior and from the Construct menu, choose "Construct Point on Object". What you'll get is a point on the edge of the polygon that you can move around, but it will always stick to the edge of the polygon. Construct a ray whose endpoint is the center of the circle and which goes through the point on the polygon (the one we just constructed). Click on the intersection of the ray and circle. This point is the "image" of the point on the polygon when we "morph".

Move the point on your polygon and make sure that the ray moves appropriately, as does the corresponding point on the circle.

Note: The point on the polygon in this example won't move anywhere but along that single edge because of the limitations of JavaGSP, but yours should move around the edge of the entire polygon.

Sorry, this page requires a Java-compatible web browser.
When we say "go!" to our point, we want it to run to its corresponding point on the circle. The path it is going to follow is a segment from itself to its image on the circle. So construct a segment between those two points, and hide the ray. Select the new segment, and under the Construct menu choose "Point on Object". Sorry, this page requires a Java-compatible web browser.
This point can move between the polygon and the circle. We'd like to have the position of this point for EVERY point on the polygon and their corresponding points on the circle. So select this new point and select the point on the polygon. Under the Construct menu, choose "Locus". You should have a blob-shaped line that's between the polygon and the circle. I've colored mine blue.

Select the point on the segment and drag it onto the polygon. Ooooohhhheee! Now drag the point out to the circle. Whhoooo doggies!

Wouldn't it be really cool to animate that? Of course it would :-) Select the segment and the point on the segment and from the Edit menu, choose Action Button and go over and select Animation... Say "Animate",and then double click your button.

Sorry, this page requires a Java-compatible web browser.

For what polygons is there a one-to-one relationship between points on the polygon and points on the circle?