So far, all of our drawings have had two limitations. First, they are entirely made up of lines (no solid shapes). Second, all of the lines are connected. In this lesson, we will overcome these limitations. We will learn how to move the turtle without drawing a line. We will also learn how to fill in the outline of a shape with a solid color. Then we will draw some flags of various countries.
The turtle draws a line wherever it goes because it is holding a pen on the ground. If you don't want the turtle to draw a line when it moves, you can tell the turtle to lift the pen up. Likewise, if you want the turtle to start drawing again, you can tell the turtle to put the pen down.
Command | What Happens |
---|---|
PENUP | From now on, the turtle won't draw a line when it moves. |
PENDOWN | From now on, the turtle will draw a line when it moves. |
Activity: Draw a dashed line using PENUP and PENDOWN.
REPEAT 10 [ PENUP FORWARD 5 PENDOWN FORWARD 5 ] |
Draw a square using dashed lines.
Draw a dotted line (hint: a dot is a very short dash).
Draw a dashed line that alternates between short dashes and long dashes.
By telling the turtle to lift the pen off the ground, we can draw shapes that aren't connected.
Now that we know how to move the turtle without drawing a line, we can make the turtle go inside a shape that it has drawn. Then we can fill the entire shape with a single color, using the FILL command.
You can think of the FILL command as pouring out a bucket of special paint and flooding the area under the turtle. The paint is special in that it can't flow over pixels that have a different color than the pixel that the turtle is over.
Command | Example | What Happens |
---|---|---|
SETFLOODCOLOR color | SETFLOODCOLOR 3 | From now on, whenever you give the FILL instruction, the color will be filled with red. |
FILL | FILL | Fill the shape under the turtle with the color set by SETFLOODCOLOR. |
We already know how to draw a shape like triangles and squares. PENUP and PENDOWN let us move into a shape without leaving a trace. SETFLOODCOLOR and FILL let us fill in the square with a color of our choice.
Activity: Draw a solid red square.
TO REDSQUARE ; draw the outline REPEAT 4 [FORWARD 100 RIGHT 90] ; move into the square PENUP RIGHT 45 FORWARD 4 ; fill the square with red SETFLOODCOLOR 4 FILL ; move back BACK 4 LEFT 45 PENDOWN END REDSQUARE |
Modify the program so that you don't see a black outline.
We can use the new commands to draw national flags.
A national flag is the symbol of the most important things about that nation. Most flags are easy to draw and easy to recognize.
Some flags use simple shapes to symbolize the country's ideals. For example, the flag of the United States of America has 50 stars in a blue field that symbolized the unity of the 50 states. Other flags just use colors to symbolize their ideals. The French flag uses red, white, and blue to symbolize freedom, equality, and brotherhood. These are the easiest to draw, so we'll start with them.
Activity: Draw the world's simplest national flag: Libya's flag. This flag is entirely green.
TO RECTANGLE :WIDTH :HEIGHT REPEAT 2 [ FORWARD :HEIGHT RIGHT 90 FORWARD :WIDTH RIGHT 90 ] END TO LIBYA_FLAG ; Libya's flag is a 2:1 rectangle RECTANGLE 200 100 ; position the turtle to fill in the flag PENUP RIGHT 45 FORWARD 10 ; fill in the box SETFLOODCOLOR [35 158 70] FILL ; return BACK 10 LEFT 45 PENDOWN END LIBYA_FLAG |
Go to a Flag Website and look for some other interesting flags to draw.
Draw some other pictures using PENUP, PENDOWN, FILL, and SETFLOODCOLOR. You can create your own from scratch. You can start with one from another lesson and fill in some of the shapes it creates. You can also just combine two programs from another lesson using PENUP and PENDOWN, to create pictures with many disconnected shapes.
TO RECTANGLE :WIDTH :HEIGHT REPEAT 2 [ FORWARD :HEIGHT RIGHT 90 FORWARD :WIDTH RIGHT 90 ] END TO TRICOLOR_FLAG :COLOR1 :COLOR2 :COLOR3 ; Draw each of the three stripes REPEAT 3 [ RECTANGLE REPCOUNT * 50 100 ] ; Get set to fill in each rectangle PENUP FORWARD 10 RIGHT 90 ; fill the first stripe FORWARD 25 SETFLOODCOLOR :COLOR1 FILL ; fill the second stripe FORWARD 50 SETFLOODCOLOR :COLOR2 FILL ; fill the third stripe FORWARD 50 SETFLOODCOLOR :COLOR3 FILL ; go back where we started from BACK 50 * 2 + 25 LEFT 90 BACK 10 PENDOWN END TO ITALY_FLAG ; Italy's flag is green|white|red TRICOLOR_FLAG [0 140 0] [255 255 255] [247 0 0] END ITALY_FLAG |
|
TO RECTANGLE :WIDTH :HEIGHT REPEAT 2 [ FORWARD :HEIGHT RIGHT 90 FORWARD :WIDTH RIGHT 90 ] END TO TRIBAND_FLAG :COLOR1 :COLOR2 :COLOR3 ; Draw each of the three bands REPEAT 3 [ RECTANGLE 150 REPCOUNT * 33 ] ; Get set to fill in each rectangle PENUP RIGHT 45 FORWARD 10 LEFT 45 ; fill the first stripe SETFLOODCOLOR :COLOR1 FILL ; fill the second stripe FORWARD 33 SETFLOODCOLOR :COLOR2 FILL ; fill the third stripe FORWARD 33 SETFLOODCOLOR :COLOR3 FILL ; go back where we started from BACK 33 * 2 RIGHT 45 BACK 10 LEFT 45 PENDOWN END TO RUSSIA_FLAG TRIBAND_FLAG 4 1 7 END RUSSIA_FLAG |
|
TO RECTANGLE :WIDTH :HEIGHT REPEAT 2 [ FORWARD :HEIGHT RIGHT 90 FORWARD :WIDTH RIGHT 90 ] END TO MOROCCO_FLAG ; Morocco's flag is a 2:3 rectangle RECTANGLE 150 100 ; position the turtle to draw the star PENUP RIGHT 90 FORWARD 65 LEFT 90 FORWARD 33 ; fill in the box SETFLOODCOLOR 4 FILL ; draw the dark green star SETPENCOLOR 10 PENDOWN SETPENSIZE [3 3] RIGHT 18 REPEAT 5 [FORWARD 40 RIGHT 144] LEFT 18 SETPENSIZE [1 1] PENUP ; return to where we started BACK 33 RIGHT 90 BACK 65 LEFT 90 PENDOWN END MOROCCO_FLAG |
|
TO SQUARE :LENGTH REPEAT 4 [FORWARD :LENGTH RIGHT 90] END TO CONCENTRIC_SQUARES REPEAT 10 [ ; move outward PENUP LEFT 90 FORWARD 5 RIGHT 90 BACK 5 PENDOWN ; draw a square SQUARE REPCOUNT * 10 ] END CONCENTRIC_SQUARES |
|
TO TRIANGLE :LENGTH RIGHT 45 FORWARD :LENGTH * (SQRT 2) / 2 RIGHT 90 FORWARD :LENGTH * (SQRT 2) / 2 RIGHT 135 FORWARD :LENGTH ; fill in the triangle PENUP BACK :LENGTH / 2 RIGHT 90 FORWARD 2 FILL BACK 2 LEFT 90 FORWARD :LENGTH / 2 RIGHT 90 PENDOWN END TO RECTANGLE :HEIGHT :WIDTH REPEAT 2 [ FORWARD :HEIGHT RIGHT 90 FORWARD :WIDTH RIGHT 90 ] ; fill in the rectangle PENUP LEFT 90 BACK :WIDTH / 4 RIGHT 90 FORWARD 2 FILL BACK 2 LEFT 90 FORWARD :WIDTH / 4 RIGHT 90 PENDOWN END TO HOUSE ; draw a red roof SETFLOODCOLOR [255 0 0] FORWARD 100 TRIANGLE 100 BACK 100 ; draw a dark green door SETFLOODCOLOR [100 162 64] RIGHT 90 FORWARD 60 LEFT 180 RECTANGLE 20 40 FORWARD 60 RIGHT 90 ; draw a brown house SETFLOODCOLOR [155 96 59] RECTANGLE 100 100 END HOUSE |
|
TO DRAW_A RIGHT 15 FORWARD 104 RIGHT 150 FORWARD 104 BACK 52 RIGHT 105 FORWARD 27 LEFT 75 FORWARD 52 RIGHT 165 END TO DRAW_D FORWARD 100 RIGHT 90 FORWARD 20 RIGHT 45 FORWARD 30 * SQRT 2 RIGHT 45 FORWARD 40 RIGHT 45 FORWARD 30 * SQRT 2 RIGHT 45 FORWARD 20 RIGHT 90 END TO DRAW_E FORWARD 100 RIGHT 90 FORWARD 50 BACK 50 RIGHT 90 FORWARD 50 LEFT 90 FORWARD 30 BACK 30 RIGHT 90 FORWARD 50 LEFT 90 FORWARD 50 BACK 50 LEFT 90 END TO DRAW_V PENUP RIGHT 90 FORWARD 33 PENDOWN LEFT 75 FORWARD 104 BACK 104 LEFT 30 FORWARD 104 BACK 104 LEFT 75 PENUP FORWARD 33 RIGHT 90 PENDOWN END TO MOVEOVER :AMOUNT PENUP RIGHT 90 FORWARD :AMOUNT LEFT 90 PENDOWN END TO DRAW_DAVE DRAW_D MOVEOVER 60 DRAW_A MOVEOVER 40 DRAW_V MOVEOVER 70 DRAW_E MOVEOVER 60 END DRAW_DAVE |