The Math Forum || Annie's Sketchpad Activites || Java Version

Morphing in Sketchpad

Or: How to Win an Academy Award

(shamelessly stolen from the GSP Diety 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. It should look something like this:

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.

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".

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 "Okay",and then double click your button. The coolest thing since sliced bread!