Top Links
Logo
 

 

A LOGO Beadwork Design Problem

If you have no experience as a programmer, it may be useful to work through one extended example to provide some experience with the activities that are involved. It is important to have some sense of the process of putting a program together. The example is an adaptation of an Indian beadwork design (see below) developed by Bradley and Taylor (1992). While the description presented here will focus mostly on the development of a program to create the desired design, you might also want to consider the geometry, general mathematics, and problem solving involved. If this were presented as a lesson, the teacher would want to make certain the students focused on these other areas of content and did not limit their attention to the problems of programming.

LOGO Beadwork Design Problem

bead design6

Analyze the Problem

The first step in developing a program to generate the beadwork design might be to carefully examine the design. Since the approach we are taking is intended to emphasize the use of procedures, a productive approach might be to examine the design to determine what modules or units seem obvious. As you might expect, this beadwork design was selected for this demonstration because it is highly symmetrical and is based on a basic unit - the isosceles right triangle. An intricate design has been created by connecting isosceles triangles according to a specific pattern.

An analysis should suggest that one of the basic procedures this program will require should draw an isosceles right triangle. What do we know about such triangles? We probably remember that such triangles have two equal sides, have angles of 45-90-45 degrees, and are defined by the expression a2+b2=c2. The side of the triangle defined as c2 also goes by the unusual name of hypotenuse. We might start by recognizing that since two sides of an isosceles triangle are equal the expression describing such triangles can be rewritten as a2+a2=c2 or 2(a2)=c2. The value of c (the hypotenuse) would equal a2. If we don't happen to know what the 2 is, we can ask LogoWriter to PRINT SQRT 2 and we learn that this value equals 1.414. So the length of the hypotenuse would equal the length of a side multiplied by 1.414. With this information we should be able to write a procedure to draw an isosceles triangle.

Just so we can play around with triangles of different sizes, the procedure should probably contain a variable to represent the length of the two equal sides. When students write programs in LOGO to draw a triangle, they are likely to run into a problem they do not anticipate. Students usually think in terms of internal angles (e.g., remember when you learned that the internal angles of a triangle sum to 180) and are likely to generate "triangles" like the one shown below.

bead7

Creating the Necessary Subprocedures

The LOGO turtle defines turns relative to its present orientation and the programmer has to determine whether the turn the turtle is to make defines an internal or external angle. If the desired internal angle is 45 and the turtle's orientation would require that the turn be defined in terms of an external angle, the turn would be 135°. Now that you understand some of the nuances of programming in LOGO, you probably get some feel for why exercises such as the one described here require careful thinking and also provide a different perspective on a content domain (i.e., geometry). One program to generate an isosceles triangle follows.

Triangle with Right Orientation

 

bead8

 

TO TRIANGLE :SIDE

FD :SIDE

RT 90

FD :SIDE

RT 135

FD :SIDE*1.414

RT 135

END

Further analysis of the desired pattern will indicate that the individual units of the pattern are often expressed as mirror images of each other. It may be useful to write a procedure that will draw a triangle with the opposite orientation.

Triangle with Left Orientation

bead9

 

TO LEFTTRI :SIDE

FD :SIDE

LT 90

FD :SIDE

LT 135

FD :SIDE*1.414

LT 135

END

One of the more challenging problems with this design is determining how to nest one triangle within another. This task is accomplished by moving the turtle into the interior of the external triangle with the pen up, putting the pen down, and then drawing a second triangle with shorter sides. The turtle is positioned within the external triangle by moving it along one leg, turning the turtle 90° into the triangle, and moving forward. The distance to move along the leg and then into the triangle were discovered by trial and error. The smaller triangle is generated by calling the triangle procedure and defining the length of SIDE for the small triangle by subtracting a constant from the length of SIDE for the large triangle.

Procedure for Embedding a Small Triangle Within a Large Triangle

 

bead10

TO TWOTRI :SIDE

TRIANGLE :SIDE

PU

FD 20

RT 90

FD 10

LT 90

PD

TRIANGLE :SIDE-30

END

Creating Superprocedures

The final two procedures are really superprocedures for combining the subprocedures created to this point. The additional commands in the superprocedures are required to properly align the turtle before drawing the various parts of the total design.

Superprocedures to Draw Beadwork Design

 

bead11

TO TWODIAMOND

MAKE "SIDE 60

RT 45

TWOTRI :SIDE

PU

FD :SIDE-30+10

RT 90

FD :SIDE-10

RT 90

PD

TWOTRI :SIDE

PU

FD :SIDE-30+10

RT 90

FD :SIDE-10

PD

END

A Superprocedures to Create the Final Project

 

bead6

 

TO FINAL

TWODIAMOND

LT 45

TRIANGLE :SIDE-30

LEFTTRI :SIDE-30

LT 180

FD :SIDE*1.414

TRIANGLE :SIDE-30

LEFTTRI :SIDE-30

HT

END

 

Based on example from:s

Bradley, C. & Taylor, L. (1992). Teaching mathematics with technology: The four directions Indian beadwork design with Logo. Arithmetic Teacher, 39(9), 46-49.

Return to resources

 
About | Outline | Copyright
about.html outline.html copyright.html