12. Logo (Part 1)

advertisement
B.A. (Mahayana Studies)
000-209 Introduction to Computer Science
November 2005 - March 2006
12. Logo (Part 1)
 An
introduction to Logo:
drawing, moving, turning,
repetition, and basic procedures.
Overview






1. What is Logo?
2. Installing Logo
3. Basic Commands
4. Drawing a Square
5. More Commands
6. The Repeat Command
continued
000-209 Intro to CS. 12/logo1
2






7. Procedures
8. Circle and Square
9. Drawing a Triangle
10. Drawing a House
11. Drawing a Checkboard
12. MSW Logo Examples
000-209 Intro to CS. 12/logo1
3
1. What is Logo?

A programming language developed at the MIT
Artificial Intelligence Lab
 MIT
= Massachusetts Institute of Technology

Logo is easy to learn, but powerful.

Logo has been used in telecommunications,
multimedia, and robotics.
000-209 Intro to CS. 12/logo1
4
2. Installing Logo

We're using MSW Logo,
but there are many other
Logo systems.
MSW Logo Website:
 http://www.softronix.com/logo.html

The set-up kit (Windows installer):
 http://www.softronix.com/download/mswlogo65.exe

Tutorials
 The
Great Logo Adventure
http://www.softronix.com/download/tgla.zip
 An Introduction to MSW Logo
http://www.southwest.com.au/~jfuller/logotut/menu.htm
continued
000-209 Intro to CS. 12/logo1
5

Double click on mswlogo65.exe to start the
installation.

The program will be added to the start menu as
"Microsoft Windows Logo".
 called

MSW Logo
The MSWLogo directory contains an Examples/
folder (see end of these slides).
000-209 Intro to CS. 12/logo1
6
MSW Logo in Action
menus
the turtle
status
window
editor
turtle drawing
area
command
window
command
box
command input window
000-209 Intro to CS. 12/logo1
7
What is the Turtle?

Originally, the turtle was a robot
that moved around the floor when the user typed
Logo commands into a computer.

Today, it is a picture on the Logo drawing area
 in
000-209 Intro to CS. 12/logo1
MSW Logo, the turtle is drawn as a triangle
8
3. Basic Commands

forward <number>
 the
larger the number the farther the turtle will go
 if you use a large enough number, the turtle will walk
off the screen and wrap around to the other side
 e.g. forward 40

back <number>
 the
turtle will move backwards
 e.g. back 33
continued
000-209 Intro to CS. 12/logo1
9

right <number>
 the
number is how many degrees the turtle will turn
right
 e.g. RIGHT 90


turn the turtle to the right by 90 degrees.
left <number>
 turns
000-209 Intro to CS. 12/logo1
the turtle to the left
10
4. Drawing a Square
type these commands into
the command input window,
pressing <enter> after each
command
forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100
000-209 Intro to CS. 12/logo1
11
Error Messages

Your input:
forward 10 20

Your input:
back
error
messages
000-209 Intro to CS. 12/logo1
12
5. More Commands

penup
 causes
the turtle to pick up its pen so that when it
moves no line is drawn

pendown
 puts
the pen back down so drawing starts again
continued
000-209 Intro to CS. 12/logo1
13

setpencolor <number>
 changes
the colour of the turtle’s pen
 e.g. setpencolor 5

make your turtle draw a pink line
MSW Logo has
command help
under "Index"
continued
000-209 Intro to CS. 12/logo1
14

clean
 clears

the turtle's drawing area
home
 moves
000-209 Intro to CS. 12/logo1
the turtle back to the center of the drawing area
15
Example Using Setpencolor
forward 100
setpencolor 5
right 72
forward 100
setpencolor 14
right 72
forward 100
setpencolor 3
right 72
forward 100
setpencolor 2
right 72
forward 100
000-209 Intro to CS. 12/logo1
Because the turtle
turned right
72 degrees
5 times, it made
a pentagon
16
6. The Repeat Command


Get the turtle to do things many times, by using
the repeat command.
e.g. repeat 4 [forward 10]
 move
the turtle forward 10 spaces, 4 times
 the turtle will move forward 40 spaces altogether

In general, you type:
 repeat
000-209 Intro to CS. 12/logo1
<number> [ <commands> ]
17
Draw a Square with Repeat
repeat 4 [forward 100 right 90]
000-209 Intro to CS. 12/logo1
18
Using Repeat

1.What will the following command draw?
 repeat

3 [forward 100 left 120]
2. Make a circle using the repeat command.
000-209 Intro to CS. 12/logo1
19
Answer 1: Draw a Triangle
repeat 3 [forward 100 left 120]
000-209 Intro to CS. 12/logo1
20
Answer 2: Draw a Circle
repeat 360 [forward 1 right 1]
000-209 Intro to CS. 12/logo1
21
7. Procedures

Add a new command to Logo by writing a
procedure.
 to
<name of your procedure>
<command 1>
A procedure is a new
<command 2>
command, built out of
:
other commands
end
continued
000-209 Intro to CS. 12/logo1
22

For example:
 to
square
repeat 4 [forward 100 right 90]
end

The new command (procedure) is for drawing a
square
 it
000-209 Intro to CS. 12/logo1
can be used just like other Logo commands
23
Typing in a Procedure
•A "To Mode" window
pops up after you type
to <name of procedure>
•You enter your
procedure line by line,
and type end or press
Cancel to finish.
continued
000-209 Intro to CS. 12/logo1
24
• After typing
repeat 4 [forward 100 right 90]
end
continued
000-209 Intro to CS. 12/logo1
25

Executing the procedure:
 square
000-209 Intro to CS. 12/logo1
26
A Circle Procedure

The program:
 to
circle
repeat 360 [forward 2 right 1]
end

Test it out:
 circle
000-209 Intro to CS. 12/logo1
27
The Edall Button

To add more procedures, or change one you've
already written, click on the Edall button.
000-209 Intro to CS. 12/logo1
28
Using Edall

Enter a procedure for drawing a purple pentagon:
 to
pentagon
setpencolor 10
repeat 5 [forward 75 right 72]
end

In the Editor "File" menu, select "Save and Exit"
when you are finished.
000-209 Intro to CS. 12/logo1
29
A Pentagon
000-209 Intro to CS. 12/logo1
30
Saving Procedures

If want to use the procedures some other time, you
should save them.
000-209 Intro to CS. 12/logo1
31
8. Circle and Square

How would you write the procedure
circle_and_square to make a drawing that looks
like this?

The triangle is the
position of the turtle
at the end of the
procedure.
000-209 Intro to CS. 12/logo1
32
Procedure
 to
circle_and_square
home
clean
repeat 360 [forward 2 right 1]
forward 50
repeat 3 [left 90 forward 100]
left 90
forward 50
end

Now change circle_and_square so it uses the
circle procedure.
continued
000-209 Intro to CS. 12/logo1
33
A procedure calls
another procedure.
circle_and_square
calls
circle
000-209 Intro to CS. 12/logo1
34
9. Drawing a Triangle

We want a procedure that draws a triangle with a
flat base.
start

This requires different turnings of the turtle:
3
0
9
0
000-209 Intro to CS. 12/logo1
120
120
35
000-209 Intro to CS. 12/logo1
36
10. Drawing a House

A simple house is a square with a
triangle on top of it.

After drawing the square, the turtle
must move to the start of the triangle.

After drawing the triangle, the turtle
must move back to its original position.
000-209 Intro to CS. 12/logo1
37
000-209 Intro to CS. 12/logo1
38
Procedure Calls
square
house
calls
triangle
000-209 Intro to CS. 12/logo1
39
11. Drawing a Checkboard

We're going to write a series of procedures that
help us make a checkboard.

A checkboard is a series of columns.
A column is a series of squares.
A square is made from 4 corners.


000-209 Intro to CS. 12/logo1
40
Procedure Calls

I'll write four procedures, that call each other in a
chain.
checkboard
000-209 Intro to CS. 12/logo1
calls
column
square
corner
41
Drawing a Corner

We want a procedure that draws a straight line,
then turns 90 degrees to the right.

to corner
forward 20
right 90
end
000-209 Intro to CS. 12/logo1
42
Where did the Turtle Go?

hideturtle
 make
the turtle invisible
 drawing still occurs, but with no turtle

showturtle
 makes
000-209 Intro to CS. 12/logo1
the turtle visible again
43
Drawing a Square with Corners

A square is four
calls to corner:
000-209 Intro to CS. 12/logo1
44
Drawing a Column with Squares

A column is eight squares, followed by the turtle
moving back to its starting position.

After drawing a square, the turtle needs to move
up by 20 to get to the starting position for the
next square.
start
start
continued
000-209 Intro to CS. 12/logo1
45
000-209 Intro to CS. 12/logo1
46
Drawing a Checkboard with Columns

A Checkboard is eight columns.

After drawing a column, the turtle
must move right to the starting position
for the next column.

At the end of drawing the checkboard, the turtle
should move back to the lower-left corner of the
checkboard.
000-209 Intro to CS. 12/logo1
47
000-209 Intro to CS. 12/logo1
48
12. MSW Logo Examples
Examples/Misc/curves.lgo
000-209 Intro to CS. 12/logo1
continued
49
Examples/3D/Hilbert.lgo
continued
000-209 Intro to CS. 12/logo1
50
Examples/3D/solar.lgo
continued
000-209 Intro to CS. 12/logo1
51
Examples/Misc/clock.lgo
continued
000-209 Intro to CS. 12/logo1
52
Examples/Windows/calc.lgo
000-209 Intro to CS. 12/logo1
53
Download