360 - Teach ICT

advertisement
First of all – lets look at the
window’s you are going to use.
At the top you have a toolbar,
with all your various tools you can
use when customising your
procedures. Under that you have
the large window, called
‘Graphics’ where you can see
what effect your commands are
having. Underneath that you
have the ‘Listener’ where you
actually give your commands.
Talking of commands, lets have a
look at a few of the more basic
ones, and get your ‘turtle’ doing
something.
The very first, most used
commands you will need are
incredibly simple.
FD ‘X’ commands your turtle to
go forwards by value ‘X’
RT ‘X’ commands your turtle to
turn to the right by ‘X’ degrees.
Lets do something simple, how
about a square. Type fd 50 and
then rt 90 four times. Your
listener should look like this after
you have finished.
As you can see, this method,
while hard to get wrong, takes
quite a lot of typing to get any
sort of shape, imagine trying to
draw a circle like this. There is a
far easier way to do this however.
Type CS to clear your screen, so
we can start on something slightly
more advanced.
Now, lets make a circle. Unless
you want your hands to fall off
though, we are going to have to
find a slightly faster way to do
this.
Lets make a procedure.
Now, lets decide what to call your
procedure. We’re going to draw a
circle, so lets call our procedure
‘circle’.
Type
edit circle
This should open up a new
window, like this. It should be
titled Circle, and start with TO
CIRCLE.
Now, lets make it do something
shall we. We want it to draw a
circle, without having to do lots of
typing. The answer to this is the
Repeat command.
As the name suggests, the repeat
command repeats whatever you
tell it to. What we are going to
do is tell it to draw a circle. So,
type:
repeat 360 [fd 1 rt 1]
This tells the procedure to repeat
360 times the commands fd 1
then rt 1.
So the repeat command can be
summed up like this:
repeat X [Y]
Which means repeat command
‘Y’, ‘X’ times. Press F2 to leave
the editor. You should see ‘circle
defined’ in your listener.
Now, lets test our procedure.
Type circle into your listener, and
press enter. You should see this.
To vary the size of your circle,
change how much the turtle
moved in the FD command in
your procedure. However, that
takes time, and you aren’t sure of
what it will look like until you
have done it. Lets speed this up
shall we. Lets use variables.
A variable is something we can
change in the procedure, without
having to edit it every time. Lets
call our variable ‘X’. So, open
your procedure with edit circle,
and lets change it around a bit.
Where it says, TO CIRCLE, change
it so it says TO CIRCLE :X.
This means that when you type
circle, you must also give a value
of X. Now, change your
procedure, so is says
repeat 360 [fd :X rt 1]
Now you can vary how far the
turtle moves every repeat. Press
F2, and try typing circle 2. You
should see this.
Now, with variables, a whole new
world of possibilities has opened
up for us. If we put our minds to
it we could make any shape we
could ever imagine. You can have
as many variables as you like in a
procedure, for example you could
have a procedure called
SHAPE :X :Y :Z
Or any other combination. Now
lets make a procedure that will
make a shape with a number of
sides :X and a side length :Y
As you may know, the exterior
angle of a shape is 360/No. of
sides. So our procedure would
look something like this. First,
lets call it POLYGON.
90⁰
120⁰
360
4
360
3
30⁰
360
12
Now, type edit POLYGON into
your listener. We need the top to
say TO POLYGON :X :Y
Then, type
repeat :X [fd :Y rt 360/:X]
This lets us set the number of
sides, and the length of each side.
Lets give it a go shall we? Lets
start with a square, of side length
50, and of course with 4 sides.
You should get this, if not, go
back and check for any typo's in
your procedure.
Now, one more thing before we
get onto some really hard stuff.
With all the circles we’ve drawn,
we have set the circumference, not
the radius. Lets see if we can try
and make a procedure where we
set the radius, of the circle, and the
program works out the rest. So
first, we’re going to need a
variable, :X, and the value of pi.
Logo takes this value to 3.14, which
is close enough for our means. Lets
call our procedure CircleR –
meaning it is a circle where you set
the radius. So, type ‘edit circler’ in
your listener, and type this:
Give the procedure a variable :X
Tell it to repeat 360 times: forward
2*π*:X then right turn by 1.
Remember, to multiply use * not x.
Circumference
D
R
Circumference = π*R*2
π*D
So, with all that done, does your procedure look
like this:
TO CIRCLER :X
REPEAT 360 [FD ((PI * 2 * :X) / 360) RT 1]
END
If so – well done, you have made a procedure
where the value :X is the radius, and the
circumference is done by Logo. Try is out, and
you should get this, set :X to 50.
This is useful for making a drawing significantly
more precise.
Now, lets move onto something even better –
spirals!
We’ve made all sorts of shapes, but they all have
one thing in common; they start and end at the
same place. What about a shape that starts at one
place, and ends in another, like a spiral. Lets start
with something basic, like a square spiral. This
involves quite a jump in procedure complexity – so
make sure you type everything correctly first time!
Lets call it Sqspiral – square spiral.
Type edit sqspiral into your listener, and give it 2
variables, X and Y.
First, we’re going to need to stop our spiral
growing out of control, so type IF :X > 200 [stop]
Then just tell it to go forwards by X and right by Y.
Then – and this is the important bit, type sqspiral
:X + 1 :Y
This is the bit that makes it expand into a spiral.
Go to next slide for the finished procedure. You
will notice that here the procedure ‘calls itself’,
otherwise you would have to type it every time :X
changed! How tiring!
Does your procedure look like this:
TO SQSPIRAL :X :Y
IF :X > 200 [STOP]
FD :X
RT :Y
SQSPIRAL :X + 1 :Y
END
If so, well done, and lets give it a go. Press F2
to save it, and then type sqspiral 0 90 into your
listener. Does it look like this?
With this procedure you can make a spiral with
any number of sides, with right angles, or with
triangles, or anything you can imagine, within
some limits. This procedure will not produce a
circular spiral, so that’s what we’re going to do
next.
Now, lets start on our circular spiral. We need
to give it a name first. Lets call is Cspiral. To
get it to work, we need to work a few things
out first. We need to work out, for example,
the distance between two layers of the spiral,
and make this distance constant throughout
the spiral. This instantly means that we are
going to have an :X + ‘Y’ part in there
somewhere. Now we need to find an
appropriate value for ‘Y’. To work this out we
need another constant, ‘Z’. So, if ‘Z’ is the
distance between two layers, say 0.1, and ‘Y’ is
what we do to :X, then we need to increase :X
by 0.1 every 360⁰ of rotation. The answer is
now clear. ‘Y’ = 0.1/360. So now we know
what our procedure is going to look like. Try
and put it together, and see if it works.
Remember all the limiters to stop it expanding
out of control! Go to the next slide to see my
solution to this problem.
Does your procedure look something like this?
Note: The only reason we have a variable is so
that we can change it within the procedure
itself.
TO CSPIRAL :X
FD :X RT 1
IF :X > 2 [STOP]
CSPIRAL :X + (0.10 / 360)
END
And, does the spiral it produces look
something like this? (set :X as 0.1)
If not, give it another
go, or just copy out the
procedure I used.
That was fun – but it is still quite limited. Lets
move onto something a bit more fun. Lets
make an animation. This will require a few
steps, but we’ll get there! First, I am going to
explain why I have designed it like I have, and
then I’ll set you to putting it all together for
yourself. The animation I have made is very
simple, but requires 4 different procedures to
work. This is because when I was putting it
together I did it step by step, to make sure that
everything worked. This has the added bonus
of slowing the animation down enough that it
doesn’t hurt your eyes when you play it. You
can amalgamate all the procedures into one if
you so wish, but I don’t think you will like the
result, and it gives you quite a headache after
a while. So, lets begin!
Our first procedure we’re going to make is
called TA. Its very simple, and it goes:
RT 30 FD 50
REPEAT 2 [RT 120 FD 50]
PE means pen erase – which causes the pen to
erase any lines it touches. PD is pen draw, the
default mode.
And now, for the final one, called ANI.
ANI goes:
Then we have TA2, which goes:
REPEAT 100000 [TA4 RT 1]
TA
REPEAT 2 [FD 50 LT 120]
FD 50
You will notice that this procedure draws on a
previous procedure.
Now for TA3, and it goes:
TA2
PE
TA2
PD
Give it a go, put them all together, then sit
back and watch. It is very basic, but all my
attempts to make a more advanced animation
have been met with failure. Perhaps you will
have more luck? One more thing. This
animation will never stop, and if you leave it
too long, it crashes your computer. To stop it,
press this icon (the one on the right)
If all goes to plan, you should see this on your
screen (click to start and stop when viewing as
slide show.)
Download