Tuesday, November 26, 2013

euler spirals in Fathom and TinkerPlots

A nice post on mathen inspired me to construct some Euler spirals using Fathom and Tinkerplots. I like using these tools for this sort of playing around - they are intended for middle and high-school data management activities, but are, effectively, simple quasi-programming environments. The results are not as pretty as those from mathen, but are nice enough and very easy to generate.

To recreate images like these in either Fathom or Tinkerplots you need two sliders - I called them magnitude and delta.

You then create a collection (or card set in TP) with four attributes (n, x, y, and theta). Each attribute will have its data generated by a formula, as shown below.

Adding cases to the collection generates the data (the pictures shown have about 2000 cases). You can then graph or plot the results using the x and y attributes as your axes. Varying magnitude adjusts the gap between the points, varying delta adjusts how quickly the curvature changes.

Some values for delta suggested that you can obtain curves within curves and fractal-like images.

Update: If you want to see Euler spirals in Geogebra, checkout this post by mathhombre.

Tuesday, November 19, 2013

snowflake construction in GSP

Here are instructions for making a snowflake iteration similar to the one shown in the previous post using Geometer's Sketchpad. I generally don't put useful things like instructions on this blog, but I thought I would make an exception: these fun and easy constructions are worth doing because they are pretty, and they illustrate some important concepts associated with recursion. GSP is a great tool for playing with these sorts of things - I haven't explored Geogebra at all, so I can't comment on what similar sorts of things can be done with that tool.

1. Draw a line segment AB (using the segment tool), construct its midpoint C (with the line selected, choose Construct > Midpoint), and then construct the midpoint of AC (we'll call that D).

The important thing to note is that AB is the only thing that you will draw. Everything else will be constructed. What we are doing here is a really good example of what GSP aficionados call geometric programming: AB is your input, and everything else we construct as part of a program written in the language of geometry. A mistake that some people make with GSP when they are first playing with it is to consider it a drawing rather than construction tool - you really should draw very little, and construct a lot.

2. Mark A as the center of rotation (select A, and then Transform > Mark Center) and rotate all lines and points around A by 60 degrees, five times. You'll end up with six spokes that look like this:

3. Connect the midpoints of the spokes to form a hexagon.

4. Select all sides of the hexagon and construct the midpoints of the sides. Then connect those midpoints to the points on the interior of the hexagon to form a star, like the one shown below.

5. At this point it would be wise to hide some of the things that we don't want to include in our construction (select lines and dots and press CNTRL+H). You should leave your star, the original points A and B, and the mid and end-points of each spoke.

6. Now we are ready to iterate. To do this, select the points A and B, and then open the Iterate dialog (Transform > Iterate...). The first iteration is to map A to C and B to itself. Keep the dialog open (we need to add more maps to this iteration).

7. Repeat the same sort of mapping on each spoke: A gets mapped to the midpoint of the spoke, and B gets mapped to the endpoint of the spoke. Do this by using the Struct... > Add New Map on the iteration dialog.

8. After mapping onto all the spokes, hit the Iterate button.

9. You can now hide any points or parts of the iteration that you'd like, and increase or decrease the number of iterations (select the whole shape and use the plus (+) and minus (-) keys).

Two thing to note: when we mapped A and B, we mapped them onto points that were derived from A and B (midpoints and endpoints of the line AB, and rotations of those points), and we mapped A and B such that the distance between their images was smaller than the original distance between A and B. Mapping A and B so that they moved closer to each other means that the resulting shape will be bounded - otherwise the shape will get larger with each iteration.

Saturday, November 16, 2013

snowflake series

Just continuing with more iterations in GSP - similar to those here and here.
Update: instructions for how to construct this in GSP are here.

Monday, November 11, 2013

square iteration series

Going through some old files, I found this bunch of GSP iterations based on a square - very similar to this post from 2 years ago today. These reminded me of the designs in Wucius Wong's 1972 book Principles of Two-Dimensional Design - previously mentioned here.

Saturday, November 9, 2013

Counting paths

A favorite counting puzzle is finding the total number of paths through some diagram. In puzzles like the one above, you are asked to find how many different paths will take you from one end of the diagram to the other, always following the direction of the arrows. To count the paths easily, you should apply the rule of sum and the rule of product.

In the diagram above, the rule of sum comes into play in getting around a single square. You can go around the top (1 choice) or around the bottom (1 choice), this gives you 1+1 = 2 choices. Getting around the first square and the second square and the next square, etc. requires the rule of product: 2 x 2 x 2 x 2 x 2 = 32 paths. In path puzzles like this, you add "or" choices and multiply "and" choices.

Here are a few more path puzzles: