356 KiB
Visual Modeling with Logo
A Structured Approach to Seeing
James Clayson
Originally published in Exploring with Logo, E. Paul Goldenberg, editor.
- Exploring Language with Logo by E. Paul Goldenberg and Wallace Feurzeig
- Visual Modeling with Logo by James Clayson
The MIT Press
Cambridge, Massachusetts
London, England
Copyright 1988 by the Massachusetts Institute of Technology.
Series Foreword
The aim of this series is to enhance the study of topics in the arts, humanities, mathematics, and sciences with ideas and techniques drawn from the world of artificial intelligence--specifically, the notion that in building a computer model of a construct, one gains tremendous insight into the construct. Each volume in the series represents a penetrating yet playful excursion through a single subject area such as linguistics, visual modeling, music, number theory, or physics, written for a general audience.
Preface
'What is the use of a book: ' thought Alice, "without pictures . . . ." Lewis Carroll
In the fall
of 1982 I started
to teach a course called
Thinking ." It was offered jointly American
" Problems
by Parsons School of Design in Paris and the
College in Paris . Looking
back now, perhaps I should have replaced
the word Problems with something
less pathological - Explorations
that original
my reason for inventing
title really
first place . I taught encouraged
indicated
courses in statistics
my students
in Visual
and operations
to add a bit of visual
maybe . But
the course in the research in which
thinking
I
to their quantitative
analysis, but each semester I was disappointed . I continued
my pleas for visualization
who could introduce
because I saw that the few students
a little of it into their work discovered - more often than
not - the most surprisingly
useful things . These visualizers
intimidated
because their
by vagueness
concrete starting painted
abilities
points, and they seemed to enjoy playing
pieces of complex
encouraged
picture -making
seemed to me less
around
problems . Perhaps, I thought, their
them to see where more analytic
approaches
gave them
might
with
the
visual
play
usefully
be
applied . My problem was to discover how to teach visual thinking who had problems
to those students
doing it naturally . It was obvious that most of my students
lacked visual vocabulary
and few of them had ever been in an art or drawing
studio . How was I to cancel out this liability ? Luckily
I had managed an art
Preface
school and knew a bit about people who had design experience. Professional art students certainly have the visual baggage, but most are severely lacking in analytical skills . " Let's put these two groups together, " I thought, "and set them a series of tasks." The art students can show their colleagues a bit about color and design, while the non-art crew can gently introduce the art students to a little quantitative model building . The Logo computer language struck me as an appropriate medium of instruction - just enough of the visual and just enough of the analytical . Problems in Visual Thinking was born .
most
There
were
recent
set
no
suitable
of class
texts, so I set out
to write
one, and
this
. It is structured
around
a series
of
notes
book
is the
exercises
that
encourage visual thinking in students from a variety of different backgrounds . I wish that I could claim total success in turning
my students
into better
problem -solvers by first turning them into more effective visualizers . But I fear that my record is mixed . I am convinced, however, that for some people, certainly not all, visual model building is an enormously enjoyable activity that leads them in new and surprising directions . And since that activity falls nicely within the terms of reference of a liberal arts education, I am quite pleased with
the
classroom
results
Most
thanks
are due
their help . You will
I have
seen .
to my students
because
this book
find quotes and illustrations
was realized
with
from them scattered
throughout the text . Thanks, too, go to Roger Shepherd, the first Director of Parsons in Paris, who not only encouraged me to start this project but helped to teach
it for
the
first
would
still
be
in
year . Were a basement
it not
for
Xerox
room
Frank
Satlow
. I also
of MIT
benefited
Press, this from
his
book
readers
'
reports .
The final construction of the manuscript, however, was a solo affair ; what,ever opacities, inconsistencies, or mistakes remain are mine .
JamesClayson Paris, 1987 xii
Ackn owl edg me nts
I wish to thank the following
for granting
permission
to reproduce
illustrations
in this book : Robert Delaunay, Disque, Musee d 'art moderne de la ville de Paris, courtesy of ADAGP and ARS. David Hackney, Sunbather, courtesy of the artist . Wassily Kandinsky, Several Circles, No. 323 (1926), Solomon R. Guggenheim Museum, New York . Photograph by Robert E. Mates. Wassily Kandinsky, First study for SeveralCircles (1926), Collections du Musee National d'art moderne, Paris, courtesy of ADAGP and ARS. Gustav Klimt, Poissonsrouges, courtesy Giraudon / Art Resources, New York . Gustav Klimt, Rosiers sous les arbres, courtesy Giraudon / Art Resource, New York . Piet
Mondrian, Compositie met kleurvlakjes
no. 3, Collection
Haags
Gemeentemuseum, the Hague, courtesy of Beeldrecht, The Netherlands / V AGA, New York . Piet Mondrian, Composition with red yellow and blue, Tate Gallery, London,
courtesyof SPADEM and ARS.
Acknowledgments
Piet Mondrian, New York City 1, Collections du Musee National d'art moderne, Paris, courtesy of Beeldrecht, The Netherlands/ VAGA, New York. Georges Seurat, La Seinea la Grande-Jatte, Musees royaux des Beaux-Arts, Brussels .
Jean Tinguely, Homage Ii Marcel Duchamp, courtesy of the Stadtisches Museum
Abteiberg M6nchengladbach, photo by Ruth Kaiser. Henry
van de Velde, Faits du village VII - La ravaudeuse, Musees royaux
des
Beaux-Arts, Brussels. Vincent van Gogh, Van Gogh 's bedroom, courtesy Giraudon / Art Resources, New
York . Andy Warhol, Marilyn Monroe, courtesy Giraudon / Art Resource, New York . Architectural
trees reproduced
from
Bob Greenstreet, Graphics
Sourcebook
(Prentice-Hall, Englewood Cliffs, NJ, 1984). Celtic knots reproduced
from George Bain, Celtic art : the methods of construction
(Dover, New York, 1973).
Computer
generated
globes
reproduced
from
Melvin
L
.
Prueitt
,
Computer
Graphics(Dover, New York, 1975). Farkas forms : 18
,
number
grids
reproduced
from
experimental
Tamas
graphics
3
(
1985
)
,
pages
F
and
179
183
.
Farkas
and
theoretical
,
copyright
Peter
Erdi
associations
@
1985
, "
ISAST
,
" Impossible
Leonardo, volume
.
Islamic tile designs reproduced from J. Bourgoin, Arabic geometrical pattern and design (Dover, New York, 1973), and from Keith Critchlow, Islamic patterns (Schocken Books, New York, 1976). xiv
Acknowledgments
Lattice designs reproduced
from Daniel Sheets Dye, Chinese lattice designs
(Dover, New York, 1974). Stone mason marks reproduced from Matila Ghyka, The geometry of art and life (Dover, New York, 1977), and Charles Bouleau, Charpentes, La Geometrie secretedes peintres (Editions du Seuil, Paris, 1963). Tree silhouettes
reproduced
from Derrick
Boatman, Fields and Lowlands
(Hodder & Stoughton, London, 1979), courtesy of the Rainbird Publishing Group .
xv
VisualModelingwith Logo
Chapter 1 Introduction
"Skill to do comesof doing." Ralph Waldo Emerson " Chance favors the prepared mind ." Louis Pasteur
Who I hope you are
You might
be interested
photography
- or in architecture . You may have had experience
commercial, or industrial with a background a professional
in the studio
arts - painting, drawing, sculpture, in graphic,
design . Then again, you might be a liberal arts type
in language, literature, music, or science . Or perhaps you are
type educated in the field of business, law, medicine, or theology .
You could be a student or a teacher or neither or both . You may have spent long hours in art studios and possess an exceptionally rich, visual
vocabulary . Then again, your graphic
abilities, both verbal and
physical, may be very much on the thin side . Instead, your vocabulary
might be
skewed toward logic and mathematical
is in the
sciences, philosophy
terms because your background
, law, or mathematics . Perhaps you are that much sought
after, well -rounded person whose vocabulary
is rich without
being specialized .
Chapter1
you
You
may
enjoy
when
be
able
looking
at
art, and
see
them
you
favorite
not
period
home
you
perspective
, you
intrigued
by
illustrate
objects
At
some
in
has that
forgotten
everything the
by This
aging
to
expect own
from
have
idea
of
what
that
, in
fact
, there
past
, you
the
favorite
of
them
Acropolis means
are
of
, but
artist
or
your
own
in using
perspective dozens
through
, say, a Pissarro
a
reproductions
sketch
in
must
What
, but
you
aren
' t brought
, and
most
of
intellectual
a
3 - point
. You
would
different
things
and you
a
special
by
this
idea
, then
visual by
how
to
be
ways
to
, visual you
one
of
course
the
the
few ?
edge
in
of
geometry
bits You
.
of
liberal
may
have
coronary
arrest
by
. your
baggage
curriculum
vitae
you
carry
, I hope
about
how
things
look
increase
this
kind
of
variety
of
computer
thinking to
a
trigonometry
, whatever
or
is
about
trigonometry
important
taken
. It
.)
and
have
geometry
share
at
went
are
exactly
who
quick
summary
of
basic
know
a little
Logo
but
I hope
says that
, and
you
are
.
excitement
by
models
. If
you
just
because
that
you
are
words
, I
you
encour
are
are .
baggage
gives
a very
you use
already the
manual
that
willing
to
that
you
are
you
have
never
came do
with
your
some
learning
before
, probably
Logo
. It is brief
because copy
of
, not
I
expect
Logo
. In
other
about
Logo
mechanics
you
have
been
on
your
.
If some
other
( I am
saddened
2
to
still
build
chapter
or
Picasso
a Picasso
probably
able
a course
to
This
willing
your
show
computer
differentiate
. You
be
that
.
will
Your
that
some
book
stimulated
can
phase
paintings
geometry
looking
you
I hope
have
in
words
type
excited
not
we
Finally whatever
may
space
every
side
have
taken
education
hearing
by
suggestion
time
( Everybody
you
you
do
the
describe
side
, and
. While
to
computer to
met
Logo
language think
of
and you
most
learning
likely
this
BASIC
before
other Logo
language , and
introduced was this
to BASIC
book
will
.
Introduction
give you the chance to right that terrible wrong .) If you do know something about one computer language, you should be able to plunge happily into the manual of a second language - Logo . I will give you some directional help, though, by suggesting what questions you need answered in your manual . Then it will be up to you to learn the specifics. I assume, too, that you have played around with personal computers and know how they "feel." You may like or dislike these machines, but your feelings are based on personal experience. You are familiar with disks, disk drives, keyboards, and program editors .
No baggage
If
you
have
learn
had
acorn
rough
puter
going
who
is
,
.
If
and
as
to
"
others
skills
doing
Logo
the
yourself
on
other
give
I
personal
your
hand
you
own
,
help
or
you
you
Logo
is
in
a
have
when
think
computers
course
access
you
should
,
ask
stick
to
for
a
it
around
and
have
never
you
may
find
teacher
,
and
if
tried
to
this
tutor
,
you
book
or
are
friend
patient
,
.
craft
in
"
as
doing
it
for
effective
needed
you
as
can
well
very
read
.
But
Logo
in
or
much
like
about
making
order
to
furniture
learning
a
furniture
craft
,
develop
the
.
and
You
can
you
can
individual
craftsmanship
,
read
talk
to
talents
you
must
and
physically
.
For
old
on
program
about
with
tenacious
Learning
it
,
to
Programming
about
experience
language
willing
curious
do
no
the
timer
newcomer
can
overly
intimidating
spirits
high
to
suggest
a
craft
,
beginning
small
.
And
by
offering
,
a
master
artisan
projects
encouragement
that
can
certainly
are
reasonably
,
he
be
of
taxing
can
keep
help
.
but
the
novice
The
not
's
.
3
Chapter1 This chapter is designed to reinitiate you into the excitement of Logo craft; all the exercises within the chapter have been fashioned by an experienced craftsman . These initial projects should be copied . All artisans begin learning their craft by copying what others have done . This is not to deny their creativity but rather to allow for a strengthening of the basic skills that support individual creativity . Good craftsmanship, of course, requires both skill and creati ve flair . For my purposes, skills are as much frames of mind as forms of physical dexterity . For example, in this chapter I will stress the usefulness of three such skills : first, an ability to break down big problems into smaller problems ; second, a willingness to imagine yourself as " walking " shapes into existence; and third, a propensity to tinker with your Logo machinery . Very soon (starting with the exercises at the end of this chapter, in fact) you will be asked to apply these skills to support your own kind of invention . Craft is about building things by hand, and that is what you will be doing with Logo.
Copying and tinkering
Copying
computer
programs
opinion
about the usefulness
is so widespread
that I had better give you my
of it all . In the previous
paragraph
I said that
copying was a good thing at the start of one 's apprenticeship . As you go through this chapter, I hope you will want to try out my procedures . That 's OK . But if you simply type my procedures into your computer, you will only reproduce what I have done . And that will bore us both . The book shows what I have done ; it doesn 't show what you can do . My procedures offer you a starting place, so that you don 't have to build from zero . But it is up to you to go beyond that start . So please do copy the ideas of any procedure
that strike your fancy . But,
once you have made those ideas work on the screen, play rough with them . Give the copied procedure 4
funny and outlandish
arguments . (Very big or very small
Introduction
numbers
could
then
?
be
Does
make
your
a
few
mands
a
but
what
procedure
.
the
Can
is
still
inside
little
changes
you
funny
work
body
of
guess
a
?
the
what
argument
Can
you
)
What
explain
procedure
;
might
?
happen
happens
how
change
?
some
before
Go
of
you
on
the
to
com
experiment
on
?
Get
nice
,
copied
changes
just
these
outlandish
into
the
procedure
habit
,
of
make
a
tinkering
few
,
just
changes
a
to
it
little
.
so
that
Whenever
it
you
does
write
,
something
or
else
copy
,
a
.
Equipment
Your
most
than
important
the
computer
Select
a
track
them
,
and
;
than
don
good
I
lot
will
write
worry
,
the
.
a
of
the
Glue
.
.
' t
smoke
Get
lines
in
Rubber
The
.
and
of
glue
is
it
You
will
,
.
Be
at
careful
the
.
finally
,
of
using
same
time
If
.
I
fancy
,
with
find
the
less
.
plenty
of
get
there
room
;
no
for
will
for
messy
is
paper
pages
any
need
a
not
you
to
careful
let
you
.
and
glue
in
in
you
will
graph
,
Stick
whenever
and
need
keep
sketches
good
Since
.
to
little
.
means
.
disposal
you
the
never
That
you
your
want
the
bound
important
images
better
you
the
more
:
handwriting
Glues
this
.
mixing
best
organize
Queen
pages
that
is
way
far
at
printed
those
is
may
the
the
be
paper
the
in
your
with
unlined
notebook
cement
lot
strike
is
everything
crabbed
in
And
,
well
,
get
piece
bound
that
It
manuals
means
encourage
will
.
and
notebook
Also
.
technical
That
.
format
.
notebook
listings
worked
large
space
book
a
.
a
the
,
organization
notebooks
a
unlined
procedure
that
Small
glue
all
illustrations
a
,
,
hesive
,
things
lot
and
notebook
about
carefully
reorganize
Don
' t
stuff
diagram
this
diagrams
that
need
,
newspaper
suggest
of
in
is
on
large
work
portraits
equipment
work
with
your
magazine
of
you
notebook
of
word
a
piece
the
,
though
world
' s
;
it
is
best
notebook
very
flammable
ad
.
.
5
Chapter 1 Dialects
Unfortunately, there is not just one Logo . While some Logos are more alike than others, most have quirks .1 I use Terrapin MacLogo throughout this book . All the procedures have been written in this dialect using an Apple Macintosh Plus. Most of the images were generated by Logo procedures and printed on an Apple Imagewriter II printer . The rest were done by hand, mine . You may have a different machine and a different Logo . To make life as easy as possible, and to eliminate the need to talk about dialects, I have tried hard to avoid using those components that vary most between Logos. The bad news : this is a book about graphics and graphics is the area in which Logos differ most . So I skirt any graphics razzle- dazzle that might work in one Logo and not in another . I don 't use funny pen patterns, polygons filled with patterns that look like brick walls or tile roofs, or automatic mirrors that reverse images. There are no sprites or multiple turtles . The only colors I use are white, black, and (very occasionally ) a reversing pen color . All the line drawings have been done with a standard, narrow -width pen.
Caveat emptor
This is a little late for a warning, but here it is anyway : This is not a bookabout Logo. You will end up knowing a lot about Logo, and that is no bad thing . But the goal of the book is to get you to build visual models, and Logo is only a means to that end. God knows, we could have used Pascal. But it just so happens that Logo is easier to learn and easier to use than most of the other languages that we
- Appendix A in Brian Harvey 's Computer Science Logo Style, volume 1: Intermediate Programming (Cambridge, MA : MIT Press, 1985), gives a nice summary of the syntactic differences between Logos. It gives no help with differences in graphics, though .
6
Introduction
could have selected. Logo notation is neat and tidy ; it looks nice on the page and that encourages visual thinking . But most important, because Logo is so easy to play around with, it won 't get in the way . Turtles are us
We will concentrate on the graphic parts of Logo . And that means " turtle graphics ." The intent of Logo's turtle metaphor was to inspire young children to explore shapes. The turtle is a tiny triangle of light that is moved about the screen via Logo commands . As the turtle moves, it leaves a trace of light . Children are encouraged to imagine themselves in the turtle 's place and to draw a shape by walking through it, as the turtle would walk through it . Children have the necessary body knowledge to walk a circle, even though they cannot express their circle drawing rules before walking them . Walking the turtle around an invisible circle translates the body 's knowledge into word commands : " I' m walking him forward a little bit, now I' ll turn him a little, I 'm walking him forward a little bit, now I'll turn him a little . . . I'll keep doing this until until he's finished . Yes, that 's it ; I'm back where I started ." Once said, the words are available to be transformed into Logo commands. Because adult bodies may be more spatially intuitive than children 's, your turtle visualizations can be far more effective than a child 's. There is a problem with adults, though ; they aren't used to playing imagination games as adults and must be coaxed into it . Children are happy to play silly games; adults may be embarrassed to try . I will be asking you, after all, to imagine yourself as an electronic turtle . And what would that feel like, I mean physically ? Use your turtle body and walk around a bit . Don 't reject visualization and muscular thinking before you try it . What was good enough for Uncle Albert should be good enough for you . Listen to what he said: "The physical entities which seem to serve as elements in thought are certain signs and more or less clear images which can be 'voluntarily ' reproduced 7
Chapter1 and combined . . . this combinatory play seems to be the essential feature of productive thought . The above elements are, in my case, of the visual and some of the muscular type ." - Albert Einstein
Turtle space
Turtles live on your computer screen . Make sure you know the size of yours, since different
computer
screens have different
generally
stated in vertical
dimensions . Screen dimensions
(the y -axis direction ) and horizontal
are
(the x -axis
direction ) measurements . Pinpoint the x = 0 and y = 0 point on your screen . The turtle can be moved about the screen using cartesian x-y coordinates or turtle coordinates . Cartesian commands send the turtle to a specific xy position on the screen, without Various
regard to the turtle 's current position .
SET commands
move the turtle
through
cartesian space . Review
them . In the turtle
reference system, all commands
refer to the turtle 's current
position, not its final position . The turtle is moved forward, backward, turned left or right
in relation to where it is now .
Review the turtle reference commands : FD, BK, PU, PD, RT LT . In the cartesian system, the destination
is the important
thing ; in the turtle
reference system, it 's the trip .
Making shapes Let's draw a simple shape using turtle reference commands . Suppose you would like the turtle to draw a square box located at the center of the screen (usually
the origin of the xy coordinate system). Here are the three steps you would take: First, you would clear the screen by typing CG (clear graphics ). The turtle now sits at 0,0 and faces straight up .
8
Introduction
Second, you would through
think about the commands
needed to walk the turtle
the shape . Use the turtle metaphor .
-
" OK turtle ? Go forward 50 steps and turn right by 90 degrees. That completes the left side of the box."
-
"Now, go forward another SOsteps and turn right by 90 degrees. That completes the top of the box."
-
" Go forward yet another 50 steps and turn right again by 90 degrees. That completes the right side of the box."
-
" Go forward another 50 units and turn right 90 degrees. That completes the bottom edge of the box."
That 's it . The turtle has walked around the four sides of a size 50 box, arriving back to where it started . These prose commands would translate into Logo as:
- FD 50 RT 90
- FD 50 RT 90
- FD 50 RT 90
- FD 50 RT 90
The third and last step would be to type these commands on the keyboard . And here is what you will see.
9
Chapter 1 " 2-
,
J
4-
Great . This series of commands
wasn 't it tedious
does indeed
draw
the square you wanted ; but
to type in all that stuff ? The command
FD 50
RT
90 was
typed four times . Surely there is a shorthand method to repeat this line four times without typing four times . Review the REPEAT command ; it is exactly w hat we need here. Try it . CG
REPEAT
4
[ FD
50
RT
90 ]
Notice that the line REPEAT 4 [ FD 50 RT 90 ] is a kind of operational definition
of what
a square
is : a square
is four
sides, four
FD
commands
, with
each side joined at right angles to the next, the RT 90 commands . That 's tidy, but it 's still a bore to type two lines each time you want a size 50 box on the screen . After
all, you may want
Wouldn 't it be convenient
to draw
100 boxes .
to be able to " tell " Logo your
square and then to give that definition
definition
of a
a name ?
Logo proceduresgroup commandsunder a single name
You can group a series of Logo commands together under a single name by writing a Logo procedure . The name of the procedure is a shorthand for all commands in-
10
Introduction
cluded
in it . Typing
the name of the procedure
tells Logo to automatically
execute each line of the procedure in turn, just as if you had typed them, one after another, on the keyboard . You can " tell " Logo your definition
of a square by creating
called SQUARE. Logo will " remember " your definition
a procedure
until you either erase it or
turn off your computer . Review the defining and editing procedures in your Logo manual .
Shapes defined. and drawn by procedures
Let 's get on with writing
the necessary procedure . Here it is :
TO BOXSO REPEAT 4 [ FD 50 RT 90] END
Logo will add BOXSO to all its other commands . Each time you type BOXSO, the
turtle will draw a square of size 50. The figure will be drawn at the turtle 's current position
on the screen . Unless you move the turtle
to a different
starting
point, each time you type BOXSO, the square produced will be on top of the previously drawn figure . So move the turtle around to new positions and draw some
more
boxes .
But you can certainly be more imaginative than that . Create an interesting design on the screen using only the BOXSOprocedure and move commands. If you have a color screen, you might want to investigate the effects of changing the screen's background color and the color of the pen. Keep track of what you are doing in your notebook so that you can reconstruct your successfuldesigns. Here is a simple command that wraps boxes around the screen: REPEAT 25 [ PD BOX50 PU RT 15 FD 60 LT 15 ]
11
Chapter 1 Wrapped boxes
Here are two different
images produced
by that one -liner . How are they differ -
ent ? Is one image more pleasing than the other ? Why ?
12
Introduction
Generalizing
procedures
What about boxes of different sizes? You could edit the BOX50 procedure every time you wanted it to draw a different size box. You could also define many BOXlike procedures, each to draw a different size box. But that doesn't seem very efficient, does it ? After all, Logo itself doesn't have a different FD command for every possible length of line that you might wish the turtle to draw . There is not a FD- 1O command for drawing lines of length 10 and a FD- 43 command for drawing them 43 units long . Logo has a single FD command . Whenever FD is used, an argument must be used in conjunction with it : the form is FD argument . A single argument must be typed just after FD. For example, one could type : FD 10 or FD 43. The value of the argument " tells" FD how to go about its business of drawing straight lines . Isn't this convenient ? One command does a variety of things . FD
argument
draws straight lines of any length . If we
change the value of the argument, the line length changes accordingly . Let's generalize BOX50 in terms of box size as FD is general in terms of line length .
Adding an argument to a procedure
Define a new box procedure that has a size argument . The value of the argument will tell the box procedure how to go about its business of drawing boxes. Changing the value of the argument will change the size of the box. You can now draw boxes of any size from, say, 1 unit to 5000 units . Use this example as a "pattern " for incorporating an argument into a procedure. TO BOX : EDGE
REPEAT4 [FD : EDGERT 90] END
13
Chapter 1
Putting a demonsuation procedure together
I am sure that by this time you have already designed some interesting patterns with various BOXprocedures. Some of these patterns you probably liked enough to print and glue into your notebook. Remember to include a few written comments on what you were trying to achieve. Perhaps you would like to show off your designs. You could show your pals the images in your notebook . But seeing an image is not the same as seeing how the image is drawn, the order in which the pieces are visually assembled. How would you go about demonstrating this? You could retype all the Logo commands needed for your screen collage. What else could you do? Remember that Logo procedures can group a series of commands together under one name. So let 's define a new Logo procedure that will run all the necessary steps to demonstrate your design. Once defined, you will only have to type the demonstration procedure 's name to have your designs redrawn on the screen. Your demonstration procedure will have no arguments; it will only do one thing : generate a specific design that you want to show to your friends . If you wish to show off with several designs, you could design specific Logo procedures to reproduce each design. Here is an example of such a demonstration procedure : TO DEMO ; A demonstration procedure to show off a design ; produced from multiple boxes of different sizes . REPEAT 4 [ BOX 100 BOX 98 BOX 96 BOX 75 BOX 40 BOX 35 BOX 30 RT 90 ]
END
To see the pattern defined by DEMO , type it :
14
Introduction
Funny feelings
Do you have a funny feeling that this isn't enough, that we aren't producing great enough images? Let's think about this for a while . Drawing with Logo should not be the same as drawing with a pen or pencil . What can be sketched quickly by hand is unbearably tedious to sketch with Logo. You may have tried sketching with Logo by moving the turtle as you would move your sketching hand . It doesn't satisfy, and it doesn't work . Logo is a unique medium for visual expression; don 't expect it to, be like other media . Visual modeling with Logo is as different from drawing as clay modeling is different from photography . Our Logo media is a visual modeling media . We use it best to build models . Why ? To encourage us to think about shapes. The drawing is done to encourage thinking . So don 't worry too much (now ) about the final image. Don 't worry if your designs aren't amazingly beautiful ; don 't be concerned if they aren't " arty ." This isn't, after all, a book about computer "art," but it might be useful to think about ART for a minute . Here is a quote from a computer art type, Harold Cohen from the University of California at San Diego : " For most people outside of art, 15
Chapter 1
probably, art is directed
primarily
at the production
of beautiful
interesting
images ; and who is to argue that a complicated
beautiful
than an Elsworth
machine
simulation
Kelly
painting
of Mondrian
Lissajou figure is less
or a Jackson Pollock ; or that a
is less interesting
plagiarizes ? To talk of beauty or of interest
objects and
than
the original
it
is to talk of taste, and matters of
taste cannot be argued with much profit . The fact is that art is not, and never has been, concerned
primarily
with
the making
patterns . The real power, the real magic, which
of beautiful
or interesting
remains still in the hands of
the elite, rests not in the making of images, but in the conjuring of meaning ." A little professorial, this . But do you think he has a point ? Go back to your demonstration
procedures, the ones that have no arguments
so they do only one thing . A procedure drawing
procedure
much thinking procedures
that does only one thing is like a box
that draws only one size of box . One box doesn 't encourage
about the nature of boxes, does it ? Can you use your demonstration
to explore the nature of a collage that intrigues
with the collage demonstration
procedure
Maybe you could generalize argument . To generalize
does ; and that 's our appropriate
that draws it . Tinker a bit .
the demonstration
a procedure
you ? Play around
procedure
is to stretch your thinking
by adding
an
about what it
work, too, because it respects the uniqueness of
the Logo art medium . " It 's the tinkering
that counts, not the artiness ." Pin that
phrase over your computer screen .
Generalizing
a procedure with arguments
Let 's go back to that BOX procedure . Can we generalize
it so that it draws
triangle " boxes " as well as square ones ? While we are at it, let 's ask BOX to draw boxes with any number
of equal sides . These shapes will be regular
polygons
with n sides . Why not call the generalized procedure NGON for n-sided polygon ? Look again at the procedure BOX into NGON.
16
BOX and decide what needs to be changed to turn
Introduction
TO BOX :EDGE REPEAT4 [FD : EDGERT 90] END You need to add a secondargument : N. This will tell Logo how many sides to draw. We can replacethe REPEAT 4 with REPEAT : N. FD : EDGEwill stay the same, but what about the angle you want the turtle to turn before drawing the next side? It surely will be different for different sided polygons. Generally, sketching focusesgeometric thinking . Here are some walking plans that you might issue to the turtle to do NGONs .
<.
1 '1
~
\
2
A ~
!
\
.
How can you calculate the angle indicated by the " ?" for any n-sided poly gon? Your geometric intuition should tell you that the turtle, after making : N turns, will end up facing the same direction in which it started . The amount of each individual turn will be 360 divided by the number of turns, or 360/ : N. (Now is the time to recall Logo 's mathematical capacities. Review the Logo notation to add, subtract, multiply, and divide .) You are ready to write the new procedure NGON :
TO NGON:N : EDGE REPEAT :N [FD : EDGERT 360/ :N] END
17
Chapter 1
Try it out . Notice that when : N becomes large, the drawn figure becomes a circle (almost ). Carry out some clever visual experiments
with NGONs.
Some observations
Look back carefully at what we have done so far with procedure writing . We started with a list of commands that drew a box of a single size. Next, we grouped these commands into procedures that could draw boxes of several different sizes. Next, we generalized the BOX procedure with an argument so that it could draw boxes of any size. Finally, we produced a still more general procedure, NGON, that can draw any regular, polygonal
"box" - triangles,
squares, pentagons, hexagons, and so on- of whatever size we wanted .
Making the simple more complete
What next ? How can we make these simple polygons more interesting ? Maybe we can add another polygon characteristic to NGON . Sometime in your life you were probably given an exercise like the follow ing . " Cut out some different sized squares from a sheet of colored paper and think about placing the squares on a large piece of white paper . First, try to arrange the squares so that your design feels unbalanced and looks wonky . Next, rearrange the squares to create a balanced design." What kinds of changes did you make? What about creating an arrangement that looks sad and another that looks euphoric ? Each design used the same squares. What made them different ? Their placement . Make NGONdraw a bunch of NGONsand put them on the screen according to some placement rule . Take out your notebook and doodle . Here are some results from my doodling . Your approach will be different . I'll explain mine, and I'll expect that your plans will go into your notebook.
18
Introduction
Sketches of spinning polygons that grow or shrink as they spin
-
- _..~~ ~
(s:e..,.."'('",,.J(,. ~ l (,.G --c:12 .
/
l' (r.G, -r-"JC::r SMA Ll . En-
SI =iit C+-,p, ~ CrE
19
Chapter1 Word description of sketched ideas
" I want Logo to draw a series of polygons rotating around a common point, and I want each successivepolygon to get bigger, or maybe get smaller . " I don 't know what angle to turn between one polygon and the next, so I'll include an argument called : ANGLE that I can vary, to see what happens. " 1 don 't know how big the growth should be between one polygon and the next, so I 'll define another argument called : GROWTH . I 'll play with different values of : GROWTH to see what looks best. " How do I make : GROWTHwork ? Growth can be of two sorts: growth by a constant amount, or growth by a constant percentage. I 'll try the latter . That means that if I want polygons to grow by 10%, I define : GROWTH to be 1.10. For a 90% shrinkage I would use : GROWTH = .9."
A procedure to spin polygons TO SPINGON : N : EDGE :ANGLE : GROWTH NGON : N : EDGE RT : ANGLE SPINGON : N ( : EDGE* : GROWTH ) :ANGLE : GROWTH ; Here is the recursion . END
What is new here? First, there are more arguments than you have seen before. Every time you use SPINGON, you must remember to type four numbers after it . Second, this procedure is recursive : the last line in the SPI NGON procedure asks that SPINGONbe done again, but with some arguments changed. For example, ( : EDGE) becomes ( : EDGE* : GROWTH ) the first time recursion is called; and then ( : EDGE* : GROWTH ) becomes ( : EDGE* : GROWTH ) * : GROWTH the second time recursion is called . A recursive procedure is a procedure that uses itself as one of its parts . Will SPINGON ever stop? Try it out .
20
Introduction
Somespingons
SPINGON30 2 10 1. 02 95
HOMECG REPEAT 3 [SPINGON4 120 0 . 95 50 RT 90] SPINGON 4 120 0 . 95 19
21
Chapter1 Stopping recursive procedures
One last procedural writing point to review . Having put SPINGON into motion, how do you make it stop at a stage of your choosing? You need to have a way of telling it how to stop . That 's another characteristic to include as an argument . Look at the following modification to SPINGON. Review the conditional commands in Logo. IF
.
.
.
[ something ] is such a conditional . Using the IF
phrase, everything becomes very tidy . TO ;
SPINGON
- IF
- ;
-
N
Note
- the
-
TIMES This
< is
- NGON
-
N
- RT
-
ANGLE
-
GROWTH
argument
1
above
[ STOP
- the
-
TIMES
.
]
conditional
stopper
- .
-
EDGE
-
ANGLE
- SPINGON
- ;
-
EDGE
- new
-
N
Note
( : EDGE
the
new
: GROWTH
- )
-
ANGLE
above
.
me
give
you
topic
that
gives
most
students
talk
about
:
maintenance
- argument
-
GROWTH
( : TIMES
l
)
END
Boring
logistics
Before
ending
Logo
language
one
about
of
the
most
from
files
the
, let . The
boring
please
. Do
chapter
manual
it . But
material
files
this
same
things
review
,
how
review
to
how
to
erase
for
storing
to
save
files
,
and
a few
text
more
file
items
material
how
to
as
catalog
retrieving
files
graphics
to
review
from
the
most
problems
. So
files
,
,
I
how
and
information
how
your is
won
't
to
retrieve
to
talk
.
A note on the procedure presentation style used in this book
I have tried to make the presentation
of procedures
possible . Here are several of my presentation
22
rules .
in this book as readable as
00 t~o :r:1~hj ~ hj -C :jHo -C :jH~
Introduction
First, the many commentsrule . I have included wordy explanations in some of my procedures. These comments begin with the Logo command " ; " . There is, of course, no need for you to include these comments in your own version of my procedures. However, it is a good idea for you to put comments in your own procedures. Second, the meaningful cluster rule . I often include extra parentheses to group like elements into a cluster. This is useful, for example, when an argument is composed of a collection of Logo material, but you want to see it as a single cluster of information . Here is an example from this chapter. Notice the use of comments, too. TO SPINGON : N : EDGE : ANGLE : GROWTH: TIMES ; Note the new argument above . IF : TIMES < 1 [ STOP] ; This is the conditional stopper . NGON : N : EDGE RT : ANGLE SPINGON : N ( : EDGE* : GROWTH ) : ANGLE : GROWTH( : TIMES- l ) ; Note the new argument above . END
Third, the body structuring page without
rule . Procedures should be laid out nicely on the
too much information
should be divided
on anyone
line . Long procedure
statements
up between lines to make them more readable . The special
character
" - " is used to indicate
continued
from one line to the next . Here is an example . Notice that the Logo
material
within
the [repeat brackets ] would
long statement had not been divided
TO SQUIGGLE REPEAT :N [
END
- when
-
B
Logo statement
have been difficult
has been
to read if the
- into several short lines .
-
N
:A
130
:A
50
:B
a single
]
23
Chapter 1
The symbol " - " indicates, of course, that the return key should not be used becausethe Logo statement continues. Consult your ov- mLogo manual for handling the problem of procedure layout . Exercises
There are five exercises to explore before going on to the material of chapter 2. The first is so important that we will go through it together, step by step. You can work on the other exercisesby yourself .
Exercise 1.1 Make NGONmore versatile by doing two things to it . First, improve NGONso that it will draw polygons around a central point; and second, improve NGONso that it can be given an argument that specifies not the length of an edge of the polygon but the radius of the polygon. I' ve made up the term radius of a polygon . It is the radius of the smallest circle that just encloses a regular polygon . The center of this circle is the point around which the polygon is to be drawn . Seethe diagram below .
t
~
.J,
.
"
"
'
0
.
.
.
. fr.o
. .
. .
. .
. .
.
R lS ~
'
.
"
t>\ ~ S 0 ;:: 1' ~ l...vG-l.?, J
Call the revised procedure CNGONfor " entered NGON ./I
24
.
'
. .
. .
. .
Introduction
Two hints : First, ask yourself what arguments CNGONwill need. This is another way to ask yourself what information must be given to CNGONso that it can go about its business of drawing centered NGONs . CNGONneeds only two pieces of information, or two arguments : the number of sides of the polygon to be drawn and the radius of that polygon . That means that the first line of the new procedure will look like this :
CNGON:N : RAD Second, imagine yourself as the turtle . How would you walk through the design that CNGON must make? Draw a simple diagram to describe such a " turtle walk ." You might want to divide the diagram up into individual scenes. Later you can translate each scene in words and then into Logo notation . Here is the first instance where this turtle visualization is really needed. Let yourself go; talk out loud ; get on with it without too much thinking .
Word description of the turtle walk (see sketches on next page)
Diagram A: Gettingread~ to drawthe~ol~gon. You, as the turtle, begin your journey from position (1), the center of the proposed polygon . You are facing straight up . Pick up your pen and move forward by the amount of the polygon 's radius . This is : RAD. This puts you in position (2). You now need to turn right by an amount that is labeled (angle) on the sketch (3). What will
(angle ) be related to? Will
(angle ) be different
for
differently shaped polygons, that is, polygons with different numbers of sides? Yes. Will (angle) be related to the overall size of polygons ? No . Don 't worry about how to calculate (angle), yet; you can work that out later .
25
Chapter 1 Turtle walk sketches
. .
:
(3)
.
.
. . . .
. .
~ A ) II .I.~
: . . .
. .
e A
::B
t t
:~ (+) (b) . ~ ) AIIJ6 -tE~
.
c
26
~ c..~)
,])
Introduction
After turning right by the amount of (angle), you are looking along one of the polygon 's edges (4). Put down the pen in preparation for drawing the polygon .
Diagram B: Drawing the I2o1~gon.
You are at position (4) and ready to draw an n-sided polygon . You can use the procedure NGON. But what arguments will you use? It needs some values for : N and : EDGE. Right ? Yes, but
wait
a minute
. What
should
the
value
- for
-
EDGE
be ? You
know
the
value of : N, the number ')f sides of the polygon . And you know the value of the new argument, : RAD. What must the polygon 's edge dimension be so that, after it is drawn, it has a radius equal to : RAD? In other words, we need to be able to express : EDGE in terms of : Nand : RAD. OK . We know the problem, what we have to work on, but let 's not stop yet . Label the edge thing that must be calculated (edge). We will return to it in a minute . Now you can draw an NGON : N (edge). You began the NGONfrom position (4). You will end at the same place.
Diagram C: Gettingread~ to returnto thecenter . You are at position (6). You must now turn left by the amount of (angle); this is indicated by (7). This leaves you in position (8), pointing straight up .
Diagram D: Returning to the centerof the ~ol~gon. Pick up your pen and back down, by an amount equal to : RAD, to the polygon's center. Finally, put your pen down in preparationfor whatever might comenext. Note that you, as the turtle, have ended in the sameposition (9) as you began (1). 27
Chapter 1
A turtle walk transfonned
into a Logo procedure (almost )
No more words are necessary. Here it is. TO CNGON : N : RAD PU FD : RAD RT (angle ) PD NGON : N (edge ) LT (angle ) PU BK : RAD PD END
The procedure is sketched. And we know what we know and what we don't. The two amounts, (angle) and (edge), are still unknown . To figure these bits will require a little geometry and trigonometry . We might as well use this opportunity to review all the bits and pieces of polygons .
The Geometry of CNGONs two diagrams in conjunction with the word and equation
Use the following descriptions .
,
. . .
k
/' :: !~d.e
: . . .
~~ /2.
.
.
-
6 ~\ : /
"
\
e/ 2.
f 6., ' 2.
.-...-.
.
'
. . . . . . .
:,
..
,
.. . ' . ..
' .
~ , .-
.
.
-"
. .
.
' \
.
.
:
."
. ' . .
, .
.
,
. , ,
'
.
.
.'t.
.
..'
.
. .
.
. . . . ..
.
." ",.,
D ., ~ :~ o... .
.
.
.
.
.
.
. '
D
.
.
.
Q..
.
.
.
.
. r " ' -
~
- '
.
.
.
,
.
.
'
.
'
'
....., ~~
.
. .
'
.
. .
' . .
.
.
.
.
.
.
. .
.
.
.
.
, .
,
.
.
. .
. ,
'
28
.
.
. .
.
.
.
.
'
.
.
.
'
.
.
.
.
, . v
.
IJ..,
.
.
.
.
." .''..*.'' ...tIt' ..'7~'
Iv
.
.
.
"
,
.
" " ...
c.1
.
Introduction
The first problem
we face is to find an expression for angle d in terms of n,
the number of sides of the polygon . The second problem is to find an expression for the length of a polygon 's edge, e, in terms of its radius, R, and n, the number of sides . In preparation with
for these two acts, let 's look at all the angles associated
polygons . The central angles, labeled a, are easy . They are each equal to
360 / n . The external angles, labeled c, are also equal to 360 / n . The external angle is the turning
angle used in NGON. What about the internal angles, labeled b . We
need some work here :
(1) c = 360jn, (2) c + b = 180.
29
Chapter 1
Putting (7) and (6) togetherand solving for e gives (8) e = 2Rsin (180/ n) <---Secondl2roblernsolved. Review
the following
trig
functions : sine, cosine, and tangent . What
is an
arctangent:? Draw some diagrams to explain each of these functions . Glue them
on the insidecoverof your notebook. Installing the necessary geometry into CNGON
Here's how far we have gotten with CNGON : TO CNGON : N : RAD PU FD : RAD RT (angle ) PD NGON : N (edge ) LT (angle ) PU BK : RAD PD END
Now we can replace
( angle
) and ( edge ) with the needed expressions .
Here is the finished CNGON : TO CNGON : N : RAD PU FD : RAD RT 180 - ( 90* ( : N- 2 ) / : N) PD NGON : N (2* : RAD* SIN ( 180 / : N LT 180 - ( 90* ( : N- 2 ) / : N) PU BK : RAD PD END
30
Introduction
Lessons
and
When
solving
visual
problem
in
tips
down
turn
,
and
Exercise
Put
into
then
1
problems
several
plug
one
presented
chapter
.
or
placing
simple
balance
or
' s
the
little
reproduction
little
more
thing
.
solutions
want
to
shapes
emotions
title
.
.
,
DEMO
act
below
( That
CNGON
problems
,
Solve
together
try
each
to
procedures
reviewed
them
might
reproduced
this
smaller
the
and
Make
You
like
form
to
break
of
the
small
big
solution
one
the
single
big
problems
.
. 2
together
ideas
,
by
more
strangely
think
some
on
a
A
painting
What
the
?
in
Can
this
chapter
by
way
. )
you
do
about
field
be
What
something
.
make
imaginative
Modify
use
every
procedure
of
the
in
the
.
more
blank
could
that
of
exercise
paper
the
more
the
to
Russian
that
do
similar
depict
artist
elegant
emotion
,
you
described
above
different
eight
feel
when
of
feelings
Kasimir
these
,
of
Malevich
red
looking
is
rectangles
?
at
this
?
31
Chapter1 Exercise1.3 Combine the ideas of SPINGONwith your newly constructed CNGON .
Exercise 1.4 Design a fancier CNGONthat fills up a polygon with textures. Here are a few visual tips for Exercises 1.3 and 1.4:
32
Introduction
Exercise 1.5 Design a Logo procedure that puts polygons on the vertices of other polygons . Hint : look carefully at the body of CNGON. When does the turtle arrive at a polygon vertex ? Mark the vertex arrival place in the CNGONprocedure . You might consider this location as the right spot to install some recursion : when the turtle arrives at any vertex, ask it to do another CNGONcentered on that vertex . This recursive drawing will place polygons on the vertices of polygons on the vertices of polygons . You will need to figure out a way of stopping the recursion machinery, or it will continue forever . Define a new argument, : LEVEL, to keep track of recursion levels. What about the relative sizes of the polygons ? Should they get bigger or smaller ? Can you handle that? Don 't forget the following tricks :
- Imagine yourself as the turtle .
- Sketch the design that the turtle must walk through .
- Describe the turtle walk in words .
- Divide
the walk up into logical sections .
- Note the bits you know and the bits that will need some further
thought
and
research . 6. Translate the words into Logo commands .
- Test it out with realistic and totally outlandish argument values.
33
Chapter 2 Visual Modeling
" In the case of miniatures, in contrast to what happens when we try to understand an object or living creature of real dimensions, knowledge of the whole precedes knowledge of the parts . And even if this is an illusion, the point of the procedure is to create or sustain the illusion, which gratifies the intelligence and gives rise to a sense of pleasure which can already be called a es the tic ."
Claude Levi -Strauss, The SavageMind Models
Most physical models are miniatures, smaller versions of something else. Model railroad
engines are good examples, and many of us have had pleasant
experiences with them . They can be picked up and looked at from any angle, and they can be experimented with, too . How many wagons, for example, can a model locomotive pull ? Attach 10 wagons and see if the locomotive can pull them . And if you should sit beneath a model railway bridge when the tiny engine rolls across it, pulling all those wagons, what will the sound be like ? Will it be like the real thing ? Listen carefully and you will experience a double thrill : an excitement that comes from using a model to hear how a full -sized locomotive might sound; an excitement that comes from simply playing, on your own terms, with a miniaturized piece of the world .
Visual Modeling
I
believe
closely
at
the
our
clarity
ourselves
,
that
this
kind
of
world
, is
very
useful
of
vision
not
in
just
well
.
is
about
construction
as
This
visual
book
images
are
produced
by
more
whatever
they
raw
material
Logo
get
in
OK
. No
Logo
. But
An
important
What
more
first
. But
material
in
the
model
Chapter
to
a
talking
in
next
requires
what
ask
now
few
of
my
style
;
a review
's
an
image
have
a
fair
patterns
and
models
of
, images
will
our
models
though
All
must
try
first
. OK
. Models
and
times
, you
craft
design
visual
procedures
fact
that
involving
their
Logo
. In
build
does
fair
mean
now
is
the
time
.
Logo
mechanics
text
the
good
time
of
. Logo
hard
not
be
,
is
the
to
let
?
- producing
machine
. In
you
working
of
Logo
, the
the
using
you
will
the
exercises
at
Logo
, a
and
that
get
used
centered
polygon
of
turtle
the
's
style
right
assignment
walks
, and
build
through
.
be
some
helpful
.
the
geometry
you
to
away
. Be
. This
simple
the
throughout
apply
introduce
that
end
the
your
1 ; go
would
to
at
to
Chapter
chapter
Logo
compare
used
. Try
the
looked
need
probably
will
yet
you
trigonometry
1
to
scan
review
material
, Chapter
't
let
what
of
haven
1 will
' t just
review
introduction
you
. Don
addition
on
If
Chapter
geometry
should
understanding
section
some
to
?
with
out
the
time
exercises
maybe
try
know
much
a
next
, and
already
is
you
,
in
the
you
, so
bines
from
more
convinced
explores
. Other
.
look
by
using
world
Logo
am
in
that
designs
building
that
1,
1 describes
some
but
to
narrative
, you
of
in
spend
about
. Let
the
described
examples
book
pause
Chapter
if
not
introduction
knowledge
Even
constructed
model
pursued
machinery
be
your
best
modeling
imaginary
is
, I
models
real
us
addition
is
create
the
encourages
. . .
language
visual
of
will
book
of
play
of
kind
or
it
. In
such
from
, will
this
way
comes
current
much
abstract
, but
the
special
we
represent
because
manipulation
a
very
that
by
the
Sometimes
,
enjoyment
developed
.
machines
play
my
Logo
sure
to
exercise
com
geometry
.
35
Chapter2 Go back and take at peek at Chapter 1 right now . Have a good read and take your time with it . If you are a real Logo high -flier, test your flair by doing the exercises at the end of Chapter I, before you glance through the hints given there. After having a go at these problems, compare your Logo style with mine .
On to modeling
I have decided to begin this work with something
concrete, something
from the world of things . We can do some abstract modeling later on . The example that follows
is a description
machine . I never built
of ideas or emotions
of a device that I vaguely
remember seeing described in an old Scientific American a pipe - and -roller
selected
magazine . I 've called it
the thing, but I always wanted
to see
how it worked .
Pipes and rollers
Imagine that we are wandering about a construction site where there are useful bits and pieces lying about, free for the taking . While this wandering will be done only in our minds, the images seen there are based on impressions from past, real excursions. We will need some short sections of plastic pipe, the kind used for plumbing . Try to find as many different -diametered pipes as you can. Here is a sketch of what you might have picked up so far.
36
Visual Modeling
Next, let 's assemble a collection
of wooden
dowels
of various
diameters,
from very small diameters to very large ones . Dowels, or rounded wooden pegs, are used to join together adjacent parts by fitting holes . Dowels
are used by cabinetmakers
tightly
into two corresponding
to assemble fine pieces of furniture
when nails or screws would be unsightly ; and large dowel -pegs are still used to fit together wooden beams when aesthetics are more important
than cost . Call
the dowels that you have assembled " rollers " ; you will see why in just a minute . Here is a sketch of my dowel collection . (Sketches are models, too .)
Assemblin19the pipe -and-roller machine Now, imagine that one section of pipe is floating in the air at eye level ; one end of the pipe is clearly visible to us, and the pipe 's length is parallel to the
37
Chapter2 ground . Now, hold one of the dowel -rollers parallel to the length of the pipe and place it on top of the pipe .
Next, imagine rolling the dowel around the circumference of the pipe until it arrives back at its starting position at the top of the pipe . You will have to hold the roller very carefully so that it doesn't slip on the pipe but rolls nicely in contact with
the pipe . If you roll
the dowel around
the pipe in a
counterclockwise direction, the dowel will also turn counterclockwise .
'
"
The dowel would
'
,
turn in a clockwise direction
.
.
"
if the rolling -about -the- pipe was
also in a clockwise direction . Note the two motions of the roller : the roller goes around the pipe as it turns around it own center . The two centers, the center of the pipe and the center of the roller, will feature in all our calculations .
38
VisualModeling Now that you have an image of the physical machine in your mind 's eye, I can ask you to begin manipulating the parts of the image. Imagine playing with this model in your mind . What will the roller "look like " as it rolls around the pipe ? Can you draw a picture of it ? Or better still, can you create a Logo model of this roller / pipe machine that can illustrate the motions for us? Imagine, for example, that we glue an arrow onto the end of the roller .
What pattern will the tip of this arrow trace out as the roller moves around the pipe ? Imagine a series of photographs taken at regular intervals as the roller moves around the pipe . Let's construct a Logo machine that will work in this photographic way . In other words, let 's build a Logo machine to model the physical pipe -and-roller events visually . Roller talk
At first glance, this exercise looks pretty than the centered polygon break this problem polygon
problem
difficult .! certainly
more complicated
problem discussed in Chapter 1. But, if we could just
down into smaller, more manageable parts, as we broke the down, some of the complexity
might vanish . So let 's set about
doing just that . First, we can talk about the geometry already
of rolling
know . Then, we can do a turtle -walk
words . Finally, Logo will
act as the glue
cylinders
to see what we
scenario - with
sketches and
to stick
all the individual
parts
together .
39
Chapter 2
Look at the figure on the left below . We see the roller at the top of the pipe, position (a), and then rolled counterclockwise around the pipe to position (b). How much has the roller turned between points (a) and (b)? The dark bands in the figure indicate the contact surfaces between the roller and the pipe . If there is no slipping, the length of the band on the roller must equal the length of the band of the pipe . Why ? a-
(b)( .
We could think of this rolling in another way . See the figure on the right above. Imagine that the roller stays fixed at position (a). The roller now rotates at (a) while the pipe is rotated- clock wise- underneath it from (b) to (a). In this alternative view, the roller also turns in a counterclockwise manner, by the distance indicated by the dark band . Here, as in the figure on the left, the length of the band on the pipe must equal the length of the band on the roller . How can we calculate the lengths of these bands? First, note that the bands can be described as segments of a circle, that is, some fraction of the total circumference of a circle . Well, what do we know about circumferences ? Any circle 's circumference, C, equals 2nR, where R is the radius of the circle . Now look at the figure on the next page.
40
Visual Modeling ( a. )
The
band
'
on
the
pipe
fraction
is
the
number
of
degrees
in
where
band
27tRp8
/
length
360
,
of
the
What
next
physical
?
8,
/
measured
a
circle
.
The
Rp
is
the
radius
on
the
We
photograph
the
distance
to
point
much
that
outset
?
two
circumference
degrees
of
the
pipe
360
.
,
.
( phi
),
,
( a )
and
the
same
Rr
to
is
the
degree
Here
. If
we
it
is
360
pipe
is
each
other
in
of
pipe
,
.
the
,
This
total
therefore
,
provides
of
other
rotation
(b ) .
by
radius
to
each
the
thinking
equal
equal
the
on
The
Here
of
divided
band
expressions
are
between
for
you
Listen
on
radius
:
its
of
the
roller
talk
more
about
around
,
the
by
the
length
the
the
roller
.
,
since
the
.
Then
we
roller
,
in
terms
we
want
:
know
the
and
the
of
how
pipe
dividing
pipe
<P,
next
breaking
way
calculate
the
know
convenient
stoppings
to
to
very
roller
above
admit
these
the
/
represent
is
the
expression
So
of
the
in
- length
-
27tRr4
express
between
knowing
stopping
set
of
Rr
expression
And
roller
can
distance
rotation
degree
fraction
),
terms
degree
8Rp
This
to
the
some
( theta
they
rearrange
CP =
8
dimensions
can
of
angle
is
,
360
by
the
roller
relative
many
times
can
calculate
number
of
we
the
,
rotation
of
we
the
can
8,
the
stoppings
use
.
the
roller
tidy
from
one
,
you
.
big
.
But
this
problems
before
we
problem
down
go
on
to
than
you
into
smaller
the
turtle
thought
walk
you
ones
knew
makes
will
at
the
getting
41
Chapter 2 started easier. And once you get started moving in any direction, you will discover that you are already familiar with much of the scenery.
A turtle walk around the pipe
Remember that a turtle -walk scenario describes in words and sketches how you want the turtle to walk through a design . Let yourself go, but be specific . Addressing your instructions to the turtle and talking out loud may be helpful . Let's use the sketches on the next page as the focal point of this scenario. I have divided
my turtle walk into small scenes and have given each a letter
designa tion . The previous shapes in this section were drawn with Logo procedures, but I have intentionally
left the following figures in freehand form ; they are taken
from my own Logo notebook . I wanted to remind you that sketches come before Logo procedures that draw rounder circles. The following sketches record my visual doodling about this particular problem . But to appreciate the usefulness of sketches, you must do some yourself . Don 't just look at my examples. Because sketches can be effective visual aids for careful thinking, they need to be drawn carefully . I occasionally use rulers and a compass, but not always . Of course, the small diagrams on the next page are final sketches, not beginning ones. Final drawings, like final Logo procedures, are the results of many preliminary studies, many of which did not " work out properly ."
Word description of the turtle walk
DiagramA: Qrawingthe~i~e Begin at position (1) facing straight up. Draw a circle around point (1) with radius Rp. This will be easyto do using CNGON . (This procedure is listed below, but seeChapter 1 for a full description of it . Think of it as a black-box procedure 42
I "" ' -.. /
"
.
D. '
,
. .:.
.'-' .
" .
. . .
..
.
.
,
.
, , .
\ ...." . v , .
" ' " "
.
~.
.
'
'
.
,
,
'
,
"
'
J>"
"
..
,
,
.
'
'
,
.
~
- ' .
" D>
.
'
,
,
, ,
.
' ,
.
.
Visual Modeling
Turtle -walk sketches of the roller -pipe machine
E.
F.
q G .
H.
43
1111
~
MOU
s1uawn
Jo
l
~ lE
Sn ! pEl
PlnoM
09
OM }
a1l1
UO ! 1 ! sod
ld2uoI O
! Jap
MElp
JeldE4~
~
PUE
aa
aD
! od
' UMElP
01
. IEl : JuaJ
aq
lad
pue
E punolE
UO ~ Alod
a1 . I ~ Jo la . uO ~ Alod
o
~ Slalpun !{J~ S~~OlE ! li! Melp ! JJ1U3 lanDl U
~Ua ~ ; Alod ) l( Z ~ ) Sn apl UO uO pap! !pt1 ! sod !?ls - JO oz :urOlJ E-
liD SDa a1l1 ! 1 !qJrqM
S
!aIJl ;2u ) t ?! !1le Mt J
suo
a1l1
'
Jo
~ Alod
lEln
~ al
SMElp
'
1E1l1
auop ! s Jo~ Iusel ! 1 ! sod sap laqwnu{ 1 ! ' UOa1l1 'N
2u
a1l1
E
sau
G
~ ~UnOUle dUlOS pdUln ~ dq II ! M
- d ~ S' !2u a ;!)JeJ ut ?~ sale! P nOA al, l ~ { 1 MelO l { J !l { M U ! U
- UO ! ~ e ~Ol
- dq ~ d ~ elrole
- .~unOUle
- I ~nOA
- g! !UIarr WEl2E Uo } ! soa xau {lanOl S U lallol ! J ale.Ia1 all al! }Oa{ }~~Ot~?l ual U~ snln ! ~Ua {! M !UO lO ! ~ 1 !:usod
- )! aao ruelS ! ~s l {' Je 1 } 01 !G ~
:
al { 1 urOlJ
snUl
noA
sell paAour
!a
(
(
) all
ldIIOl 1aA
.M al .( ) U all } O
~ dSne ; ) dH sell laIIol ~ u ! od ~V } Jo .Ia } uaJ
dq 10U
OU II N! M MOlle dq ~ ' ( Z ) ?( 1dn) uo uad !UMelp } ! soda1 . I '~ad~aq;! )d! dueJ at ' {~}xaJo .Ia } uaJ al {at1 { '} aJuaH O } ) { Jeq ! 1U ! od MOlle
! 1le1S
put 2U
?lp MoN ~S MOllE aa
- ~ ~! ~Ueleaala
- ! MEla pal
- lO
- ]a4 UO
- J a1l1
~Ua ; ) a1 . I ~ I ( ZMOlle ) uo ! ~ ! sod o ~ aAOW 1el { 1 pue ! J ' 1E1l1 dn 1laIJl { 2 ! el1S a1l1 { 1saqS ! ! lJSWnJl !J
pala Jo
~ a4~ Alod ~ liD uo
al
~ all1 ( Z ) -uo . 09! ~ ! sod uo Sn ! pEl
! a aqa4 PlnoM ~ JD
! 1. I . L ' lallol NO ~ N : ) : aldwExa .
s . aNlm
Sa ) { E1 NO ~ N : ) 1U
' av
OZ
1UallnJ
. UMElp
Aue
Visual Modeling Diagram F: Orienting therolleranddrawing thearrow
The roller has moved from position (2) to position (3) by rotating about its own center. We used the symbol to indicate this rotation . The angle is measured relative to the dotted line linking the centers of the pipe and roller : (1) to (3). You have arrived at position (3), pointing along the axis (1) to (3). If you now turn left by angle = 8Rp/ Rr, you will be facing in the correct direction to draw the arrow . Draw the roller circle, too.
Diagram G: Gettingbackto thecenterof the12i12e Turn right by 4>, pick up the pen, and move back down to (1).
DiagramH: Pre~aringfor thenextrollersto~~ing~osition Get
ready
to
position
to
the
( 4 ) . The
the
dotted
culated
cj> at
the
arrow
, turn
be
back
and
A
turtle
To
start
a
by
cj> at
38Rp look
(4 )
the
/ Rr
Why
at
the
transfonned
, recall
that
equals
? Ora figures
to
go
,
a
on
have
to
an
down
few page
40
Logo
procedures
glue
arrow
an
of
for
the
any
center
( 5 ) is
not
to
of
Because
move
out
to
relative
length
moved
left
the
pipe
in
convince help
cj> must
turn
shown
onto
shaft
and
measured
has
now
the
arrow
again
28 ?
roller
may
some
8
?
and
diagrams
angle
( 4 ) is
Why
to
by
point
- / Rr
-
you
position
w
left
( 4 ) . Why
28Rp
back
into
draw
the
position
stopping
we
to
( 2 ) . Turtle
- next
-
turn
at
(1)
starting
cj>, and
walk
procedure
angle
position
right
image
points
the
starting
Angle
will
linking
to
roller
rotation
position
relative
from
next
roller
line
Angle
write
draw
28
by
cj>,
be
cal
degrees
draw
the
.
the
diagrams
yourself
of
. But
all
it
this
. Go
. So
let
.
the
face
of
the
roller
- 's
-
L .
45
Chapter2
SHAFT
TO
ARROW
;
To
;
- each
-
L
draw
a tip
simple is
FD
arrow
of
by
. 2 *
given
;
PD
LT
140
FD
- . 2 *
-
L
BK
- . 2 *
-
L
RT
280
FD
- . 2 *
-
L
BK
- . 2 *
-
L
LT
140
shaft
- length
-
L . The length
- of
-
L .
-
L
- BK
-
L
PU END
PIPEGONs
Let 's call the procedure will
that will
be the arguments ? Certainly
carry out this turtle
walk
P IPEGON . What
the radius of the pipe and the radius of the
- roller will be needed . We will also need to know e and how many stopping points
- we would like to photograph . Here is the list of arguments so far :
-
RP, the radius of the pipe
- RR, the radius of the roller
- THETA, the angle distance between stopping places
- N, the number of stopping places
Let's add one more, : CUM, that will keep track of the total of the angle turned from the starting roller position . We can now write the first line of PIPEGON: TO
46
PIPEGON : RP : RR : THETA : CUM : N
Visual Modeling
How do you feel about rushing right into doing the rest ? The following
is
not my first " rush " or even the second . My first few attempts had bugs in them, and they didn 't work as I had planned . But procedures
almost never work the
first time . That 's OK as long as your energy is up to fixing them .
TO PIPEGON: RP : RR : THETA : CUM : N IF :N < 1 [CNGON20 : RP STOP] PU FD : RP + : RR PD LT : CUM* : RP/ : RR ARROW : RR* 1 . 5 CNGON20 : RR RT =CUM* =RP/ =RR
PU BK : RP + : RR LT :THETA PIPEGON: RP : RR : THETA ( : CUM+ : THETA) END
( : N- l )
Supporting procedures TO
CNGON
:
N
:
RAD
.
,
To
draw
an
N
sided
polygon
centered
on
the
turtle
of
the
circle
'
s
.
,
current
position
.
RAD
is
the
radius
that
.
,
would
pass
through
all
of
the
polygon
'
s
vertices
.
.
,
See
Chapter
PU
FD
RT
180
NGON
:
180
PU
BK
(
N
(
:
for
a
full
description
of
CNGON
.
RAD
:
LT
1
2
90
(
:
90
RAD
(
:
RAD
(
:
N
SIN
2
N
2
)
/
)
/
:
N
(
180
:
N
)
PD
/
:
N
)
PD
END
TO
NGON
;
To
;
drawn
;
is
:
N
:
EDGE
an
draw
N
given
REPEAT
N
sided
[
:
FD
polygon
turtle EDGE
by
:
the
from
.
'
s
The
current
first
edge
position
will
,
be
and
its
length
.
EDGE
RT
360
/
:
N
]
END
Some
I
pip
typed
. egon
PIPEGON
productions
60
30
60
0
6
.
This
models
,
in
a
visual
way
,
the
rolling
of
a
47
Chapter2 roller of radius 30 around the circumference of a 60 radius pipe . The roller stops along the circumference every 60 degrees, and 6 rollers will be drawn . The argument : CUM is given an initial value of o. What is : CUM being used for ? What happens if you begin with some other value, say 43.5?
~
One last point . In my turtle-walk scenario I drew the pipe circle before doing anything else. The procedure PIPEGONdraws it last. Why did I change the order of things ? Well, I wanted to use recursion and to be able to specify the number of times recursion would happen . I used the argument : N to take care of this . PIPEGON's first line looks at the current value of : N; when : N"becomes zero, PIPEGON should be stopped . It is easier to know when a procedure should be stopped than when it has just begun, and this seemed a nice place to draw the pipe, after all the rollers had been drawn . Could you reorganize the procedure to draw the pipe before drawing any of the rollers ?
Exploring PIPEGONdynamics One of the pleasures of modeling is playing with the little model you have
48
Visual Modeling built . Let's fiddle with PIPEGON's parts to see what happens . I will show you only a few things to give you the idea. Let's start with some different argument values . Here is the portrait of PIP EGaN
60
30
2
0
180 .
But I don 't like all those circles. So I removed PIPEGON's third line . Here is the new version . The asterisks ( * * * ) mark where the line was removed from the original version of the procedure . Don 't type them, though . TO A . PIPEGON : RP : RR : THETA : CUM : N ; Arrow - only pipegon
new
name
IF :N < 1 [CNGON20 : RP STOP] PU FD : RP + : RR PD LT : CUM
- : RP/ : RR ARROW: RR* 1. 5 (* * * )
< - - -
RT : CUM
- : RP/ : RR PU BK : RP + : RR LT : THETA A . PIPEGON : RP : RR : THETA ( : CUM+ : THETA) END
( : N- l )
line
removed
< - - -
new name
49
Chapter2 Now this is a portrait of A . PIPEGON
60
30
2
0
180 .
Instead of drawing an arrow on the roller, let 's draw a stripe along a diameter . We can use CNGONto draw a two- sided polygon with radius equal to the roller . We take out the ARROWprocedure and insert CNGON . Here it is: TO
;
S . PIPEGON
- .s..triped
-
RP
-
RR
IF
:N
<
PO
- FD
-
RP
- LT
-
COM * : RP / : RR
(* * * ) CNGON
2
1
- [ CNGON
- +
-
RR
PO
BK
- LT
-
THETA
-
RP
S . PIPEGON
- 20
-
RP
-
N
< - - -
new
name
STOP ]
- <- - <- - -
-
COM * : RP / : RR
- 50
-
COM
- PD
-
RR
RT
- END
-
THETA
pipegon
ARROW 2 - sided
removed CNGON
installed
- here
-
RR
-
RP
-
RR
-
THETA
( : COM + : THETA
)
( : N- l )
<- - -
new
name
Visual Modeling And here is a portrait of s . PIPEGON
60
30
2
0
180 .
- Now, imagine an invisible arrow glued to the front of the roller . At the tip,
- there is a flashing light . Here is the new part to fit into our P IPEGON machine :
- TO FLASH : L
- ; Flashes a light
- at distance
- L from the starting ; and returns the turtle to where it started . PU FD : L PD REPEAT 6 [ FD 2 BK 2 RT 60 ] PU BK : L PD END
point,
To install FLASH into PIPEGON, we could fix a value for : L, perhaps based on the value for : RR. Or we could extend PIPEGONby adding another argument . Call
the
extension
TO
L . PIPEGON
- .
-
RP
-
RR
-
L
-
THETA
[ CNGON
- 20
-
RP
STOP
IF
:N
<
PU
- FD
-
RP
- LT
-
CUM * : RP / : RR
FLASH
1
L . PIPEGON
- : RR
-
L
-
CUM
< - - -
- RT
-
CUM * : RP / : RR
PU
BK
- LT
-
THETA
-
RP
L . PIPEGON
<- - -
FLASH installed CNGONremoved
arg
- .
-
RR
-
RP
-
RR : L : THETA ( : CUM+ : THETA) < - - -
END
new name and
PD < - - -
( * * * )
:N
]
( :N- l ) new
name and arg
51
Chapter 2 Here is the flash portrait
~ * .
.
~
"'
.
~
~ ~
- ..
~
J "' "
.,. -
~ * ....
"' ~
40 2 0 180
- 40 2 0 180
.
*' * *
" ~ "
.
~
-
~ ..
30 30
.. *
- .
L .PIPEGON 60 L .PIPEGON 60
of :
os
.,.
..
~
.
*'
. .
.
.
~
~
..
""
1
,:
' "
..
..
.
~ ~
~
:'
t
' "
..* * ~
.
. ~
.. ~
..
. ,.
" ' ~* ~" tt ~ * ~
o ' \ W*
*" ~ ' "
" ..
. *~ r .. ""
""
.. .
tt
~ ~
"
.
~
.. *
,," .
~
"
What happens if we make the radius of the roller negative ? Right . The roller is inside the pipe . Some examples are shown on the next page. Cosure
Have you noticed that even the most complex designs we have done so far are drawn quite quickly ? Each is complete by the time the roller has made a single 360-degree trip around the pipe . If the roller makes a second trip around the pipe, the design repeats exactly. We can describe this kind of design as one that has " closed upon itself " or, more briefly, that has " closed" after one trip . Not all designs produced by our PIPEGON machine will close after only one trip ; some will take several trips to close, and others will require a great number of trips . Experiments will show that altering the sizes of the roller and pipe leads to different closure patterns . What determines the number of trips before closure occurs? Can you calculate the trips until closure if you know the sizes of the roller and pipe ? Could you "find " a design that never closed?
52
..
Visual Modeling A portfolio of roller -inside -pipe portraits
53
Chapter 2 On the next page is a PIPEGON design that closes only after a number of trips around the pipe . The individual
images show the design at various trip
stages around the pipe . Can you guess the pipe and roller sizes I used?
Words elicit images
Words that are visually descriptive, like closure, should call up a variety of images in your mind . This elicitation of mind -images can be enormously useful in visual modeling . In each of the following exercises, I will stress the importance of words . We must talk a lot in conjunction with sketching a lot . Take a few minutes here to think visually about the word closure. Say " closure " : what images does it bring to mind ? Tell the turtle to "hurry up and bring a design to a close." Jot down, or sketch, the image ideas elicited in your own mind by the chanting of the word . Put it all in your notebook. Suppose you needed to find a synonym for closure. What would you suggest? Any suggestion must be descriptive of all the image work we have completed . By the way, you probably won 't find closure in a standard dictionary . Why is this? Imaginary machines
At the start of this chapter
I mentioned
that sometimes
we would
model
machines from the real world - pipes and rollers are very real world - and other times we would model
model machines that aren 't so real . Perhaps we can make one
do both real and imaginary
things . For example, can we make our
P IPEGON machine draw some fantastic designs ? (By the way, look at that word imaginary . Why does it have image in it ? Can you imagine why ?) Let 's imagine
a striped
generate a composite
picture
roller inside a pipe . The procedure
PIPEGON will
of this roller as it travels around
the inside of a
pipe . So far, this is just like introduce
54
the fantasy
the situations
viewed
feature . Make the radius
above . But now, let 's
of the roller
larger than the
Visual Modeling A slowly closing pipegon
55
Chapter2 radius of the pipe in which it " rolls ." Is this possible? Can it be done? I asked PIP E GON to do it, and the results are shown on the next page. What is happening ? Are these pictures of real or imaginary machines? How can you work out your answer? Can you sketch it ?
Recapitula lion
Let's summarize what has happened in the last few pages. We have built a Logo model that can produce a large variety of images, some of them very surprising . But more important, we have seen how the act of modeling can facilitate the visual exploration of some of the characteristics of a real-world machine . Once we began to tinker with our model, we wanted to tinker further . Some of our designs posed difficult questions whose answers were not at all obvious . Closure was such a question . We needed to do more tinkering and more experimenting to come to grips with what was going on. Could we have predicted the directions this tinkering and experimentation would take before we started? I don 't think so. Once we begin to model parts of our world, the act of modeling takes on a life of its own . I think we have touched what Levi -Strauss said happens when one plays with miniatures . Model play " gratifies the intelligence and gives rise to a sense of pleasure which can already be called aesthetic." I hope you would also describe visual modeling as fun .
Why pipes and rollers ?
I started
with
this particular
have used any number direction . I will
machine
of alternative
illustrations
, but
in it . I could
this was my own
show you, in the chapters to come, dozens of other examples
that illustrate
the ways in which
look at the
differently
56
because I was interested
world
.
visual modeling
encourages
the modeler
to
Visual Modeling
Imaginary
PIPEGONs?
:11,/Ill
I
S
//
/ I]
57
G It noAUI Ana Aill asalSaSt lO al lO l a ' PIlOM pJJ )! a~.loa~ Jo ' I.lOM alII :S1S !JS! SAIla 'CaldoaJ ){ooq S!l{1 01 aA!1EUla1It ?lit ?a1~ !lM 01 noA ?M! 1ua I !~1JaJJa {~!M Ua~ S!SUOJ '1Ut a~ElnJ lEu ~~n lO passaldxa AnEqlaA '~no pa ~JE AI~!J!
all S
'
saWOJ awEJ o~ W!EIJ S,
~lnJ 02 aw ~aI '~uawnJop
UE . Jo ){lOM al{~ noA o~ 2U!JnpOl ~ IEuoslad AlaA E S! ){ooq s!l {~ ~El{~ pa ~~!WpE 2U
~Eal2 SEll Ol{M ~s!20IOl {JAsd UEJ!lawy
)! U! UlOq 'Ana)! a2loa ~ '2u !PI!nq Iapow ~noqE 2u ! ){U!l {~ UMO AW paJua
A20IOl {JAsd PUE ' A20IO !JOS ' SJ!SAlld ' SJ!~Ewal {~Ew U! paU !El ~ SEM 5' 0
a){EW o~ Sa!l ~ uoslad l {JEa ~El{~ Ma !A S!l { wall
~JEJ UI 's~s!~ua !Js Aq pasn asol {~ o~ lEI !W!S alE ~El{~ sanb ! ul{Ja~ 2u !sn PIlOM
s~s!~ua !Js SE aldoad lIE paMa !A
UOpast?q alt ?SaS !JlaXa al{1 JOIIV .pU!ill U! ~U!MOIIoJ ast?~ald l {J!la.{1 {M daa){ s~aldwa lO 1ng sula ~~Ed ~ualEdsuEl ~ l {2nollI ~ PIloM s!l { ~E S){OOIUEW"
{1 Jo ~U!laplO al{1 'laAaMoH .s1uapmSAill Jo s1Sala1u ! al{1alput s1Sala1u ! PIlOM {~ l?{J!l {M JO! liMO sa!~!IEol al{~ laAO ~!J o~ s~dwa ~~E ual {~ PUE Sa
!JlaXa Aill paJt?Id AllnJalt ?J aAt?l{ I .Alt?l1!qlt ? IOU S! al{~ ){ooq S!l{1 U!l {Jns SaS !JlaXa sula ~~Ed ~nOl{~!M ~aA 'po02 iClaA SAEMIE ~ou S! ~!J alI .1 'pasod
? U! sla1dt?l{J asal{1 paJnpOl1u! put ? palaplo aAt?l{ I ){EW put? sla1dEtp o~ alqEun J!J!Jads S! UEW U!l{1 ~El{~!M ~ !aua20wol { pa ~E!~UalaJJ!pUn .UE l {Jns aq o~ SlE
.n1.JnJ .Is V S! ){ooq al{1 Jo aN!1qns al{1 1El{1 IIt?Ja~ .UO!l{st?J paln1Jnl1S f..1aA ,'nE ~E 2u !l {~ ou UEl{~ InJdlal { alOW S! ~!J load E uaAH '~! JO asua
01 1f.JvoJ .ddv az!s lOJ uo ZU1JJS iCl~ aldoad ~El{~ sula ~~Ed al{~ o~ SlJn.llSUOJ aWEU al{~ saA!2 Ana)!
, ?ns!A 01 l{Jt?olddt ? dUO ' AlaS!Jald AlaA ' nOA MOl{S 01 uO!1ua1u
- S~ JnlS!~SUOJ asall! ].AW ' S]3POUlsula ~~Ed asal{~ paIIEJ aAEl{ naM SE ~snf PlnoJ
SnO!Aqo os aq II!M s!l[1 Jo ssaulnJasn al{11t?l{1 adol{ I .SJ'UEW !l[dt?lsalqEua ~ put?2u!Iapoill {~ PUE ~EllM alE Aall ]. 'PIlOM all ~ 2u !nl ~suOJ Jo SAEM alE,,- sIa
pa ~ElnwloJ AI~!J!Idxa ' lO !AEl{aq JO aSlnOJ E ~lEllJ o~ ' OO~ SIEW!UE l .saldillt ?xa liMO lnOA l{~noll {1 'l{Jt?olddt ?liMO lnOA PU!J 01 pa~t?lnOJUa aq II!M
' asuas lall AI SESUE ' 89 J8ldE4~
Visual Modeling
other courses of behavior or inconsistent with them, intellectually reasoned or vegetatively sensed." Each person's scientist aspect encourages him to " improve his constructs by increasing his repertory, by altering them to provide
better fits, and by
subsuming them with subordinate constructs or systems." For Kelly, human behavior is the application of scientific method in making sense of a particular environment . Rather than merely responding to surroundings, people use an experimental approach to test and extend their system of personal constructs . Each person 's goal, in Kelly 's view, is to build
explanatory
models that
effectively explain and predict personal environments . Kelly suggested shortcuts for improving construct systems. Kelly 's shortcut was to encourage individuals to make their own constructs verbally explicit . His most famous method for eliciting and verbalizing personal constructs is known as the repertory grid technique . Using slightly different words, Kelly 's techniques encouraged individuals
to build verbal models of their own constructs . Once
built, these verbal models could be analyzed in much the same way as we have analyzed our pipe -and-roller model . Tinkering with constructs would occur naturally, and this would encourage further tinkering . And as a result of this play, construct models might become more general and more powerful . Kelly worked with verbal rather than visual models, but many of his ideas can be extended to the latter . My interest, as was Kelly 's, is to suggest how to describe our inner models . While Kelly was interested in the verbal description of models, I am interested in more graphical descriptions . My goal is to encourage you to look at your own visual baggage. Obviously, I need words, too, to help in my form of elicitation . Sometimes, you may think that I rely on words too much . Too much chat, you might say. . . If you are intrigued by this very brief account of George Kelly 's work, find his book A Theory of Personality: the psychology of personal constructs (W . W . Norton, New York, 1963). All the Kelly quotes were taken from it .
59
Chapter2 Exercises
Exercise 2.1 Can you come up with some rules about P IPEGON closure ? Specifically, can you characterize
a final
pipegon
image in terms of the dimensions
of its parts ?
Experiment
a bit . Try to make some generalizations . Do the generalizations
up after more experimenting ? Whether you feel successful in this activity find the following (Cambridge
or not,
book in your local library : E. H . Lockwood, A Book of Curves
University
Press, Cambridge, 1963).
This book may help you think image ideas to think math . Look
hold
about closure . It may also suggest other
about visually . Don 't worry
too much about the book 's
at the diagrams, and read the chapter
chapters : cardioids, limac ;ons, astroids, right
names . Listen
to these
strophoids, tractrices, roulettes,
and glissettes . What images do these names dredge up ? Sketch them before you find the book .
Exercise 2.2 How do you feel about carnivals and amusement parks ? Do you enjoy their mechanical rides ? I 'm not talking about tame rides, like the merry -go- round or carousel, but wild rides that yank the rider through space. On the next page is a sketch of a machine that gave me a dose of healthy terror . Suppose that we are watching this machine from a safe distance. A brave friend is sitting inside it and pointing a very bright flashlight at us. What pattern will this light trace out as the machine grinds into life ? The pulls and pushes on the rider of this machine change suddenly and unexpectedly . Can you make a picture of this ? Can you describe visually why this kind of machine is so scary?
60
Visual Modeling
f "t..~ 5HUhf ' T
, . . . . . ~-
.
.
.
Exercise 2.;2 Design some imaginary carnival rides and give your machines imaginative names. Draw big sketchesof your ideas; draw them large enough so that others can "read" them. Describe the ride in words so that potential travelers will know what to expect, beforethey climb aboard. You had better show them some pictures of the trip as well. Why not use Logo to generatethesescenes ?
Exercise 2.4 Do you know the term "kinetic sculpture " ? If not, you can guess what they are, or rather what they do? Kinetic sculptures are mechanical or electronic sculpture machines that move, clank, or flash . Some even squirt water (for example, the wonderful kinetic fountain designed by Nikki de Saint-Phalle and Jean Tinguely opposite the Pompidou Center in Paris).
61
Chapter2 Carnival rides are a special class of kinetic sculptures . They may not seem suitable for art gallery installation, but I have seen films of amusement park rides included in exhibitions . The French sculptor Jean Tinguely does kinetic sculpture on a more modest scale. Below is a reproduction of his " Homage a Marcel Duchamp," done in 1960. It is human scale, about 5 feet high . Design and build a kinetic sculpture using Logo . You might start by trying to model the Tinguely machine. PIPEGONsare a kind of kinetic sculpture, too.
62
Chapter 3 Visual Discovery
"The
discoverer
seen
before
is
the
[ person
Norwood
Russell
Hansen
" In
order
to
think
productively
the
realm
of
physical
thought
in
represented Rudolf
] who
sees
in
familiar
objects
what
no
one
else
has
."
which
about
objects
the
or
properties
that
the
nature
of
abstract
of
the
of
a
theory
situation
fact
or
problem
, one
needs
to
be
a
explored
, whether
in
medium
of
can
be
." Arnheim
The style of discovery
This chapter continues the exploration of visual models and how they can stretch your mind -and-eye's vision into areas unfamiliar to you . The style of presenta tion remains the exercise form . Exercises will
encourage you to
experiment dynamically with the simplest of shapes. I hope to convince you, through illustrations, that playing experimentally
with familiar
and plain
objects can lead you into a space filled with objects that are not only unfamiliar but surprisingly different from what you expected.
Chapter 3
Problem -solving style
This book is structured
around
two kinds
exercises described in the text to illustrate
of exercises . First, there are many what I consider to be good problem -
solving style . You don 't have to do it my way, but I want you to see one person 's way . Second, the exercise section at the end of each chapter offers several open ended problems generally
that demand
are not illustrated
originality
and flamboyance
. These exercises
in the text ; I don 't want to influence your creativity
by showing you how anybody else did them . Let 's begin this chapter, therefore, by finishing
up some of the more specific
exercises at the end of Chapter 1. From now on, at least one assigned problem from
the previous
chapter
will
be discussed
in detail
at the start
As I have already mentioned, much of the learning
quired by watching copying
chapter
of each
of a craft is ac-
and copying someone who is used to doing it . Constructive
can lessen your programming
anxiety by providing
a firm support
for
personal exploration . (I' ve said that before, but it is worth repeating .)
Centered polygons with CNGON
Let's begin with a final look at Exercise1.1. This problem askedyou to refashion NGON . The new procedure, CNGON , should draw an n-sided polygon around a central point. CNGON , named for enteredNGONs , will take two arguments: first, the radius of the circle circumscribedon the polygon, and second, the number of polygonal edges. Here is the completed version with plenty of comment lines, eachintroduced by a semicolon: TO CNGON:N :RAD PU FD : RAD ; Move out to the circumference of circumscribed circle . RT 180 - (90* ( : N- 2) / :N) PD ; Turn right to face along one of the edges of the polygon . NGON:N (2* : RAD* SIN 180/ : N) ; Draw an NGONwith edge expressed in terms of the radius . 64
Visual Discovery
State transparency
What on earth does that mean? Notice an interesting feature of CNGON. After CNGONhas drawn a figure, the turtle is returned to its starting place. CNGONputs the turtle back to where it found it (in terms of its screen location and its heading ). We can also refer to the turtle 's position and heading as its state. Because CNGONleaves the turtle in the same state in which it found it, CNGONis said to be state transparent . NGON, by the way, is also state transparent . We will find this notion useful later in this chapter, so remember the technical term . It 's a nice visual description, as well . The distance traveled so far
Recall, now, how you began your review of Logo mechanics. First, you drew boxes of fixed size. You then extended the idea of '~ ox" to include polygon shapes of any number of sides and designed a procedure, NGON , to draw them. CNGONuses the ideas of NGONbut extends them . Our next step is to extend CNGONto make it more general. Let's think about generalizing CNGONto solve two of the exercises at the end of Chapter 1. Exercise 1.3 asked you to add the notion of spin to CNGON , and Exercise 1.4 asked you to fill up CNGONwith other CNGONs. Let 's start with the latter as it is a bit simpler and has one less argument .
65
Chapter3 Generalizing CNGONto draw concentric polygons
The diagrams accompanying the exercise suggested one way of filling
up
polygons : draw many increasingly smaller polygons, one inside another, until you have filled up the polygon with color or with texture .
Theideain sketches :
Co ~ ~ Dij OF A C- L
C-e.,..)~ ~ Q\ JAQ ..GS
- c. o~ M 0...J CE.oJ
- " TCC2
- .
- II~ At -L- T (1.t p. ..JG
- LE. ~
Theideain words: Draw several polygons around a central point using CNGON. Allow
each
succeeding polygon to be a different size. If the radius of each succeeding polygon "shrinks " by 1 unit, the shape outlined by the largest polygon will gradually fill up with color . In summary, the new procedure will draw concentric polygons . The size of the first polygon will be set by one argument ; the amount of size change of succeeding polygons will be determined by another argument ; the number of sides to the polygons and the number of concentric figures will be determined by two additional arguments . Let's call this new procedure CONGON for concentric polygons . What will the first line of CONGONlook like with all the needed arguments nicely arranged?
66
Visual Discovery
The idea asa Lo~o procedure: TO CONGON:N : RAD : SLICE : TIMES ; CONGON stands for ~ centric NGONs . ; : N is the number of sides . ; : RAD is the radius of the first figure . ; : SLICE is the change in radius of succeeding NGONs . ; : TIMES is the number of polygons to draw . Once design ideas are written down in sketchesand words, with all the argumentsdefinedand named, writing the Logo procedurebecomesvery easy. CONGON needsa structure to executeCNGON as many times as is specifiedby the argument : TIME S. We can use recursion for this, similar to its use in SPINGONin the last chapter. TO CONGON:N : RAD : SLICE : TIMES ; Concentric polygon exercise . IF : TIMES < 1 [ STOP]
CNGON : N : RAD CONGON: N ( : RAD- : SLICE ) : SLICE ( : TIMES- l ) END Experimenting with CONGON
First, fill up a square of radius equal to 80 totally with color . Second, fill up a square of radius equal to 80 with 20 concentric squares. Make each succeeding square 4 units smaller than the previously drawn one. Third, fill a square frame of radius equal to 80 and width equal to 20 with black . If you have a color Logo, you can set the pen to the color you wish . I am sticking with black and white . Here
are the three
commands
; the results
are shown
on the next
page :
CONGON4 80 1 80 CONGON4 80 4 20 CONGON4 80 1 20
67
Chapter 3 TO
SPIN
.
;
Concentric
;
Note
IF
;
SPIN
:
new
:
N
:
RAD
:
polygon
< :
N
:
and
1
[
SLICE
:
exercise
name
TIMES
CNGON
RT
CONGON
new
STOP
TIMES
:
ANGLE
.
argument
:
ANGLE
.
]
- RAD
-
ANGLE
Single
new
.
CONGON
command
:
N
.
(
:
RAD
:
SLICE
- )
-
SLICE ( : TIMES- l ) :ANGLE
END
Is this procedure state transparent ? Well, no . The turtle always returns to the center of the figure, and that was where it started from, but there is no guarantee that the turtle will end facing in its original direction . The turtle turns a total amount, to the right, from its starting heading of : TIMES * : ANGLE degrees. To make this procedure state transparent, we need to turn the turtle back to the left by this amount after all the polygons have been drawn . Can we insert such a command in SPIN . CONGON above? The problem is that the : TIMES argument is decreased by 1 each time recursion is used in the procedure 's last line . This is the stopping mechanism . When SPIN . CONGONis finished, the value of : TIMES is zero. We could embed SPIN . CONGONin another new procedure, which we call SPIN . Why is SPIN
able to use the original
value of : TIMES
SP IN . CONGON isn 't? Note : there are other ways of handling
when
this state
transparency problem . This is my way ; I like it because it can be understood easily. It 's also very tidy because it doesn't demand any more arguments or the introduction of local variables- which we haven't discussed yet .
TO SPIN :N : RAD : SLICE : TIMES :ANGLE ; State - transparent SPIN. CONGON runner . SPIN. CONGON:N : RAD : SLICE : TIMES :ANGLE LT :TIMES* :ANGLE END
SP IN does only two things . It runs SPIN . CONGONand then returns the turtle 's heading to its original state.
70
Visual Discovery SPIN productions
The first figure was run with SPIN 6 100 4 25 5 and the second with only the sign of the last argument value made negative . This changes the spin orienta tion .
Squarish SPIN images
The left figure was produced with SPIN 4 100 4 25 5; how can we make it more complex ? The right figure suggests a new kind of complexity that we haven't yet seen. It is a composite image that includes the left figure with its mirror image placed on top of it .
71
Chapter 3
More squares
SPIN 4 120 2 60 5
A winter
holiday
SPIN 4 120 1 120 5
wreath
Visual experiments
It might be interesting to set up a more controlled experiment with SPIN . For example, let 's build a structure to see how SPIN -produced designs vary as we alter the arguments . We can simplify
72
the experiment by changing only one
Visual Discovery variable
I have decided to look first at the effect of an altered
- at a time
-
ANGLE argument .
I thought it would be nice to seea number of SPIN . CONGONS on the screen at the same time, so that I can compare the effect of the single changed argument . By looking at the size of my screen, and deciding that my individual
figures
would be about 50, I decided where (the cartesian x-y addresses) on the screen I would put them. Here is my visual simulation machine. TO
- EXPLORE
-
N
-
SLICE
-
TIMES
-
Al
-
A2
-
A3
-
A4
:A5
the
screen
.
To
,
explore
five
different
figures
on
at
once .
.
,
Only
the
angle
variable
PO
SETXY
( 0
PO
SETXY
( 70
PO
SETXY
( 70
PO
SETXY
( - 70
PO
SETXY
( - 70
60
will
be
changed
.
0 )
PD
- SPIN
-
N
- 50
-
SLICE
60
)
PD
- SPIN
-
N
- 50
-
SLICE
60
)
PD
- SPIN
-
N
- 50
-
SLICE
- 60
)
PD
- SPIN
-
N
- 50
-
SLICE
)
PD
- SPIN
-
N
- 50
-
SLICE
-
TIMES :Al
- TIMES :A2
- TIMES :A3
- "rIMES :A4
- TIMES :A5
END
I don 't much like using the cartesian system to move the turtle around the screen, but this seemed an easy and quick way to start experimenting turtle -reference moving
Four experiments
. I 'll do
la ter .
with EXPLORE
73
U)
Chapter
...... ~
Visual Discovery Some surprising images with EXPLORE
The figures on the last two pages looked isolated to me, so I decided to make them overlap by increasing the values used for the : TIMES argument . Having increased this value, I went back to my initial rule : keep all the arguments constant but one, the : ANGLE argument . Suddenly I had designs that were surprisingly
intriguing . I think one reason for this surprise is that we can no
longer predict the results of our experiment before we carry it out . And in addition, it is not at all obvious why the experiment proceeds the way it does. For example, note the strange central figure in the following group . Note, too, how it grows larger from the first to the third figure . The shape of that beast is very responsive to small changes in : ANGLEvalues. And the beast exists only within a narrow range of values. Our experimental machine has shown us something visually odd growing inside these designs. It has also indicated that this form of oddness is extremely sensitive to small changes in our experimental parameter . This is a sort of visual sensitivity analysis. The argument values used are placed above each experimental result . EXPLORE 4 4 40 4 4 444
75
Chapter3 EXPLORE4 4 40 4 . 5 4 . 5 4 . 5 4. 5 4 . 5
EXPLORE4 4 40 5 5 555
76
Visual Discovery EXPLORE44
EXPLORE
4066666
4
4
40
10
10
10
10
10
77
Chapter3 EXPLORE 4 4 35 15
15
15 15 15
Tiling spinning shapes
The overlapping
of the previous
images suggested another kind of experiment :
could the spinning shapes be placed on the screen so that they would not overlap too much but would still touch and influence each other ? A student of mine considered
this as a problem
in tiling . Here 's what she
decided to do :
- First, she used SPIN to produce many large single designs .
- She printed
these out on her printer .
- She made dozens of photocopies .
- She cut out the designs and placed them on a large piece of stiff paper .
She could then move the design cutouts around the paper, rotating and fitting them together to form larger, composite designs. This is similar to fitting decorated tiles together in various ways to create different patterns . Here is the surprising
result of one such cutout exploration . Four
SPIN . CONGONS have been fitted together, like tiles, to form a larger design.
78
Visual Discovery
Logo -laid tiles
You probably detected that the above composite design could be done with a Logo procedure far more easily than with scissors and glue . I designed the following procedure to tile four square designs together . Any idea what that argument called : ALT is for ? : ALT is short for alternating . If it is set to 1, all four of the tiles will spin to the right ; that is, there will be no alternation of spin direction . However, if : ALT is set to -1, the odd tiles will spin to the left while the even tiles will spin to the right . Notice the use here of the MAKE command to alternate the sign of the turning angle. If you have forgotten the MAKEcommand, review it now in your Logo manual . TO LAY . SQ. TILES : RAD : SLICE : TIMES : ANGLE : ALT REPEAT 4 [ PU FD : RAD PD SPIN 4 : RAD : SLICE : TIMES : ANGLE PU BK : RAD RT 90 MAKE "ANGLE : ANGLE * :ALT] END
79
Chapter3 The next illustration alternation
shows two square tile designs with
different
spin
schemes . The first is always to the right, the second alternates .
--~ ..
~
k'
~ff
Here are two partially
overlapping
square tile designs . Note the
appearance of more serpents.
Laying other tile shapes
Why not tile triangular shapes? The only quirk here is the necessity to turn the turtle 180 degrees to face the center of the composite design before drawing a SPIN . CONGON . Why is this turn necessary?
80
Visual Discovery
TO
LAY
REPEAT
. TR
- . TILES
- 6
-
RAD
[ PO
- FD
-
RAD
-
SLICE PD
-
TIMES
-
ANGLE
turtle
- to
-
ALT
LT 180 ;
Orientation
SPIN RT
of
- 3
- 180
-
RAD
-
SLICE
-
TIMES
face
center
- .
-
ANGLE
; Reorientation of turtle . PU BK : RAD RT 60 MAKE " ANGLE : ANGLE * : ALT ]
END
Hexagonal tiling patterns
Why not? The procedure is straightforward . Note that the angle turned between tiles is now 120 degrees.
81
Chapter3 TO
LAY . HEX . TILES
REPEAT
3
PU
BK
RT
120
MAKE
- END
-
RAD
-
SLICE
- [ PU FD
- RAD PD SPIN 6 : RAD
- SLICE
- RAD
-
TIMES : ANGLE : ALT
-
TIMES :ANGLE
- " ANGLE
-
ANGLE
: ALT ]
Something curious occurs now . Note that three of the four designs below look as if they are interlaced . Are they? What is happening ?
~ ~ (j~. ", .~ .~ .. u#f~ .... "
",~
"" ~~ ~, ,,,-,, ' " ..
, I : I'
' \ ,' .,"
",i;5j1 ;I .
"S ~ -"lilii;'~'"
: ' I I ,, . :
~, lil . 1 .,"! I1
,
I.,
.. t
J" t
~ !I, x,"'-\ '
I'(II ;! .!
,~~~~~
' . .~ ' " . .,'
.
Iff! I
~~ "~~ ~~ ~ ~':-..,
~::
':' ',,"
", "/ "
"
'/
.
.~
~ ~.,"'-;~~ ~ \i /.;I/1 .;
"~~ \ ' .Ii'(ilii '~~~ ' ' .J
!';t.t If
!'ttilij bi,,"I
- "
- 07
',:" ~, "'::: ~ ~:l'
I .,,:,ltl
'1 .1";1
' "
- ~
- "i.
- ;;111
- :~!
- I.Ii'
- "
- . tt, " ""
- :1
..'11
VfIll
"!
~"'~,~
11
',,",
",-,,
'[""""l
''
.."
...,....." ~
~
~ ~\~~ -~ff ~
"~\~:,,,"~ .f!J
" . . ., N, .
~.~'
" ' "
.
~;~ p -
82
IJ!I'1~,
, . " "
." '
II .'
Il}t
, \
I '
...,::,~~ ~./
.
Visual Discovery
Still only polygons
We have come a long way from the original BOX procedure of Chapter 1 to the
surprising designs shown above. But do not forget that all the images we have
created so far are still only polygons . Polygons, yes; but we have gone out of our
way to play and experiment with these simple shapes, not just to complicate
them but in the hope that we might see something new through them . Have you
found the images of this chapter sufficiently strange to justify that hope?
Extending the range of exploratory models
Before going on, I would like to describe another exploratory model . In the
following case, a model is used to investigate some of the visual characteristics
of a painting . So far, we have only looked at our own work . The results of the
next exploration show that models can be effective visual thinking tools for
analyzing somebody else's images . Specifically, this model will be inves tigating the qualities of balance in a design composition .
A Delaunay machine
Here is a reproduction of a 1938 painting, entitled " Disque," by the French artist
Robert Delaunay . I recently discovered this work in a Paris museum . Although
the thing is enormous, about 5 by 6 meters, I had never seen it before. Why, I
wondered, did I like it so much?
I decided to think about this by building a model to " simulate " the picture .
Obviously, I did not hope - or want - to reproduce the painting . I can always go
and see the real painting whenever I want . Perhaps, I thought, I could fashion a
model to explore some of the characteristics of a painting that I especially
liked . And that might help me to see better what attracted my eye in the first
place .
83
Chapter3
I would be exploring two things with my model : the world I was looking at
in the Delaunay painting and the world of how I felt about it . I was sure that
the latter would predominate . Why ? Because I am convinced that models tell
more about their builders than about what is being modeled .
Painting elements
I decided against using too many design elements. The ones I selected were a bit
arbitrary, but they were based on my impressions of the design elements used by
Delaunay . Notice that none of my elements is an exact replica of anything in the
painting . I built a different Logo procedure to draw each of these elements and to
place them onto an imaginary canvas grid . Each element and its procedure is
shown below .
84
Visual Discovery
These procedures are simple and easy to read, but I want to add a few
comments. I decided not to vary every possible dimension in my experiments. The
double rings, for example, have a fixed size. However, while the form and size
of the other design components are also fixed, each can be placed at different
locations of the canvas. These design element locations are defined by two
arguments : first, an : ANGLE argument sets the element 's angular position,
measured clockwise from the straight -up position ; and second, a : DIST argument
defines the elements distance from the center.
Each procedure is state transparent . Why might this be useful when we
begin to use these procedures to paint canvases?
TO DOUBLE
. RINGS
CONGON
40 120 5 5
CONGON
40 80 2 5
END
85
Chapter3
TO WIDE. SPLINES :DIST :ANGLE
RT :ANGLE
REPEAT15 [FD : DIST BK :DIST RT 3]
LT :ANGLE+ 45
END
TO NARROW . SPLINES
RT : ANGLE
REPEAT 7 [ FD : DIST
LT : ANGLE + 21
END
I
86
: DIST
BK
: ANGLE
: DIST
RT
3]
o
tIj
~
Z
G)
to!
. .
-.J
0
I -'
H
..
-3
G)
tUG )
0
to!
tIj
Z
1-3 ~
. . C/ )
01 -3
H
C/ ) . .
C/ )
I -3I -' WtUtIj
0001
to!
1-3 I -' I -' hj
00
to! ~
~
.
1-3
O ~ ~
HOOtIj
~
G)
zzz
oo
1-3
~
O
-3
1-3
.. ~
..
~
ZZ
t:i:' G) G)
tIj
ZtUOO
00001
zz
O
tIj
~
Z
G)
to!
. .
I-'
0
tIj
.
1-3
H
..
C/ )
-3
Z
tUG )
0
to!
tIj
1-3 ~
..
01
H
C/ )
..
-3
G)
to! ~
~
G)
~
1-3
~
O
-3
0
.. Z
C/ )
I -3NtUtIj
001
to!
1-3 I - ' hj
00
O ~
HOtIj
..
~
Z
t:i:' G)
tIj
ZtUO
0001
Visual Discovery
87
Chapter3
TO FOUR. TARGET : DIST : ANGLE
RT :ANGLEPU FD : DIST PD
LOCAL " R MAKE" R 25
REPEAT4 [CONGON
40 : R
2 MAKE" R :R
PU BK : DIST LT :ANGLE
END
5]
1
~~r:;;:;~~
o ~.,~
/(,r '~, )
~
)
1
' ~~~~ ~~~~
i~~'
TO FIVE . TARGET : DIST :ANGLE
PO
RT
LOCAL
: ANGLE
PU
" R
REPEAT
PO BK
END
5
: DIST
88
FD
MAKE
: DIST
" R
5 0
[ CONGON
40
LT
: ANGLE
: R
1
5
MAKE
"
R
:
R
-
1
0
]
Visual Discovery
Delaunay experiments
Six illustrations
of Delaunay
experiments
follow
. Turn
at the
in different
orientations
. How
do you
designs
orientation
of the page effect a specific
more
pleasurable
opinion
? What
to look
makes
the book 'around
feel
design ? Do you find
about
and look
them ? Does
some of the designs
at than others ? Is there an outstanding
design, in your
it so ?
89
Chapter3
Balance
My feelings after this experiment ? Did I discover why I liked the painting so
much ? Yes. I was convinced (or rather, I convinced myself ) that the aspect of the
Delaunay painting that caught my attention was its balance. I watched myself
as I tried to place my design elements on the screen. I kept thinking to myself : try
to balance the composition . This was difficult because the weight of each of my
elements was hard to calculate until after I tried a new configuration .
I discovered, however, through experimentation, that the eye has its own
rules for judging the balance of designs. To evaluate balance, we seem to divide
pictures into two equal parts . This division is horizontal, not vertical ; a left and -right partitioning, not an up -and -down one. We look into each half,
visually add up the weight of the elements seen there, and compare these
weights with a similar calculation made within the second half . Usually, we
find a balanced scene to be more pleasant than an unbalanced one. In fact,
extreme visual imbalance can make me feel very uneasy.
Howdoes
theeyecalculate
theweight
ofadesign
element ? Here are some
rules . The relative
90
size of shapes is important
: bigger
forms may be judged
Visual Discovery
heavier than smaller ones. But relative color value is also important . For
example, white against black, because it attracts our attention, has more weight
than gray against black, which attracts less attention . Thus a small black object
might be heavier than a large gray one, if both were on a white background .
Variety of shape is also important in weight calculations . A more complex
shape, because it attracts the eye, may be judged heavier than a boring shape.
For example, a small asterisk may have more weight than a larger circle .
Relative position is important, too. For example, a small shape in an extreme
position can sometimes balance heavy shapes that are more centrally located.
When all the elements of a scene seem to radiate from a central point, a
kind of balance known as radial balance occurs.
Because the eye seems to be concerned with horizontal rather than vertical
balance, rotating a picture can destroy its balance. Why ? Or, on the other hand,
a rotation can fix an unbalanced picture .
Now go back and look at the Delaunay painting . I see a calming image
made from disparate elements, finely balanced into a single design. Turn it on its
side and what happens? Now go back and look at the Delaunay simulations . Do
they halance? How would you change each of them to make them more balanced? Try some balancing exercisesyourself with a design machine of your own
invention .
Polygons placed on the vertices of other polygons
There is one remaining exercise to discuss from Chapter 1. Exercise 1.5 asked you
to design a Logo procedure that will draw polygons centered on the vertices of
other polygons . You need to have a good feeling for what this problem is really
about before you rush off and try to solve it . As always, small drawings can help
by making problems easier to visualize and to manipulate .
Even the simple sketches below should make the problem clearer. You will
see the pattern required . Start by drawing one polygon . Now draw a series, or a
91
Chapter3
layer
, of
the
vertices
could
polygons
of
change
the
from
those
could
, from
Recursion
The
the
original
of
, from
one
of
drawn
. The
the
previous
layer
the
same
just
remain
polygons
though
vertices
polygons
as well
similar
the
the
polygons
polygons
triangles
in
anyone
layer
to
to
size
squares
design
the
next
polygon
sizes
. Now
of
the
draw
polygons
polygons
in
-
getting
larger
or
. We
could
change
the
. But
let ' s work
to
. We
pentagons
can
let
their
on
one
smaller
layer
- or
all
of
the
shape
relative
only
sizes
with
change
,
.
again
hint
given
CNGON
TO
on
, might
CNGON
PU
FD
RT
180
in
Exercise
be
helpful
: N
1 . 5 suggests
. Let ' s look
that
again
recursion
at
, placed
CNGON
inside
the
body
of
.
: RAD
: RAD
-
NGON
:N
( 90 * ( : N - 2 ) / : N )
( 2 * : RAD
* SIN
LT
180
-
PU
BK
: RAD
We
want
to
polygons
. Let
' s find
the
' s arrival
at
polygon
around
180
PD
.
/ :N )
( 90 * ( : N - 2 ) / : N )
PD
END
turtle
centered
draw
centered
the
the
vertex
arrival
place
: once
a vertex
take
CNGON
could
be
place
a vertex
The
asked
a vertex
, CNGON
current
position
, and
92
the
polygon
, so
inside
's current
reached
draw
could
can
another
the
asked
forth
. How
can
will
find
the
the
is
spot
where
polygon
vertex
to
find
the
arrival
it ; once
draw
other
draw
to
another
.
recursion
drawing
around
again
we
to
a vertex
of
corresponds
command
on
the
vertices
that
position
polygon
be
the
procedure
insert
CNGON
in
) around
CNGON
turtle
is
we
the
we
inside
so
( CNGONS
. Then
point
to
reaches
draws
polygons
should
procedure
CNGON
this
polygon
a polygon
new
around
vertex
arrival
point
points
inside
NGON
the
? NGON
.
,
Visual Discovery
93
Chapter3
TO NGON:N : EDGE
REPEAT :N [ FD :EDGE (* * * ) RT 360/ :N ]
END
The ( * * * ) symbol indicates the place in the procedure NGON where the
turtle arrives at a polygonal vertex . How can we find this location inside CNGON
when it uses NGON? Look closely at the following . How does this version of
CNGONdiffer from what we have been using ? Not at all . NGONhas been opened
up so that we can see its parts. All of NGONis now placed inside of the body of
CNGON
; there are no longer two separate procedures . The vertex arrival point is
still marked with ( * * * ) .
TO CNGON:N :RAD
PU FD : RAD
RT 180 - (90* ( :N- 2) / :N) PD
REPEAT :N [ FD (2* : RAD* SIN 180/ :N)
RT 360/ :N ]
LT 180 - (90* ( :N- 2) / : N)
PU BK : RAD PD
END
Vertex arrival
(* * * )
point
Now try saying in words what you would like to insert at the ( * * * ) above and
what arguments the insertion requires . Here is an sample of such " wordy "
thinking : " OK, turtle : whenever you find yourself at the vertex arrival point
(the place between drawing an edge and turning in preparation for drawing the
next edge), draw another polygon . As you are drawing that next polygon, stop
after each edge and plan to do another polygon . But don 't do this forever . To stop
yourself, you will need a new argument ; call it : LEV, for recursion level .
"You also will need to know if each succeeding layer of polygons is to get
bigger or smaller in terms of of the preceding layer . So, define another argument ;
call it : FAC for growth factor . This will define for you whether to shrink or
enlarge polygons from one layer to the next.
"Give the new procedure a new name, RECGON
, for illursing
94
polygQnS.
Visual Discovery
" One last idea. Maybe you should think about rotating the polygons at a
vertex in relation to the previous polygon . Call this argument : ROT. Look at my
sketches below ."
/'
<::) v(:~~,.. Ae.e' vAl. PO
"' T .
/
1" 'T'
~L j),E
o~
T"
aT'-E
AT c....,o.J
V€Q.TE"
AI2~I~ L f'o..JT .
~ Ro-rAT.O.J " oJ6l.~ .
"\
~
/
DI2ECTlo
..I OF-n. a.TL~
,' " Pfl-E1'AC1
.ATlo..I FolZ
.
D~" wlo.lr,. ~ t ",G
-o..>
Aeo.J..J[) T"IE: VE
: ~T~"
p",. . rr .
. . . =,
iy
~
.......)
~.f...
~
-..,:
,;,
Two
' . . " " ."
.'
.'
..,.,.." .
.
.
.
PO~o;.' e.,- e
eOTAT
.',
~
'..""" .
"
~
.
'
.
00 :
' - v60
' ) s .
"...">
.:.."'.0
.,..,
G
2oT" = 4S.
,
" .
.
~
)
.
.
,~ " $
a. " 1" E "
"
.
.
"
. .
.
,
~oT = 00
95
Chapter3
The assembled RECGON
Now we need to convert CNGONinto RECGONbased on these words and sketches.
Here
it
is
TO
RECGON
;
Recursing
IF
: LEV
;
,
with
plenty
: N
of
comments
: RAD
: FAC
: ROT
polygons
<
Stops
1
FD
: RAD
RT
180
-
REPEAT
: N
on
[ STOP
the
PU
recursion
(
at
( 90
*
: N -
2
)
[
FD
( 2
*
: RAD
LT
: ROT
-
;
/
-
PU
BK
: RAD
Note
that
,
values
( 90
polygons
)
*
.
180
inserted
: ROT
;
Reorients
;
Is
/
the
-
drawing
: RAD
: FAC
next
: ROT
: LEV
recursion
: RAD
turtle
2
)
figure
-
1
.
-
apparatus
argument
is
.
scaled
by
: FAC
.
-
state
360
: N
before
the
is
how
.
PD
SIN
*
Here
: N -
level
: FAC
Note
(
proper
turtle
;
*
of
: N
;
RT
180
: N
Orients
RT
: LEV
vertices
]
RECGON
LT
.
by
removing
transparency
/
: N
)
/
rotation
an
issue
angle
here
.
?
]
: N
)
PD
END
used
of
the
five
figures
RECGON
has
must
drawn
be
. Only
five
arguments
supplied
: RAD
to
and
it
.
.
: LEV
These
change
Therefore
,
values
control
their
each
values
time
the
from
RECGON
is
characteristics
one
level
of
recursion to another. Can you see how these two arguments control the scaling of
the RECGONdesign as well as its complexity (that is, level of recursion ) ?
Recursion is a tricky business, but it is also very elegant. Many art students
have told me that they find recursion aesthetically pleasing ; they like its
"shape," somehow .
96
Visual Discovery
Understanding recursion experimentally
Recursion is the most elusive concept in this book . I believe it is also one of the
most powerful because it provides you with an entirely new metaphor for visual
thinking . Working and thinking about recursion will encourage you to look -think
at your world differently . In a strange way, recursive thinking gives you the
power to make the world look different .
You may not understand recursion at all in the beginning, until you have
experimented, over and over again, with recursive procedures written by others.
If you can understand one recursive procedure well, you are on your way to using
recursion on your own terms. Toward the goal of understanding a recursive
procedure, you must design your own experimental apparatus to test it out .
Let's playa bit with RECGON
. Watch how RECGONdirects the screen turtle
from one part of the design to another ; the turtle is walking through recursion
space. Try to get an intuitive feeling for how recursion " does it ." At the end of
this series of design experiments, we will talk more about the mechanical nature
of RECGONand introduce you to a kind of visual model of recursion . For the
moment, though, just play about with RECGON
.
For example, ask RECGONto place squares at the vertices of other squares
down to four levels of recursion . Four levels means that there will be squares on
squares on squares on squares. The value that we will type for the argument : LEV
will be 4. Now, what about scaling the design? If we make : FAC equal to .5, the
squares will get smaller as recursion progresses. Finally, what about the rotation
angle, : ROT? Let's try 45 degrees to start . To make this rotation idea less cryptic,
we will experiment with different values to see what happens . One last item :
set the beginning : RADto 50 units .
97
Chapter 3
Square RECGONs
RECGON4 50 . 5 45 4
RECGON4 50 . 5 0 4
Triangle RECGONs
RECGON3 50 . 5 30 4
RECGON3 50 . 5 0 4
Less obvious RECGONs
Before going on to experimenting
with funny values for arguments, to see what
RECGONdoes, let me pose a question . Can you calculate the number of figures that
RECGON must draw for any kind of polygon
98
and any level of recursion ? If you
Visual Discovery
could calculate the number of figures that must be drawn, you could guess how
long anyone design might take to draw . Let's try to attack this for a specific
case. Later, you can generalize the approach .
Think about square RECGONs
. A level 1 RECGON
would draw only one square,
but
a level
2 RECGON
would
draw
an additional
four
squares
on
the
vertices
of
the first : that makes five squares for level 2. Now, at level 3, we must put four
squares
on each
of the squares
drawn
at level
2 . That
means
another
4 times
4 . In
total, level 3 includes 16 + 4 + 1 = 21. Can you work out the general formula for
number of figures in terms of n, the kind of polygon, and L, the level of recursion?
Here are two more RECGONs. The second design was drawn using the
reversing pen color .
Can you verify that the second design was formed from 341 squares? (1 + 4 +
4 *4 + 4 *4 *4 + 4 *4 *4 *4 = 341 .)
RECGON4 50 (l / SQRT2) 0 4
RECGON
4
10
( SQRT
2)
0
5
<,,/
/ " /,,/
,,,/
/,,>
A
"
/
,, /
/ "
"
/
"
/
,, /
/ "
,, /
/ "
V
<,,/
/ ",,/
/,,/
/,,>
Recursion diagrams: visual models of recursion
We will be talking a lot more about recursion in the following chapters. But let
us end this exploratory work with RECGONby presenting a visual model of how
recursion
works
.
99
Chapter 3
Before
visual
you
read
rather
than
a
" happening
"
on
" happening
"
inside
recursion
than
students
are
technical
my
technical
It
a
little
itself
, so
let
's
that
Logo
makes
first
. This
copy
copy
asks
The
to
third
a
is
be
copy
If
third
more
copies
of
third
copy
where
it
written
Suppose
sheet
calls
below
it
recursion
the
100
a
copy
is
are
mixed
first
a
original
procedure
turtle
goes
in
search
of
the
recursion
". d
copy
does
not
turtle
is
reading
The
turtle
is
a
are
the
indicated
45
path
paper
and
liberal
if
arts
you
hanker
defined
to
be
run
again
, imagine
locates
this
copy
below
its
instructions
next
located
in
the
instructions
turtle
the
again
deeper
climbs
up
copy
, the
of
the
the
second
.
.
no
second
terms
. If
under
goes
. The
on
instructions
back
to
the
3 .
the
for
turtle
the
the
values
that
takes
5
arguments
the
whatever
and
no
from
the
looking
turtle
fof
climbs
the
top
place
up
to
top
sheet
. Suddenly
sheet
down
to
arguments
sketches
the
the
diagram
one
at
this
the
of
from
each
procedure
it
. If
on
identical
sheet
the
there
that
Notice
which
from
from
diagram
50
recursion
be
further
itself
from
the
, carries
recursion
of
drops
climbs
4
sheets
instructions
read
course
call
graphical
can
and
on
is
.
the
, of
of
made
continues
instructions
turtle
search
are
and
reads
turtle
,
copy
turtle
to
itself
procedure
copy
begins
and
created
call
in
as
.
asks
is
The
and
procedure
copy
as
.
dinner
a
what
intuitive
. But
is
describe
that
art
students
third
not
for
procedure
. When
found
true
to
I
with
an
science
a
What
encouraging
scientist
how
copies
itself
with
have
, a
original
secol
always
I
turtle
the
the
almost
follows
coincide
,
in
. What
.
necessarily
However
goes
license
recursion
the
does
the
visual
useful
computer
the
again
not
visualize
of
. If
indicate
values
This
following
second
RECGON
arrows
.
my
of
.
more
these
Here
type
far
the
, the
. The
often
copy
of
.
computer
where
the
Think
your
to
left
does
where
is
the
instructions
diagrams
to
run
you
description
, take
the
show
technical
difficult
try
to
results
truth
is
, I need
ones
, though
after
off
the
models
sense
on
procedure
top
where
along
with
of
level
two
another
.
on
the
the
sheet
.
top
just
without
it
had
left
after
we
it .
operation
shows
to
currently
ends
sheet
path
level
is
is
things
; and
. First
, second
,
,
Visual Discovery
Recursion diagram of RECGON 4 50 . 5 45 3
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: LEV (4 50 .5 45 4 )
TORECGON
:N :RAD
:FAC:ROT
IF :LEV< 1 [STOP
]
POFD:RAD
RT180- (90*(:N-2)/ :N) PD
LT:ROT
F~O~
REPEAT
:N [(RECGON
FD.(2*:RAD
180
/ :N
) - :ROT
~ ~S
AI
:N *SIN
:FAC
*:RAD
:FAC
:LEV
-1 - l mM
RT:ROT
RT360
/ :N ]
LT180- (90*(:N-2)/ :N)
POBK:RAD
PD
END
'itS
-------------------------------------------------------TORECGON
:N :RAD
:FAC:ROT
:LEV(4 25 .5 45 2)
IF :LEV< 1 [STOP
]
POFD:RAD
RT180- (90*(:N-2)/ :N) PD
LT:ROT
FaVf
'?
REPEAT
:N [( FD
(2*:RAD
180
/ :N
) - :ROT
~?tP
RECGON
:N *SIN
:FAC
*:RAD
:FAC
:LEV
-1 - l II(
'O
"\'ES
RT:ROT
RT360
/ :N ]
LT180- (90*(:N-2)/ :N)
POBK:RAD
PD
END
-------------------------------------------------------TORECGON
:N :RAD
:FAC:ROT
:LEV(4 12.5 .5 45 1)
IF :LEV< 1 [STOP
]
POFD:RAD
RT180- (90*(:N-2)/ :N) PD
LT:ROT
~v~
REPEAT
:N [CRECGON
FD(2*:RAD
180
/ :N
) - :ROT
lR~
:N *SIN
:FAC
*:RAD
:FAC
:LEV
-1 ~~ET
{
RT:ROT
RT360
/ :N
LT180- (90*(:N-2)/ :N)
POBK.:RAD
PD
END ------------------------------------------------ --0 RECGON
:N :RAD
:FAC:ROT
:LEV(4 6.25 .5 45 0)
IF :LEV< 1 [STOP
]
101
Chapter 3
Visual thinking
Do I need to summarize
what we have been doing ? I don 't think so. Theillus-
trations show it : a kind of visual thinking
about objects and shapes .
Exercises
Exercise
3.1
Look back over the composite designs that were made from the SPIN . CONGONS
in this chapter . Design a Logo procedure that will produce composite designs
from a number of different design elements.
The following
series of designs was done by a student . She labeled the
collection " Hurricanes ." They should give you some ideas. But don 't limit
yourself to figures based on the square.
102
Visual Discovery
103
Chapter3
104
Visual Discovery
105
Chapter 3
Here is another student "solution " to this exercise. He has constructed a map of
France with alternatively spinning hexagons.
106
Visual Discovery
Exercise
3.2
Design a procedure that combines the ideas of SPIN . CONGONs
with the ideas of
RECGONS
.
Exercise
3.3
Look back at the Delaunay machine . Invent a queasy machine that produces the
most unbalanced
designs imaginable . Try to characterize
in words what your
designs are doing and what you were doing .
Exercise
3.4
Build
an exploratory
a reproduction
to your
local
to carry
museum
artists . Don 't limit
work, even
Inspiration
doing
of a painting
of the painting
best . Go out
different
model
photographs
may
strike
any Logo until
lot of time looking
After
you
acteristics
you
from
have
finished
tried
this
of a painting
without
changed
your
?
you . Postcard
a collection
quite
of
are the
; include
by
realistic
work
as you
pictures
. Don 't start
up over your
desk . Spend a
different
is pinned
images
of reproductions
painters
a variety
sure you have
can .
.
to simulate
painting
two
collection
characteristics
toward
buy
as large
at those postcards
have
with
you . Make
to geometric
comparing
your painting
around
and
yourself
. Select
that interests
exercise
, describe
. Remember
copying
that
clearly
you
what
char -
can simulate
the image . Have
your
the
feelings
Exercise
3.5
Study the following several pages of figures . Bring out your visual thinking
gear; can you decompose these composites into their components?
107
Chapter3
Stone mason marks
,.
5.
b.
3.
108
Visual Discovery
More stone mason marks
/ --- --...
10
.
..._~J_=~/
13.
"--- ------"""
II.
109
Chapter3
These symbols, called stone mason marks, are copies of the marks builders
of Gothic cathedrals left as signatures on their work . The mark actually put on
the stone is that indicated by the dark lines . These lines are selected segments
from an underlying matrix of lighter lines . The design of an individual
stone
mason's mark was, therefore, a two -stage operation : first, design the underlying
line matrix ; and second, make an aesthetic selection of line segments from this
matrix to express an individual 's or guild 's signature . The exercise here is to create the line matrices similar to the examples drawn .
Select one of the examples that strikes your fancy . Look hard at it . Think in
terms of polygons and the placement of polygons . Make some free-hand sketches
in your notebook on how you would draw the matrix, component by component .
Next, try to design a Logo procedure that parallels your own drawing .
Take the very first design, for example. It is composed of a circle in which
are placed squares of different sizes and orientations . Finally, several straight
lines are drawn to connect the vertices of the squares to the center of the design.
You can do far more than just reproduce the designs offered here. Generalize
your MASON.MARKprocedures so that you can produce a suite of designs based on
the theme suggested by anyone example . Take the first design again, for an
example . Your procedure could have one argument for the overall size of the
figure, while another might define the kinds of polygons placed inside the
circle. The first design has squares inside the circle, while the second design has
triangles . Perhaps your generalized procedure could draw both designs.
Finally, you might want to design some kind of experimental apparatus
that will display several of your designs on the screen at the same time, each
with a slightly different degree of oddness.
If you find all of these designs too boring, design your own .
For a historical description of these symbols and a full geometric analysis
see Matila Ghyka 's The Geometryof Art and Life (Dover, New York, 1977).
110
Visual Discovery
Exercise
3.6
Design a personal mark in the manner of, but not limited to, the approach used
by the Gothic stone masons. This mark should be a visual model of several
aspects of your personality . This exercise will
require a combination
of
introspection and Logo designing . You may find that your Logo designs actually
help the looking within yourself .
Start this exercise by doodling in your notebook before you write any
procedures . Without thinking too much about what you are doing, write down a
list of your own personality quirks . Do this as fast as possible. Now go back over
your list and make small sketches of whatever images come into your mind . Try
to make a sketch for each word . But if one word doesn't cause an image to pop
into your mind quickly, leave it and go on to the next. Finally, combine some of
your best sketches into a single design theme and design a Logo procedure to
explore it . Don 't intellectualize what you are doing . Do everything as quickly as
possible. Think about what you have done only when you have generated some
personality images.
You may find that you will produce many personal marks that you aren't
happy with . That 's OK . Put them all in your notebook and write a short note on
what you were trying to accomplish with each. This is important : keep a trace
of what you are thinking and doing .
Finally, select one or two individual marks . These images are to be included
in your published biography . This is the only authorized biography of your life
and you may wish to write a few words of description . Don 't worry about being
too personal in your description : the book 's production run will be very, very
small . And since few people will read your comments, you can be totally candid .
The next page shows an example of a mark designed by one of my students.
He found a basic theme that he presents in various configurations . Following the
images is his description of what he was trying to say with the mark .
111
Chapter 3
112
Visual Discovery
Thestudent
's 12ersonal
markex12lained
in words~
"I liked the idea of using circles in my personal mark. I wanted to show that I
have many interestsand that no one single interest is most impor.tant to me. I try
to be a well-rounded person (sorry about that). I get a lot of personalsatisfaction
from seeing how a number of different disciplines interact with each other.
Math and art are two examplesof my interests.
"I wanted the circlesnot to overlap in the design- I found that Gothic stone
masonmarks get too busy when too many lines overlap; I try to get my life pretty
organized, so I wanted to show the circlesin my head all touching- but in a nice
neat way. I like being clever with math, so I was pleasedto be able to work out
the math in this design. I wanted the balls to get bigger and to fit nicely
together. They do look a bit like ball bearings, I'm afraid. Maybe I come across
to peopleas a bit of a machine. I don't know.
"I like the top mark becausethe turtle overlappedon the screenturning two
of the circlesinto little moon shapes. Thesemoons have rather soft outlines, and
they would never work asball bearings. The moonsgaveme the idea of softening
up the entire mark- making it more organicand lessgeometric. I figured out how
to have my printer make the first two designs look squashed; I liked the
comparisonwith the nonsquashedthird design. The bottom mark is done with
CONGON
. It looks like Greekjewelry that is made from thosewasher-like things.
"These three marks illustrate how I try to apply my mathematicalmind to
soft, organic (human) problems. And Greek jewelry? I think it is an exampleof
math-inspired designsthat servehumanistic ends."
113
Chapter 3
The following
is not an example of a personal mark !
Why ? Because a physical likeness of the author is not the same as a model of
the author 's personality .
114
c hapter 4
c ircuIar Grids
" Language
is
an
expression
of
thought
George
" By
of
human
reason
and
not
merely
a
medium
for
the
free
to
. . . ."
Boole
relieving
concentrate
Alfred
instrument
the
on
North
more
brain
of
advanced
all
unnecessary
problems
work
, a
good
notation
sets
it
. . . ."
Whitehead
Modeling for communication and thought
Like algebra, geometry, or any other language, the language of modeling is both
a medium for communication and a notation system that helps structure thought .
You can crystallize an idea about a shape or complex of shapes into Logo
procedures. Logo gives you a language both to name the shape and to define how
to go about drawing the shape. Once the shape is named in a procedure, that
name can be used as a shorthand for the method of constructing and exploring the
visual implications of the shape's definition .
In the preceding chapters you have seen that our visual intuitive sense is
limited in many cases. That explains why some of the images are so surprising .
Most people 's visual vocabulary is fairly rudimentary, even when it comes to
something as commonplace as polygons . Visual exploration with models can
Chapter 4
help increase your visual vocabulary by forcing it to describe unexpected shapes.
Have you felt visually stretched ?
Unpacking and repacking shape packages
The goal of this chapter is to encourage you to take complicated designs apart in
order to find their basic elements, the building blocks. Once unpacked, a complex
design can be explored by modeling each of the component parts in turn . And once
the small -part models are completed and named, you are free to concentrate on
how to put the parts back together again, that is, how to repack the package
with which we started . Along the way, you may be able to find several
alternative ways to repack the pieces.
Do you remember the first time you took a small machine apart ? I remember
happily attacking a large, mechanical alarm clock . The pleasure came from
solving two puzzles : to separate the pieces and then to put them back together
again. And because I had seen through those puzzles, and had arranged all the
small parts carefully on a carpet, I knew that the reassembled clock was not the
same as the original .
Circular grids
Having
explored
polygons
extensively, are you beginning
to see the world
packed with them ? Were you able to spot and recreate in procedure
forms the
polygons hidden inside the stone mason marks of Exercise 3.5? I want to use this
mason mark exercise as an example
of how to go about the unpacking
repacking
images . The mason marks are good ex-
of complicated, composite
amples, too, of a special kind of composite shape organization
elements are all arranged
circular
116
grids .
around
and
. The component
a central point . I call this class of designs
Circular Grids
Analyzing mason marks
Let's go through the exercise of analyzing the mason mark designs to illustrate
the usefulness of Logo shape and placement notation . The following discussion is
not the only description of what one can see in stone mason marks ; don 't be
alarmed if the work you did yourself doesn't correspond exactly to the following
illustrations . There is no single " correct" answer . But there is a proper style of
approach . The following examples are designed to show you that style .
Go back and look carefully at all the stone mason marks at the end of the
last chapter . Think about the following questions:
1. What shapes are used?
2. What shapes are not used?
3. Wha t shapes are used together?
4. What shapes are not used together ?
5. Are individual marks symmetric ? If yes, can you see the point of symmetry ?
Are some marks partially symmetric ? (Be sure that you have a definition of
symmetry at your fingertips . Are there different kinds of symmetries ?)
6. Within any individual mark, is anyone shape repeated over and over again
in a way that might suggest recursion?
7. What are the characteristics that make all the marks alike ?
8. What are the characteristics that make each mark unique ?
9. What already written Logo procedures could be used to produce parts of the
marks ?
10. What new Logo procedures need to be designed?
Now look back over the marks and quickly jot down your answers to these
questions . Don 't mull over the words ; write them down as they come to you .
117
Chapter 4
Written
observations
You probably noticed that
1. All the designs are composed from a few basic shapes: circles, squares, and
triangles . You can produce all of these easily with CNGON.
2. All the marks reveal a common characteristic: the orientation of the polygons
around a center. Each mark has a design symmetry "around " the center of this
theme circle. Each mark uses a limited combination of polygons . For example,
squares and circles occur together in the same mark, but triangles and squares do
not. Excepting the circle, no polygon beyond the 4-gon level is used. There are, for
example, no pentagons or octagons. For polygons centered on the circle's center,
CNGON
can be used.
3. Two polygons
of the same size and shape are often overlapped
to form stars .
For example, one triangle in Mark 2 is rotated 60 degrees from another, to form a
six -pointed star, while one square, in Mark 1, is rotated 45 degrees from another
to form an eight -pointed star . This is easy: use a combination
4 .
There
are
require
and
special
second
example
two
5 . There
the
boxes
fact
118
that
special
the
circles
new
procedures
two
at
least
mentioned
7
has
twice
polygon
grid
placements
of
within
placement
of
at
vertices
polygons
vertices
here
at
already
Mark
the
of
has
, the
of
forms
marks
of
. First
placement
the
are
kinds
attention
,
,
need
of
two
the
the
of CNGONsand RTs.
smallest
squares
in
of
triangle
the
marks
Marks
7
other
in
that
and
10 ;
polygons
Mark
:
for
13 . You
will
, and
each
.
recursion
one
that
of
them
appear
in
operating
might
be
structured
as
many
boxes
:
with
as
the
Mark
group
of
first
,
a
recursive
10
the
is
grid
marks
placement
procedure
" very
suggestive
of
-
the
"
of
Circular Grids
recursion ; and second, notice the occurrence of polygons nesting inside circles
nesting inside polygons . This nesting is called " inscribed " polygons . That is, a
polygon is inscribed, or drawn, to fit within another shape. You will see this
nested-shapes recursion in many of the marks : note the two smaller squares
nested inside the larger squares in Mark 1; also note the same kind of nesting in
the triangles of Mark 2. New procedures will be required here.
6. Straight
lines are sometimes
polygons - the diagonal
used to join the vertices
of some of the basic
cross inside a square - or the polygons
overlap of the basic shapes - the lines joining
the intersection
formed by the
points of the two
triangles . New procedures here, too .
You will need new procedures for the last three points :
1. Placement of polygons at the vertices of other polygons .
2. Two kinds of recursion: nested/ inscribed polygons and grids .
3. Some special line drawers to connect certain polygon vertices.
Recursive design features
Let's start with the recursion while your energy is high . Until recursion becomes
second nature to you, you will need a lot of concentration to understand how it
does what it does. But believe me, recursion will soon become as natural to you as
using any other form of shape description .
Look at the following four designs. Then look back at Mark 1 and 2. Seehow
natural some of these shape descriptors are becoming ? Do you see the kind of
recursive procedure that is needed, just by looking at these pictures ?
Put your ideas into words, though, just to be on the safe side. Remember to
record your thoughts and doodles in your notebook.
119
Chapter4
3.
J.
If.
:2;.
Inscribed polygons
We need a procedure that will first draw a circle of a given size, and then draw
an NGONinside this circle. The NGONis said to be an inscribed polygon if it just
fits
inside
a circle
, and
this
will
be the
case
when
the
NGON
has
the
same
radius
as the circle. Next, the procedure needs to know if it should go to another level
of inscription : should it draw a circle inside the NGONjust drawn and inscribe
another polygon inside this circle ? Let 's use : LEV to be the argument that
indicates the number of nested polygons -inside -circles that is required . The
procedure will have the following form :
120
Circular Grids
TO
INGON
: N
;
INGON
stands
;
: N
;
: RAD
;
Set
;
If
;
: LEV
is
: C ?
;
To
IF
: C
;
Do
if
you
no
circles
you
level
decremented
the
circles
to
be
drawn
recursion
,
as
30
the
a
Do
polygon
,
and
be
drawn
drawn
?
.
.
.
usual
: RAD
.
]
circumscribing
circle
: RAD
: N
;
inscribed
]
[ CNGON
Inscribe
;
.
the
will
of
[ STOP
want
: N
of
want
recursion
1
NGON
sides
.
1
1
=
INGON
of
,
the
stop
?
CNGON
;
1
<
nscribed
radius
=
*
is
: LEV
: LEV
~
number
its
: C ?
: C ?
for
the
is
IF
: RAD
polygon
( ? ? ?
INGON
inside
)
: C ?
again
with
: LEV
the
( : LEV
the
-
circle
1
.
)
correctly
calculated
: RAD
and
.
END
The
only
radius
drawn
calculation
.
problem
value
of
The
following
the
is
next
,
what
should
smaller
little
go
inscribed
diagram
in
the
place
polygon
should
be
of
in
useful
the
terms
as
( ?
of
you
?
the
think
?
)
.
This
is
the
polygon
just
through
this
.
e : l (3~o/ ~) :; 18olvv
J1 .
(..ose :. ~
C
.oSl
\C
()o/",,) =-~
Notice that a polygon has been drawn inside a circle of radius R. What is
the radius of the circle inscribed inside this polygon ? To answer this question,
we must find an expression for r in terms of R. Then we can handle the ( ??? )
term in the INGONprocedure .
Do you see that the angle e (theta) equals one-half of 360/ n, where n is the
number of sides of the polygon ? Using the definition of the cosine, we have cos e
= r / R. By putting these two expressions together and rearranging terms, we find
the needed expression:
121
Chapter4
r
=
R* cos
180 / n
ultirn2lte line becomes :
WecannowfinishupINGON
. Thepen
INGON
:N (:RAD
*COS
180/:N)
: C? ( : LEV- l )
The underlined expression has replaced the (???) . OK ? Let's try it out .
INGON 4 100 1 2
Gives
design
1
on page 120 .
CG
INGON 4 100 1 2 RT 45
INGON 4 100 a 2
Gives design 2 on page 120 .
.
,
CG
INGON 3 100 1 2
; Gives design 3 on page 120 .
CG
INGON
3
100
1
2
INGON
3
100
a
2
;
Gives
design
RT
4
on
60
page
120
.
Grid -of -squares turtle walk
Now for the grid of squares that appears in Marks 3, 6, 7, 10, and 16. Let's go
through a turtle -walk exercise similar to that introduced to solve the CNGON
problem at the end of Chapter 1. Imagine that you are at the center of a circle of
radius
: RAD and
that
you
want
to fill
How would you go about doing it?
122
up
an inscribed
square
with
other
squares
.
Circular Grids
~AD
+
~AD/2
1. Starting at point 1, draw a CNGON 4
: RAD. The radius of this square equals
the radius of the circle in which you are sitting .
2. Next, consider dividing this square into four smaller squares. You could draw
these four squares by first going forward, after picking up your pen, by : RAD/ 2,
putting down your pen at position (2) and running a CNGON4 : RAD/ 2. Then, get
yourself back to point (1) with your pen up . Turn right 90 degrees and get over to
position (3). Run another CNGON 4 : RAD/ 2 and get back to the center point (1).
Do the same for (4) and (5)
3. Ready for the recursion twist ? Suppose you want to divide the square centered
on position (2) into four smaller squares . On arriving
at point (2), you would want
to draw four squares around this spot . You must go forward by an amount equal to
half the distance : RAD/ 2, do a CNGON 4
You would
( : RAD/ 2 ) / 2, and then get back to (2).
then turn 90 deg! ees in preparation
( : RAD/ 2 ) / 2. The remaining
for the second square of radius
two squares would follow in similar fashion .
123
Chapter 4
4. But wait . Suppose when you were in position to draw the CNGON 4 with the
radius ( : RAD/ 2 ) / 2, you considered yourself to be in the center of a square that
should be divided again into 4 smaller squares. This is recursion .
And here is the Logo version of the words above :
TO SQUARES : SIZE
: LEV
; Grid maker of squares in groups of four .
IF : LEV < 1 [ CNGON 4 : SIZE STOP]
; Draw a square if you wish to recurse no deeper .
REPEAT 4 [PU FD : SIZE / 2 PD ; Get to center of a square .
SQUARES
(
;
Consider
;
squares
PU
Get
;
preparation
;
squares
SIZE
/
2
)
current
(
:
LEV
-
l
position
)
-
as
center
of
4
.
BK
;
:
:
SIZE
back
/
to
2
PO
RT
center
and
for
moving
90
]
turn
to
90
the
degrees
next
in
center
of
.
END
Another recursion diagram
STEP
SQUARES100 2
Watch the turtle read each instruction
and then carry it out . The STEP command
slows the action of the turtle
so that you can watch both the screen and the
procedure . Use the following
diagram
to follow
how the different
levels of
recursion are linked . This recursion diagram is similar to the one you saw when
you worked on RECGON. Remember ? If you have trouble comparing
on the screen with this recursion diagram, turn your printer
what you see
on to print out what
Logo is doing . Compare this printout, line by line, with the recursion diagram .
124
Circular Grids
SQUARESrecursion diagram
The following
recursion diagram describes what " happens " after you type
SQUARES 100 2. The level of recursion here is 2. Don 't forget to type STEP.
TO SQUARES : SIZE : LEV (100 2)
IF : LEV < 1 [CNGON 4 : SIZE STOP]
REPEAT4 [PU FO : SIZE/ 2 PO ( SQUARES ( : SIZE/ 2) ( : LEV- 1) - - PU BK : SIZE/ 2 PO] ")
ENO'"J)a'f./E~"f=
- - - TO SQUARES : SIZE :LEV (50 1)
IF : LEV < 1 [CNGON 4 : SIZE STOP]
REPEAT4 [PU FO : SIZE/ 2 PO SQUARES ( : SIZE/ 2) ( : LEV- 1) PU BK : SIZE/ 2 PO]
TO SQUARES : SIZE : LEV (25 0)
IF : LEV < 1 [ CNGON 4 : SIZE STOP]
REPEAT4 [PU FO : SIZE/ 2 PO SQUARES ( : SIZE/ 2) ( : LEV- 1) PU BK : SIZE/ 2 PO]
ENO
Exploring recursing; squares
Now, design an EXPLORE-type procedure to investigate how SQUARESoperates
at different: levels of recursion . The following is such a procedure .
TO
SQ
. EXPLORE
;
To
explore
;
different
PU
SETXY
SQUARES
PU
SETXY
SQUARES
PU
SETXY
SQUARES
: SIZE
: Ll
the
recursion
70
60
60
: SIZE
-
70
: L4
level
and
at
size
values
.
: Ll
-
: SIZE
: L3
procedure
PD
: SIZE
70
: L2
SQUARES
PD
: L2
-
60
PD
: L3
PU SETXY- 70 60 PD
SQUARES: SIZE : L4
END
125
Chapter 4
RT 45 SQ. EXPLORE 80 0
1
2 3 produces the following diagram :
More complicated grids
Suppose
you would
complicated
like
the SQUARES
procedure
to do something
to the squares it gets around
to drawing
at the lowest recursion
level . An example might be to put a cross in each box . The following
draws such a cross, but how should it be incorporated
more
procedure
into SQUARES?
TO CROSS : SIZE
REPEAT4 [FD : SIZE BK : SIZE RT 90
END
We will want the cross made just after a square is drawn, so that they both use
the same size value . That means that CROSS is placed just after CNGON 4
: SIZE in SQUARES. The following
revised SQUARES procedure, called
SQUARES. x, incorporates CROSS. Changes from or additions to the SQUARES
procedure are underlined . You might guess that any number of alternative pro cedures could replace CROSS
. A circle drawer (CNGON30 : SIZE ), for example.
126
Circular Grids
TO
SOUARES
IF
.X
: LEV
<
REPEAT
: SIZE
1
4
: LEV
[ CNGON
[ PU
FO
: SIZE
/ 2
.X
( : SIZE
SQUARES
PU BK
CROSS
:SIZESTOP]
4
: SIZE
-
PO
( : LEV- l )
90]
/ 2)
: SIZE / 2 PO RT
END
The
diagrams
exhibit
on
some
of
reconstruct
them
Placement
of
RECGON
maybe
we
really
need
place
shape
placement
.
,
.
,
.
,
;
PU
can
break
a
put
.
other
any
this
It
's
for
doing
kind
of
marks
' s
getting
as
is
fancy
grid
well
.
recursion
You
words
thing
,
the
tips
of
and
orient
.
should
.
now
any
be
then
notation
Here
of
it
is
let
's
other
than
a
and
the
but
simpler
location
use
of
something
place
to
use
at
into
current
to
kind
polygon
will
easier
it
this
down
that
turtle
than
mason
of
They
able
to
polygons
job
procedure
the
examples
assemble
a
polygon
.
RECGON
.
CNGON
at
defined
return
the
turtle
talk
about
Logo
to
some
But
All
we
to
a
its
new
:
TIPGON :N : RAD : DIST : ROT
To place an n- sided polygon of radius : RAD, at a distance
: DIST from the current turtle
location .
: ROT is ~ ation angle of the polygon is relation
to
the
FD
CNGON
PU
will
from
starting
stone
procedure
that
are
.
on
one
page
of
yourself
is
distance
next
flavor
polygons
was
procedure
TO
the
the
LT
turtle
' s original
: DIST RT : ROT PD
: N : RAD
: ROT BK : DIST PD
heading .
END
TIPGON is a building block procedure that fits nicely into others . On the
page after next are a few examples of how TIPGON can be so used . You should be
able to reconstruct all of these quite easily. By inspection ?
127
Chapter4
Mason mark designs from squares
/ / - - - -- ~
,..-----....,..
" " ......._ ~ - - - --...../
128
Circular Grids
Some TIPGON-generated figures
129
Chapter 4
Special line procedures
Let 's overlap
two similar
NGONs to form a regular
trigonometry
needed to find the rotation
star with
2*:N points . The
between the t\.A1ONGONs is easy : the
angle between points of the composite star will be 360 divided
by the number of
points or 360 / (2*:N ). So the star operation is :
CNGON: N : RAD
RT 360/ (2* : N)
CNGON: N : RAD
An example . Make a six -pointed star from two triangles of radius 100:
CNGON3 100
RT 360 / (2* 3 )
CNGON3 100
The star produced is top left one on the next page.
The bottom left figure is the star with the intersection points of the two
triangles connected. The top right figure shows the star again, but now with the
star points opposite each other joined . The bottom right star combines the
connections of the top right and bottom left ones.
The exercise for you is to think about the trigonometry
needed for this
exercise and then to design a procedure that will draw these two kinds of lines
for any star drawn from a composite of two similar polygons . Try out your own
ideas before going any farther . Here is my solution ; I 've called the procedure
STRIPES:
130
CircularGrids
3.
Y.
2.
TO
STRIPES
;
:
;
If
;
points
;
If
IF
:
N
is
N
:
RAD
number
:
Ll
?
:
L2
?
:
of
=
1
?
=
1
=
1
Ll
?
ngon
draw
:
'
L2
s
?
sides
lines
and
:
joining
the
joining
opposite
RAD
is
radius
NGON
.
intersection
.
:
Ll
draw
[
lines
RT
90
/
:
*
COS
REPEAT
(
:
:
RAD
N
[
CNGON
180
SETH
1
[
0
:
N
[
:
N
180
CNGON
RT
0
points
.
)
-
/
/
(
COS
:
N
:
N
90
]
/
:
N
)
-
-
]
REPEAT
SETH
2
/
RT
IF :L2? =
star
N
2
180
/
:
RAD
]
-
-
]
END
You
might
want
to
verify
that
STRIPES
works
in
a
number
of
situations
.
Here are two examples from me. The bottom left star was generated by :
131
Chapter 4
CNGON3 100
RT 360/ (2* 3)
CNGON3 100
STRIPES 3 100 1 0
The top right star came from this :
CNGON3 100
RT 360 / (2* 3 )
CNGON3 100
STRIPES 3 100 0 1
The bottom right star combines the top right and bottom left stars.
That 's all . You should now be able to generate most of the stone mason
marks given at the end of Chapter 3 using the procedures that have been
discussed in this chapter. Want to try a few ?
TO MARK
. 13 : SIZE
INGON 3 : SIZE 1 2
RT 180 (INGON 3 : SIZE 0 2) LT 180
REPEAT6 [TIPGON 30 ( : SIZE/ 2) ( : SIZE/ 2) 0
RT 60]
STRIPES 3 : SIZE 1 1
END
132
Circular' Grids
Here 's another . Notice that this mark uses both the grid recursion and the
inscribed polygon recursion patterns:
TO MARK
. 16 : SIZE
CNGON30 : SIZE
REPEAT2 [ SQUARES: SIZE 2 RT 45]
STRIPES 4 : SIZE 0 1
REPEAT2 [ INGON4 : SIZE 0 2 RT 45]
END
Generalized Gothic stone mason mark procedures
The procedures we have just looked at, MARK. 13 and MARK. 16, are not very
general . They can each produce only one design . Their only generality is an
ability to produce fixed designs of different sizes. That isn't very interesting .
What about designing a more general mark procedure that would include an
additional argument for controlling the shapeof the design produced ? Exercise
4.6 will ask you to design a generalized mason mark procedure with at least 3
arguments . Here is a preview of such a generalizing approach .
The following procedure was designed to draw either Mark 1 or Mark 2. I
also wanted to see a mason mark figure based on pentagons and hexagons. I
therefore added a second argument, : N, that would control the shapes selected
to construct the mark . This new procedure thus has an argument that determines
the overall shape as well as one for setting the size of the mason mark .
133
Chapter 4
It is often interesting to see what " happens" to designs produced by a Logo
procedure as the procedure 's arguments are given more and more extreme values.
Sometimes designs produced with such extreme value arguments are very boring .
But other times one finds designs that are totally unexpected and very exciting .
Here is a start at my generalized mason mark :
TO G.MARK :N : SIZE
CNGON30 : SIZE
INGON :N : SIZE 0 2
RT 360/ (2* : N)
INGON : N : SIZE 0 2
LT 360/ (2* : N)
STRIPES :N : SIZE 1
END
1
And here is an EXPLORE-type procedure that will show you how G. MARKproduced design change with changing : N values:
TO
;
M . EXPLORE
To
PU
SETXY
G . MARK
PU
SETXY
G . MARK
PU
SETXY
G . MARK
PU
SETXY
G . MARK
: SIZE
explore
70
: Nl
: Nl
the
60
: N2
: N3
G . MARK procedure
PD
: SIZE
70
: N2
- 60
- 70
: N3
- 60
PD
: SIZE
- 70
: N4
PD
: SIZE
60
PD
: SIZE
END
The following diagram is produced with
M. EXPLORE50 3 456
134
.
: N4
at
different
: N values
.
Circular Grids
Comment : the extreme values, : N = 6, for example, aren't very interesting .
The figure becomes confused and muddied with too many lines . Here is the
reason why all of the stone mason designs in the illustrations given at the end of
Chapter 3 limited their ngons to a max of n = 4, squares. Circles seem to be a special case. The G. MARKbased on the hexagon above does suggest some work in the
following direction . Spider webs, maybe?
135
Chapter 4
The quality of polygon lines
Here is a simple pentagon produced by the CNGONprocedure . Look at the five
edges of this polygon . They are straight lines and they connect the vertices of
the pentagon together .
11
Must we use a straight line ? Suppose we want the vertices to be connected
with a line whose quality
qualities
is different
from that of a straight line . Different
line
could mean wavy, jagged, or dotted lines . Or maybe we might decide
that we want
the vertices
of a polygon
to be joined
shape . Why not remove the FD edge command
together
with
a special
from CNGON and replace it with
some other procedure that draws a new shape between the vertices .
Once whatever shape the new procedure draws between one vertex and the
next is completed, the turtle must be placed at the second vertex facing the same
direction it faced at the first . The new procedure
must operate
exactly
like
FORWARDin terms of the turtle 's starting and ending state . In other words, the
turtle must be left in the same heading state in which it was found, and the
distance between the two vertices must remain equal to : EDGE. If this were not
true, we could not replace the FD : EDGE command with our new procedure .
Why ? In fact, we can replace FD : EDGEwith any procedure as long as it follows
FORWARD
's starting and ending conditions . Are you happy with this?
136
Circular Grids
Can you state the conditions necessary for us to replace one part of a
procedure
with
an alternative
part ? How must the parts relate ? How
is this
business like the notion of state transparency ?
Stars
Let's consider drawing stars. Look at the sketch below . A star is a polygon with
a different quality of edge. Instead of a straight -line edge, the star has an edge
with a " kink " in it . If we could write a procedure to draw " kinked " edges that
follow the beginning and ending state conditions of FD, we could exchange the FD
: EDGE in CNGONwith the kinked line procedure . This exchange will create a
new gon-drawing machine called STARGON
. If we are careful, STARGONwill be a
more general form of CNGON
becauseit will draw stars as well as polygons .
~ 0
~
0
"\:
't
: ~ P&' ~
137
Chapter 4
Let's call the new procedure that will draw the kinked line STAREDGE.
Before we do a turtle -walk description of the staredge, let's decide how we will
characterize its major feature, kinkiness, in terms of an argument called : KINK .
Suppose we say that if : KINK = 0, there will be no kinkiness to the staredge and
so the star drawn will look exactly like a polygon . That 's fine : a star with no
kinkiness is a polygon . On the other hand, if : KINK = 1, then the kink in the
staredge will extend down to the center of the figure . The shape of this star will
look like the spines of an umbrella . A : KINK of .5 should produce something
midway between a polygon and an umbrella frame.
Turtle walk through the staredge
1. The turtle begins at position (1). It is facing the next vertex at position (7).
2. The first thing that STAREDGEmust do is to turn right by the angle labeled
: TANGLE (for lop ~ngk ) at (2). Don 't worry about the calculations yet; we can
work those out later .
3. Now, go forward by the amount labeled : SLOPE
. (3)
4. N ow, turn left by the anglelabeled : BANGLE(for Qottom@g1g) at (4).
5. Go forward by the : SLOPE
. (5)
6. Turn right : TANGLE
. (6)
7. The turtle is now in position (7). STAREDGE
hasmoved the turtle from vertex 1
to 7, and the turtle heading at 7 is the sameas it was at 1. This correspondsto
what FORWARD
accomplished
, so we canexchangethe two procedures.
138
CircularGrids
Staredge calculations
Here are the calculations that will be needed . I 've written
a supporting
procedure called SQ that squares its argument ; your own version of Logo may
already have this command . SQRTis my Logo's command for square root .
I am pleased that this project will encourage you to review a little more
geometry and trig . You will need to remember the arctangent and its associated
ARCTANcommand ; we use this to calculate the angle : TANGLE. Also, you might
n
~
n
I.:.:.
~
:::r
.
0
:='
cn
recall the Pythagorean theorem : in a right triangle, the square of the length of
the hypotenuse equals the sum of the squared lengths of the other two sides. We
..tIjc../) ..
.. ..
I-3:I:
tx
:J
:ZOZ
l;.rt-t :l;.r1-31
:J
):J
G
) t"CJG
) G
tx
t-ttx
:Jt-t
tx
:J tx
:J
II II II II II
use that to find the : SLOPE.
TO SQ : A
; To square
OP : A* : A
END
a number .
2* : RAD* SIN 180/ :N
:KINK* : RAD* COS 180/ :N
ARCTAN: HT : EDGE
/2
SQRT (SQ ( : EDGE
/ 2) + SQ : HT)
2* : TANGLE
Putting STARGON
together
Where shall we carry out these calculations ? We could place them inside the
new procedure STAREDGE. But this wouldn 't be very efficient since the math
needs to be done only once, not every time a STAREDGEis drawn . So let 's place
the calculations at the start of the procedure STARGON. Here are the two new
procedures.
139
Chapter 4
TO STAREDGE: TANGLE: SLOPE
RT :TANGLE
FD : SLOPE
LT 2* : TANGLE
FD : SLOPE
RT : TANGLE
END
TO STARGON : N : RAD : NOTCH
; Centered star exercise .
(LOCAL " EDGE " HT " TANGLE " SLOPE)
MAKE " EDGE 2* : RAD* SIN 180 / : N
MAKE " HT : NOTCH* : RAD* COS 180 / : N
MAKE " TANGLE ARCTAN : HT : EDGE/ 2
MAKE " SLOPE SQRT (SQ ( : EDGE/ 2 ) + SQ : HT )
; These MAKE commands calculate
the
values
that
; will
use below .
PU FD : RAD PD
RT 180 - (90* ( : N- 2 ) / : N)
REPEAT : N [ (STAREDGE : TANGLE : SLOPE
) RT 360/ :N]
LT 180 - ( 90* ( : N- 2 ) / : N)
PU BK : RAD PD
END
STAREDGE
Global and local variables
Notice that I have made the staredge variables all local variables . We don 't
need the value of these staredge calculations outside of STARGON. Do you
remember the difference between local and global variables ? Global variables
have an existence outside as well as inside the body of the procedure that
created them . These variables never go away, in fact, until they are erased. The
command NAMES lists all global variables currently in your workspace and
EDNAMEallows you to edit a specific variable . Check your Logo language manual
to verify these commands in your own Logo dialect.
Local variables, on the other hand, exist only inside the procedure that
defines them . A local variable is, however, available to any procedure that is
used within the body of the procedure that defined the variable .l
1. Most traditional Logos, including the dialect used in this book, apply this
approach, but some recent implementations such as Coral Object Logo favor an
140
Circular Grids
Logo isn't very good at " number crunching ." Because Logo is so slow with
mathematical calculations, structure your procedures to calculate as few times as
possible. Group the " dirty " math work in one place using MAKE commands, so
Logo can go on to what it does most quickly : moving the turtle about the screen. If
possible, LOCALize all the MAKE-created variables .
A look at STARGONswith different
My recommended
: KINK values
way to explore a new procedure is to design an EXPLORE-like
procedure . Each of the following
diagrams
shows a set of five stargons . The
value of the : KINK factor is noted on each individual
Note that the stars produced
stargon .
with a kink value greater than 1 are pulled
" inside -out ." Why is this ? Look carefully . Perhaps you would
like to use the
STEP command to slow the turtle down as it draws one of these inside - out things .
alternative approach in which local variables are available only to the
procedure that created them and not to any others. Your Logo manual should
describe the method it uses to define the range or " scope" of local variables . If it
applies the second approach, you will need to make some (relatively simple )
modifications to the procedures given in this book .
141
Chapter 4
142
CircularGrids
STARGON
-produced designs
Below
are
produced
designs
, but
several
designs
that
explore
shapes
. I won
' t give
you
it has
much
in
common
the
the
with
: KINK
argument
effect
on
actual
procedure
used
CONGON
of
3 . Re ~ ember
Chapter
to
STARGON
create
-
these
?
143
Chapter 4
Fractalgons
Put off for a moment asking what a fractal might be. Instead, consider yet
another way of altering the quality of the polygon edges drawn by CNGON
..
Recall how we built STARGONfrom CNGONin order to draw kinked lines
between polygon vertices . Here is a turtle -walk description of another line
shape that can replace FORWARDin CNGON
: take the distance between vertices
and call it : DIS T. Now have the turtle go forward by one-third of : DIS T and
turn left 60 degrees. Then go forward another one- third of : DIS T and turn right
120 degrees. Now go forward another : DIST / 3, turn left 60 degrees, and finish up
with FD : DIST / 3. Here is the shape of this new kind of line :
- - _/ ! \ \ _---And here is a triangle with ordinary straight sides:
What if you now replaced the straight line sides with the new shape? And
after you have done this, what if you could replace all the straight line
elements within the new shape with a smaller version of the new shape? And
then, what if you could replace the remaining straight line segments with
smaller versions of the shape . . . What is this? Recursion, again.
144
Circular Grids
145
Chapter 4
FRACTALGONS: a new recursion
Look closely at the following
machine
two procedures . You should
have a feeling for
what is going on as soon as you scan the lines . But what will that argument
do ? Notice, too, that the kind of recursion
used in FRACTAL is not exactly the
same as that used in RECGON . There are four
FRACT AL where FRACTAL
recursion
diagram
" calls " itself
for yourself
: DIR
places within
the procedure
(makes use of recursion ) . Make a
and use STEP to verify
that your
recursion
diagram arrows are correct .
Can you now give a definition, based on FRACTALGON, of a fractal design ?
Of a fractal ? Try . What is the quality
of the edge line in a fractal design ?
TO FRACTALGON : N : RAD : LEV : DIR
; If : DIR = 1 turn outward .
; If : DIR = - 1 turn inward .
LOCAL " EDGE MAKE " EDGE 2* : RAD* SIN 180/ :N
PU FD : RAD PD
RT 180 - 90* ( : N- 2 ) / : N
REPEAT :N [FRACTAL:EDGE : LEV : DIR
RT 360 / : N ]
LT 180 - 90* ( : N- 2 ) / : N
PU BK : RAD PD
END
TO
FRACTAL
IF
FRACTAL
LT
120
FRACTAL
LT
146
: DEPTH
: DIR
1
[ FD
: DIST
( : DIST
/ 3 )
( : DEPTH
STOP
- l )
]
:DIR
/ 3 )
( : DEPTH
- l )
: DIR
/ 3 )
( : DEPTH
- l )
: DIR
/ 3 )
( : DEPTH
- l )
: DIR
( : DIST
* : DIR
( : DIST
60 * : DIR
FRACTAL
END
<
60 * : DIR
FRACTAL
RT
: DIST
: DEPTH
( : DIST
CircularGrids
SomecuriousFRACTALGONS
147
Chapter 4
Observations
Have you noticed that most of the designs in the first three chapters have been
" circular " ? These circular patterns reveal a symmetry based on a central point,
and that 's why I've called them circular grids .
There is one final example of circular grids in the chapter . It is another
example of how a complicated figure can be unpacked into its components and
then restructured . This example shows how a generalized model of the basic
component can lead to a wide variety of recomposed images based on the theme
of the original . While all the images share the same original characteristics,
they are surprisingly different in feeling .
Nephroids
"Nephroid " means kidney -shaped. It is a nice example of a complex circular
grid .
Look carefully at the following diagram . Can you decompose the design
into its polygonal components as you did with the stone mason marks? Could you
draw a nephroid on a drawing board with a straight edge and compass? Most
important, could you do a turtle -walk scenario? That walk might begin to form
in your mind as soon as you start scanning the design with your eyes . . .
148
Circular Grids
Nephroid
walk scenario
Here is a little sketch that might help . Imagine a circle whose center is labeled
(1) . Begin to walk
along the circumference
Stop at equal intervals
of this circle starting
along the circumference
at point
(2) .
(3, 4, 5, ...) and draw a circle -
one at each stopping place - whose center is your current position . The radius of
each circle will
diameter
be such that its circumference
of the big circle that you are walking
will
just touch
line AB, the
on . How can you calculate the
radius of each of the circles that you must draw ?
A
tEroJTErz
.
Av(", ~ ()~ u ' TTL
:!E: CI~c.LE: = : ~ D *" <;,.J 9
Look at the right -hand diagram above. The thing that must be calculated
is labeled " radius of the circle to be drawn ." You know the : RADof the big circle,
and you could probably figure out the angle 8. If you know these two things, then
trigonometry will again supply you with help . The radius you need is simply
: RAD* SIN e. The same simple relationships are useful over and over again.
We can use TIPGON to move out from the center (1) to a position on the
circumference, draw the circle, and then move back to (1). You can then turn the
turtle at (1) an appropriate amount in preparation for using TIPGON again.
149
Chapter 4
What about that angle e? You need that in order to calculate the radius of
each of the circles that TIPGON places out there on the circumference of the big
circle. You can use the command HEADING. HEADINGgives you the turtle 's current
angular orientation
as measured in degrees from the straight -up position .
Straight -up is 0 degrees; pointing toward 3 o'clock is 90 degrees; straight -down
is 180 degrees; and pointing toward 9 o'clock is 270 degrees. The line AB
indicates the straight -up position . SOHEADING will give you the angle you need
to calculate the radius for each circle that must be drawn . What about tilting
the design with respect to the line AB ? Let : TILT
represents the degrees of
clockwise tilt .
Here it is:
TO NEPHROID
;
: CIRC
;
how
;
: TILT
;
horizontal
RT
: TILT
REPEAT
is
many
is
: CIRC : INC : TILT
t-hp r ~rl ; ' ] ~ of the
times
the
clockwise
turtle
rotation
big
stops
of
circle
along
figure
.
: INC specifies
the circumference
from the
.
.
: INC
LT :TILT
END
[TIPGON 30 ( : CIRC* SIN (HEADING
RT 360/ : INC]
: TILT
: CIRC 0
On the next page are a few nephroids . Because the screen resolution is
limited, these nephroids look as if they had been knitted rather than drawn .
Generalized nephroids
Let's consider producing a series of nephroid designs based on a more generalized
model of the component part . Instead of circles, let 's use STARGONs. With
STARGONswe can still generate circle-based nephroids, but we can also explore
nephroids built up from stars . And what will that look like ?
150
Circular Grids
151
Chapter4
First, let 's extend TIPGON to manipulate STARGONS
instead of CNGONs
. Call
the extension TIP . STARGON
.
TO TIP . STARGON:N : RAD : KINK : DIST : ROT
; To place an n- sided stargon of radius : RAD and
; kink :KINK, at a distance : DIST from the current
; turtle
location . :ROT is ~ ation angle of the
; in relation
to the turtle ' s original
heading .
PU FD : DIST RT :ROT PD
STARGON:N :RAD : KINK
PU LT : ROT BK : DIST PD
END
Now, we can insert TIP . STARGONinto an extended NEPHROID, called
STAR.NEPHROID
.
TO STAR. NEPHROID: CIRC
.
,
.
,
.
,
: CIRC is the
: N
,
kink
;
from
.
RT
of
the
turtle
many times
how
is
number
: KINK .
the
: INC
radius
of
sides
: N
the
of
; TILT
is
horizontal
: KINK
: TILT
big
circle
stops
alonq
component
.
: INC specifies
the circumference
stargons
clockwise
.
with
rotation
of
figure
.
: TILT
REPEAT
: INC
[ TIP
. STARGON
:N
( : CIRC
: KINK
RT
LT :TILT
END
-
* SIN
: CIRC
: TILT
( HEADING
0
-
360 / : INC ]
Unpacking and repacking image packages
The
images
of
this
chapter
ones
patterns
into
simpler
chapter
better
than
more
challenging
152
words
areas
.
,
illustrate
the
and
images
. Now
these
it ' s your
power
chance
of
decomposing
recapitulate
to
extend
the
these
complex
ideas
notions
of
the
into
Circular Grids
STAR . NEPHROIDs
-
153
Chapter 4
More STAR . NEPHROIDS
Some
curious
symmetric
images
the
. The
close
PIPEGONs
154
things
left
seem
half
and
others
of
Chapter
to
be
happening
is
not
the
same
do
not
?
2 .
If
you
.
as
have
the
Some
of
these
right
half
. Why
forgotten
the
term
images
is
are
it
closure
that
not
some
, look
at
Circular Grids
Exercises
There are ten exercises this time . The first seven involve more work with
circular grids, while the last three branch into the worlds of rectangular and
random grids . There are fewer hints included because you should have the basic
skills now to be your own designer . Try to create designs that are as different
from the ones in this chapter as possible.
Exercise
4.1
The nephroid on page 148 is composed of many individual circles. (Can you count
the actual number of component circles from the design itself ?) The method for
locating and drawing each of these component circles was described on the last
few pages of this chapter.
Many other complex designs can be built up entirely from circles (or other
polygons ). The cardioid (heart shape) is another example of such a composite
design . It is illustrated on the next page. Can you suggest how the cardioid is
generated ? Note that both the nephroid and the cardioid seem to be threedimensional, at least at first glance. Examination, however, will show that the
" depth cues" are ambiguous and not totally consistent with " real " world
perspective . This kind of ambiguity, though, can add interest to an otherwise
straightforward, geometric design.
155
Chapter 4
Cardioids
156
CircularGrids
Now
look
spheres
whose
on
here
? Are
the
nephroid
Dream
nephroids
at
the
fronts
following
are
the
3 -D
and
cardioid
up
some
, cardioids
three
transparent
methods
but
used
designs
elegant
, and
designs
these
to
. These
whose
draw
seem
backs
these
are
globes
to
illustrate
opaque
similar
concentric
. What
is going
to
used
those
in
?
Logo
procedures
transparent
to
spheres
create
designs
inspired
by
.
157
Chapter 4
Exercise
4 .2
I once asked you to design a personal mark . Now we move from the individual to
the cosmos. In Hinduism and Buddhism diagrams called mandalas are used to
illustrate the structure of the universe and the place of the observer within it .
They are also used in meditation and visualization exercises. Two examples are
shown below . I would like you to generate a series of mandalas, each based on
aspects of your own personalcosmology. Be ready to " explain " your diagrams .
158
CircularGrids
Exercise
4.3
While
we
the
are
thinking
standard
begins
glyphs
at
( 6 )
( 1 )
Virgo
and
,
( 12
)
Simplify
.
each
identity
.
meanings
and
Libra
Pisces
the
twelve
runs
,
Can
( 8 )
you
may
the
cP
,
( 9 )
to
so
t
b
can
'
V
;
following
zodiac
,
drawn
by
me
( 4 )
Cancer
,
(3 )
Gemini
,
( 10
)
,
Capricorn
the
it
of
( 11
a
would
to
them
.
,
form
astrology
te
into
.
The
,
)
your
series
(5 )
circular
Leo
,
,
grid
its
the
are
Aquarius
lose
read
Here
?
visual
traditional
designs
.
4
( YY
) 1
\
7
5
9
on
incorpora
~
6
I
the
into
3
rrQ
5
at
@
2
cfJ
look
which
book
n
1
them
beyond
a
you
the
Taurus
of
point
borrow
tha
a
Sagittarius
each
the
take
of
( 2 )
redesign
want
,
through
to
signs
cosmos
signs
Scorpio
symbol
You
of
the
for
Aries
( 7 )
about
; : ~
8
: : : ~
*
10
11
12
Exercise
4.4
Playing
cards
You
might
hearts
,
these
images
deck
.
who
lent
offer
be
and
may
should
you
set
intrigued
spades
( You
another
the
of
to
redesign
. Or
maybe
the
not
be
be
astrology
able
designs
the
face
as
challenging
to
borrow
book
that
of
for
deck
Exercise
be
standard
cards
a
for
can
card
King
you
of
structured
Tarot
4 .3 . )
,
as
suits
:
Queen
as
the
cards
Listen
diamonds
, Jack
face
,
cards
from
to
circular
these
the
,
and
Joker
of
same
wonderful
the
grids
.
clubs
,
.
But
tarot
person
face
159
Chapter
4
card
names
Chariot
:
,
Strength
Temperance
The
Fool
your
The
you
Priestess
Hermit
,
,
Tower
design
a
as
,
,
Wheel
Star
of
,
Empress
,
Fortune
Moon
,
Sun
,
,
Emperor
,
Justice
Last
,
Hierophant
,
Hanged
Judgment
,
Man
World
,
,
and
Lovers
,
Death
,
finally
,
clock
.
sim
circular
grid
pIe
as
icon
possible
for
one
or
more
of
these
cards
?
Keep
each
.
.5
standard
to
High
.
4
numbers
want
Devil
designs
Exercise
,
,
,
Can
of
Magician
face
Remember
change
is
to
the
whole
a
keep
circular
grid
track
system
of
of
seconds
reckoning
.
Redesign
,
it
minutes
time
with
,
.
.
symbols
and
hours
rather
.
But
than
you
may
.
Exercise
4.6
Design a generalized Gothic stone mason mark that has three arguments . One of
these arguments should control the size of the design and the other two should
control the shape. Don 't limit yourself to the examples already shown ; produce
a series of designs that could be used for late-twentieth -century cathedral
building .
Exercise
4.7
We didn 't spend much time on fractals in this chapter . Go back and look at the
FRACTALGONs. Can you dream up some fractals of your own ? We will look at
fractals again in the exercise section of Chapter 7.
160
Circular Grids
Exercise
4.8
Design a Logo procedure
that will
put a shape into a rectangular
grid . You
should be able to define the number of rows and columns that the procedure will
use and the distances between them . You might want to be able to change the
shape that goes into this grid as well . Make sure your rectangular
placed at different
grid can be
starting places on the screen .
Remember : the secret to success is always to go through
the sketch / turtle
walk / more sketches scenario . Here is a little design that will get you started on
your walk . Break up the tasks into sections, write a Logo procedure for each, and
put the sections together into a master procedure that controls the action .
'2. =. tJv~ ?>~ or::
2. owS
G :: .JlJ~ ~'6l2- Dr:
CoL\.At-"\,JS
*- =. Sr\APE
-
Exercise
4.9
Design a procedure that will place a certain number of STARGONsrandomly on
the screen (a random rectangular grid ). Look up the RANDOMcommand in your
Logo language manual and carry out some visual experiments with it . Try to say
something about how you feel when you look at the " designs" produced by your
random machine.
161
Chapter 4
Exercise
4.10
Piet Mondrian was a painter who specialized in rectangular grids . Find one or
two postcards, or small reproductions, of Mondrian 's work that you like . The
portability is important because I want you to pin them up over your desk or
work space. Now, spend a lot of time looking at these Mondrians . Can you
characterize, very roughly, the grid themes of your Mondrian examples?
Can you translate your characterization of Mondrian grid themes into a
Mondrian model ?
The end of the chapter at last
Sometimes people think that Logo procedures must be complicated to be good .
Wrong . Go back and look at NEPHROID; it really has only one line . Here are two
rectangular grid procedures that are short and surprising . They should get you
into shape for Chapter 5.
TO ZIP : SIZE : GROWTH
; Set your pen to the reversing
; and try ZIP 10 5 .
REPEAT 2 [ FD : SIZE RT 90 ]
ZIP : SIZE + : GROWTH: GROWTH
END
TO ZIPM : SIZE : GROWTH
; Set your pen to the reversing
; and try ZIPM 10 1 . 05 .
REPEAT 2 [ FD : SIZE RT 90 ]
ZIP : SIZE* : GROWTH
: GROWTH
END
162
color,
color,
Chapter 5
Rectangular and Random Grids
"Teased by the crisscross of the world ."
John Galsworthy
Placement, motif, and symmetry
By now you should have an appreciation for the power of visual models to aid
your thinking about shapes. Simulating stone mason marks encouraged you to
think about clusters of shapes and their relative placement . In these mason
mark designs, placement was carried out in reference to a single point that
became the center of the final composition . Often, an arrangement of objects
around the center was repeated to create a special kind of balanced figure, a
symmetric one. But what is symmetry ?
Let 's be as simple as possible about this notion . To say that a design is
symmetric means that each part of the design has the same organization as some
other part . It is the repetition of parts that creates a certain balanced quality in
the whole . All balanced designs, however, are not necessarily symmetric . Look
back at the Delaunay machine in Chapter 3 for an example of balance without
symmetry . Can you imagine a design that is partially symmetric or partially
not?
Specifically, symmetry describes a correspondence in size, shape, and
relative position of parts in reference to a dividing line, or median plane, or
Chapter5
about a center or axis.
Circular symmetry is a special form of design balance in which the
correspondence of parts is about a central point . Look back at the stone mason
marks you produced in Chapter 4. How would you describe the nature .of the
circular symmetry exhibited in them ? Look, too, at the designs you made to
represent your own character in the personal mark excursion, Exercise 3.6. How
much symmetry do you find there ? We know something of balanced personalities, but what would a symmetric character be? Put your comments in your
notebook.
This chapter will
investigate
another form of balance - rectangular
symmetry . Here the correspondence of elements will be relative to the rows and
columns of a rectangular grid rather than to a central point .
Let me have one last word about symmetry before we move on to modeling it
explicitly . Symmetric designs can be viewed on two levels . We can divide the
composite design into the motif and the rule of repetition. For example, look
back at two symmetric images in the last chapter- STARGONS
and NEPHROIDs.
The STARGONmotif is the kinked line and the repetition rule is the machinery
of CNGON. In the nephroids, the motif is the circle and the repetition rule is
stated as the last line of the NEPHROID procedure (see Chapter 4).
A small review of list mechanics
The first example of rectangular symmetry will be taken from Exercise 4.8. This
problem asked you to design a generalized rectangular -grid machine . But first
we will need to review some Logo list -handling mechanics in preparation for the
approach I would like to take to this problem . Please read the list section in
your Logo manual, and I'll quickly go over the most important list operations .
164
Rectangular and Random Grids
L-. I
List definition
Lists are collections of Logo elements enclosed by square brackets [ ]. Be careful
not to confuse these square brackets with two other kinds of brackets available
on most computers : round brackets ( ) and curly brackets { }. Round brackets are
.....
usually called parentheses.
Here are some examples of lists that contain one or more elements that are
not themselves lists :
[ JIM ]
[JIM CLAYSON
]
-rlOO 200 3 - 201
[JIM LOOKS85 BUT ACTS 16]
[STARGON4 40 . 5]
[FD 100 RT 45 FD 100]
Lists may contain elements that are themselves lists . That sounds a bit
recursive, doesn't it ?
[REPEAT4 [FD 25 RT 90] ]
[ [ [MIT] [CHICAGO
] [LONDON
] ] [ [AMERICANCOLLEGEIN PARIS]
[ PARSONS
]]]
Lists may also contain no elements. These " empty lists " are very special
beasts, and we may find them useful later on:
[
The following list is not empty. It has two elemen .ts, each of which is an
empty list:
[[
]]
165
Chapter 5
Valuesof variables
canbelists
The value of a variable can be a list as well as a number or a word .
MAKE
;
" JIM
Variable
MAKE
;
" JIM
Variable
MAKE
;
" JIM
Variable
21
' s
value
is
a number .
" HAPPY
' s
value
[ STARGON
' s
values
is a word .
5 50 . 5]
is a list .
Th ~ READLIST construct
Let 's design a procedure to carry out the following
tasks :
Ask the user to type a special x-y screen location on the keyboard .
Put the two numbers typed into a list .
Make this list be the value of a global variable .
TO GIVE . PT
; To create
a global
variable
named
; : POINT whose value
will
be a list
; containing
the x and y values
typed .
PRINT [ Give the x and y values
of the point
MAKE " POINT READLIST
END
]]
Notice that the PRINT command can be used to print a message on the
screen. The message to be printed must be a list, but the outer brackets will not be
printed .
Type GIVE . PT and it will talk to you by printing the message: "Give the x
and y values of the point ."
You will notice another new command, READLIS T, on the line after the
PRINT statement . When Logo arrives at a line that contains a READLIST
command, Logo will wait until something is typed on the keyboard . Whatever
166
Rectangular and Random Grids
is typed is placed within a single list, and this list is made available at the
location
The
of the word
READLIST
.
line
" POINT
READLIST, causes the following three operations
to be carried
MAKE
out :
1. Logo waits until something is typed (for example, 100 200 ).
2. Logo puts whatever has been typed into a list (for example, [ 100 200 ] ).
3. Logo creates a global variable named : POINT and makes its value equal to
the list made available by READLIST (for example, typing : POINT would now
give [ 100 200 ] ).
Try the procedure . Type GIVE . PT, type in two numbers, and check to seeif a
variable called : POINT has been created and given the values you typed .
Takingindividualelements
outof a list
Now, let 's send the turtle to the screen address that is now stored within the list
named : POINT. You might think that the following should work :
SETXY : POINT
No . We have to take the numbers out of the list before the SETXY command is
happy . SETXYneeds two arguments, not a single list that has two numbers inside
it .
There are many list manipulation commands in Logo, and you should review
them in your own language manual . We will discuss only a few of these
commands here . FIRS T list returns the first element of that list ; LAS T list
returns the last element; BUTFIRST list returns the list with its first element
gone; and BUTLAST list returns the list with its last element missing . Some quick
examples :
167
Chapter5
FIRST [A B C ] returns A
LAST [A B C ] returns
C
BUTFIRST [A B C] returns
[B C]
BUTLAST [A B C] returns
[A B]
These commands can be used in combination :
FIRST BUTFIRST [A B C] returns B
LAST BUTLAST [A B C] returns B
Two
don
' t
final
commands
know
how
returns
the
many
of
,
one
.
concise
you
don
' t
could
So
TO
let
GO
.
;
To
;
stored
:
' s
like
send
a
5
the
:
turtle
,
off
a
with
BF
BF
to
:
POINT
named
.
:
JIM
elements
BF
Sometimes
.
you
COUNT
:
:
fifth
ITEM
JIM
.
:
[
stored
you
But
of
PARIS
as
]
the
want
there
element
10
location
and
BF
the
though
that
list
many
returns
to
off
JIM
.
list
JIM
this
turtle
in
list
FIRST
ITEM
something
the
are
the
have
say
:
do
in
you
command
send
there
elements
suppose
You
we
elements
number
Finally
fifth
before
:
.
is
JIM
Why
the
.
a
Be
more
careful
?
list
:
POINT
the
command
.
PT
send
the
turtle
as
to
the
list
the
x
value
-
y
position
of
:
POINT
.
PU
SETXY
FIRST
:
POINT
LAST
:
POINT
PD
END
Putting
A
several
single
Logo
example
SENTENCE
will
[
SENTENCE
168
A
B
up
out
a
few
[
-
SENTENCE
into
make
]
100
Look
Carry
elements
N
the
M
]
50
list
point
.
returns
[
returns
in
experiments
a
[
your
A
-
manual
to
see
B
100
and
for
yourself
N
M
50
]
]
compare
it
how
they
with
are
different
LIST
.
.
Rectangular and Random Grids
While you have the manual in front of you, take a peek at LPUT and FPUT .
How are they different
from SENTENCE and LIST ? These list manipulators
may
seem a bit ponderous
at first, but you will soon get a firm, visual sense of how
they work . And that will help you decide when they are useful .
Regular rectangular
grids
Now we can get on with Exercise 4.8. " Design a Logo procedure
shape into a rectangular
that will put a
grid . You should be able to define the number of rows
and columns that the procedure
will use and the distances between them . You
might want to be able to change the shape that goes into the grid as well . Make
sure your
rectangular
grid
can be placed at different
starting
places on the
screen ."
Turtle - walk sto ~ boarding
As usual, the best way to approach a complicated
Logo problem is to do a turtle -
walk diagram . A turtle - walk diagram is similar
to the story boards used to plan
TV and cinema advertisements
illustrate
. The story board is a series of small, sketched
cartoons
that
the major
events
to be covered
individual
cartoon is accompanied by a few written
we have done with turtle walks : sketch the important
in the film . Each
comments . Sounds like what
" events " and comment on
them in words .
On the next page is an example of how an illustration
and design student
used the story board approach to structure the rectangular grid exercise.
169
Rectangular and Random Grids
Descriptions of the story board cartoon screens
" Cartoon A indicates the preparation
that must be carried out before the grid is
started . The screen must be cleared and the GET . PT procedure run to define the
upper -left -hand -corner starting point of the grid . Somehow, the shape notation
of the little figure that will make up the grid needs to be done here, too. I don 't
yet know how to do that, though, so I 'll just assume that something, maybe a
variable called : MOTIF, 'holds ' the necessary shape notation . GO. PT puts the
turtle at the first grid position .
" Cartoon B shows the drawing of one individual figure at any point in the
grid . I 'll assume that this can be done by using whatever is inside : MOTIF . My
notation
will
be : PAINT
: MOTIF . (Still
don 't know
how .) PAINT
will
take the
turtle from its current grid location, draw the little shape inside : MOTIF, and
then return the turtle to the grid location on which PAINT found it . So some kind
of state transparencymust be respected by PAINT .
" Cartoons C, D, and E sketch
the movement
of the turtle
from
one column
to
the next. The turtle must move over to the next column until it has completed all
the columns of anyone row . To do this, the turtle needs to pick up its pen, turn
right 90, move forward the between-columns distance, turn left 90, and put down
its pen . I'll call this procedure CSTEP, for olumn ~
ping . CSTEP's single
argument will be the distance between columns .
" Cartoons F, G, H, and I sketch
the movement
of the turtle
from
the end of a
finished row to the beginning of the next row, if an additional row is required .
Cartoon G shows the turtle, after lifting its pen, moving left to the x value of the
starting point, : POINT . The turtle then turns right 180 and goes forward by an
amount equal to the between-row distance. The turtle turns another right 180 and
puts down its pen. The name of this procedure will be RSTEP, for row ill2ping .
RSTEP's single argument will be the distance between rows ."
171
Chapter5
Story board cartoons into Logo notation
Everything that the illustration student said above is correct. Her intuition was
very good and her idea about PAINT : MOTIF (before she knew about lists) is
very elegant. Let's use her story board "characters" and translate them into
formal Logo notation.
The procedureto set up the upper-left-hand starting point has already been
written . It's GIVE . PT. Our procedure GO. PT sends the turtle to the starting
place.
What about PAINT :MOTIF? What is :MOTIF?
Let's think of : MOTIFasbeinga list of the Logocommandsthat will draw
the neededfigure. For example
, supposewe want a grid madefrom individual
stars with 7 points. We could make the value of : MOTI F be a list like
[STARGON
7 10 . 5] . How do we then"paint" this list?
Painting the :MOTIF list
We
are
already
command
We
could
could
list
be
simply
[ something
the
familiar
]
as
follows
used
say
is
with
RUN
:
to
Make
REPEAT
the
MOTIF
REPEAT
[ something
:
get
the
1
] .
sure
the
n
list
: MOTIF
So
we
[ Logo
painted
.
can
turtle
is
A
answer
where
Here is an example of RUNninga : MOTIF list :
172
. 5]
-
shorter
then RUN the list that defines the motif .
MAKE"MOTIF [STARGON
7 10
RUN :MOTIF
commands
-
of
saying
question
want
construct
drawn
way
the
you
or
]
on
the
This
screen
.
REPEAT
of
the
.
motif
how
to
1
to
paint
be
,
and
Rectangular and Random Grids
Don
is no
the
' t forget
problem
turtle
and
how
it found
to ask
keyboard
, to place
the
: MOTIF
variable
value
of
: MOTIF
;
used
list
must
because
be state
this
transparent
procedure
. There
always
leaves
it .
procedure
the
GIVE
STARGON
with
MOTIF
a tiny
on
To
the
this
where
typed
;
, that
about
Let 's write
TO
, though
that
results
the
elements
of the
: MOTIF
list
into
list, and
to make
the
be the
list
be
.
. MOTIF
set
up
by
the
the
PRINT
[ Give
PRINT
MAKE
[ The
" MOTIF
master
the
Logo
grid
that
- building
commands
shape
commands
READLIST
must
will
be
procedure
that
be
define
state
.
the
transparent
shape
]
]
END
To verify what we have done so far, type GIVE . MOTIF and then respond
with
a series of state -transparent
Watch the turtle . Everything
Let 's name the master
Logo commands . Next, type RUN
: MOTIF .
OK ?
procedure
that will
put
the pieces of the grid
procedure together FLAG . FLAG will need four arguments :
: COLS
: ROWS
: CDIST
: RDIST
-
number of columns
in the grid
number of rows in the grid
distance
between
the grid ' s columns
distance
between
the grid ' s rows
173
Chapter5
Before we write FLAG, we can write the much simpler CSTEPand RSTEP:
TO CSTEP : C
; To move the turtle
; The between - column
PO RT 90
FD :C
LT 90 PD
END
over one column .
distance
is : C.
TO RSTEP : R
; To move the turtle
from the end of one row
; over and then down to the beginning
of the next .
; The between - row distance
is : R.
PU SETX FIRST : POINT
RT 180
FD :R LT 180 PD
END
We can now easily fit the pieces together .
TO FLAG : COLS : ROWS : CDIST : RDIST
; To create a rectangular
grid flag .
; : POINT holds the x - y starting
position
and
; : MOTIF holds a state - transparent
shape .
GO. PT
The circle notations used above are transposed into the REPEAT commands
of the completed FLAG procedure below . Notice that one REPEAT is "nested"
inside another REPEAT. This REPEATnesting copies the circle nesting above.
174
Rectangular and Random Grids
TO FLAG
: COLS
;
To
create
;
: POINT
has
;
: MOTIF
has
: ROWS : CDIST : RDIST
a rectangular
grid
flag .
the x - y starting
position
a state
transparent
shape
and
in it
.
GO . PT
REPEAT
: ROWS
[REPEAT: COLS [RUN :MOTIF CSTEP : CDIST] -
END
RSTEP : RDIST ]
That 's it . The compactness of the FLAG procedure is possible because we
used lists for " holding " our MOTIF description, nested REPEAT commands, and
short, support structures - GIVE . PT, GO. PT, GIVE . MOTIF, RSTEP, and CSTEP.
But don 't overlook the difficulty
of understanding
that double repeat
operation . Try getting an intuitive feel for it by running FLAG with STEP turned
on; watch carefully what happens.
Did you rejoice that none of the procedures associated with FLAG used
recursion ? The REPEAT construct and recursion methods are often alternative
ways of accomplishing a modeling task. The choice between the two approaches
is often a personal one; one method may simply seem more aesthetically
pleasing to you for a specific problem . Occasionally, you may feel strongly that
recursion is the right visual metaphor for what you are modeling and other
times that it is not . Exercise 5.2, at the end of this chapter, asks you to
restructure FLAG using recursion, avoiding all uses of REPEAT. You should then be
able to make your own comparisons between these alternative styles.
On the next page you will see an exploration of grids made up only of
squares. Can you guess : MOTIF's value for each of the illustrations ?
State transparency in the MOTIF list
The FLAG-produced grids on the previous page all used either CNGONor CONGON
in their MOT I F lists . Remember how careful we were to design those two
procedures so that they both left the turtle in the same position in which it was
found ? This is state transparency. If you include procedures in a FLAG MOTIF list
175
,
Chapter5
Rectangular grids composed of squares
00000
00000
00 <> <> <>
0 0 00 0
176
Rectangularand Random Grids
that are already state transparent, everything is fine . If, on the other hand, you
wish to make a grid design from a non -state-transparent procedure you have
some additional work to do. Let 's review these ideas by going through the
exercise of turning a non-state-transparent procedure into a state-transparent one
and then making grids with it . Suppose we want to make a grid ' with a teepeeshaped figure like the following :
.
.
.
:
.
.
.
.
.
.
.
'
.
.
.
Here is a procedure for drawing the teepee shape:
TO TEEPEE : SIZE
RT 30 FD : SIZE
RT 120 FD : SIZE
END
This procedure is not state transparent because it does not return the turtle
to its original position . The starting and ending positions of the turtle are shown
below .
.
.
.
.
.
.
.
.
. . .. . b " . "
.. ..~..... . .,..<:]...
.
.
.
177
Chapter5
There are two simple ways to make TEEPEE state transparent . The first is
the most obvious : simply move the turtle backward to where it began. Call this
procedure TPI .
TO TP1 : SIZE
; First
approach
RT 30 FD : SIZE
RT 120 FD : SIZE
BK : SIZE LT 120
BK : SIZE LT 30
END
to
making
TP state
transparent
.
This method doubles the length of the procedure, and the additional
length obscuresthe procedure's design. Proceduresshould be as short and as
descriptive as possible; that's good modeling style. Perhaps there is another
way to make the statetransparencyof the proceduremore obvious.
We really want to say something quite simple to the turtle : "Remember
where you started from- and in which direction you were heading- and then go
back to that position after you have finished drawing the teepee." The second
approach does this explicitly; but we need two new supporting proceduresto
make it work nicely.
The procedureRECORD
. pS assemblesthe turtle's current x-y position and
heading into a three-elementlist called : Ps . The operation of RESTORE
. pS
shouldbe obvious.
TO RECORD
. POS
; Records the turtle ' s current position
MAKE "pS ( SE XCORYCORHEADING)
END
state
.
Note : when the command SE has more than two arguments, as in the
situation above, parentheses must be placed before SE and after a space left
behind the last argument . Verify this in your own Logo manual .
178
Rectangular and Random Grids
TO
RESTORE
. POS
;
To
restore
;
recorded
in
PU
SETXY
FIRST
SETHEADING
the
turtle
:
:
LAST
to
POS
the
position
state
.
POS
:
FIRST
BF
:
POS
POS
PD
END
Here, then, is an obviously
state
-
transparent
teepee
maker
:
TO TP2 : SIZE
RECORD
. POS
TEEPEE : SIZE
RESTORE
.POS
END
You
will
find
many
more
uses
for RECORD
. POS and
RESTORE
. POS .
A Mayan -inspired grid that vibrates
I hope the square and teepee grids make you think about rectangular symmetries and that you are now impressed with the help Logo models give us in
exploring visual ideas. I will admit, though, that these grids are not the most
exciting images to look at. They lack surprise and " quirkiness ." They are, in fact,
too balanced and too symmetric . So I am pleased to present a student -designed
grid that exhibits an odd, surprising quality - within a symmetric framework .
I' ll let the student
describe
his own
work .
" I wanted to make a grid from square-ish spirals that wrapped back on
themselves. I needed to use the RECORD. POS and RESTORE. POS procedures
because I wasn't sure where my spiral would end up, and I had to make them
state transparent . I came up with the Mayan description of the grid only after I
looked at my results . I was surprised about the vibrating quality of the grid ; I
tried to explore the source of the vibration by changing the arguments that I
gave to my procedures."
179
Chapter5
Here are the two procedures the student needed for his : MOTIF list :
TO
SPIRAL
IF
: LEG
: LEV
<
: FAC
1
REPEAT
2
SPIRAL
( : LEG
[ STOP
[ FD
: LEV
]
: LEG
-
: FAC
RT
)
90
]
( : LEV- l )
: FAC
END
TO LAY
: LEG
.
,
Position
.
,
intervals
: FAC
4
REPEAT
4
: LEV
spirals
at
around
[ RECORD
a
. POS
SPIRAL
: LEG
RESTORE
. POS
SPIRAL 90 15 12
180
90
15
degree
point
-
END
LAY
90
central
12
..J
L
I
I
: FAC :LEV
RT 90]
.
Rectangular and Random Grids
Two Mayan grids
For both illustrations below, the : MOTIF list was [LAY 30 5 12] . The FLAG
arguments were 4 3 65 65. The reversing pen color was used for the second
illustration .
181
Chapter5
Adding random components to rectangular grids
One effective way to make rectangular
designs more visually
entertaining
add limited
amounts of randomness
by exploring
Exercise 4.9: " Design a procedure that will place a certain number of
STARGONsrandomly
to them . I would like to introduce
is to
this idea
on the screen (a random rectangular grid )."
How did you approach this ? No doubt you looked up the RANDOMcommand
in your Logo manual and found that it could produce " random numbers " ; but what
are those ? The exercise of generating
random grids will give you a visual model
of what these random
look like . You need a good feel for these
things actually
random numbers because we will be using the idea of randomness for the rest of
this chapter and in several future chapters .
Randomnumbers
The Logo command RANDOMrequires a single, integer argument . Logo then
produces an integer in the range from 0 to the argument minus 1. For example,
RANDOM4 would produce a single number that could be 0, 1, 2, or 3. Each of these
numbers is equally likely to be returned by Logo, and it is very unlikely that you
could correctly guess what Logo would respond every time you type RANDOM
argo
Guessing a single RANDOM4 outcome correctly is tough . It is even tougher to
predict correctly the pattern of the numbers given by Logo if you should type
RANDOM4 over and over again. There may indeed be a pattern, but it cannot be
guessed easily before it occurs. Unless, of course, you are exceptionally lucky,
have ESP, or know the model that your version of Logo uses to generate random
numbers.
Let's design a Logo procedure to generate a series of random numbers so that
we can look at them . Here is an example of such an exploratory tool .
182
Rectangular and Random Grids
TO RANDOM
. NUMBER: RANGE : N
; To PRINT : N random numbers in the
IF : N < 1 [ STOP]
PRINT RANDOM ( : RANGE
+l )
RANDOM
. NUMBER : RANGE ( : N- l )
END
Note
on
the
several
screen
SIN
43
random
for
the
the
or
that
random
number
Random
screen
random
need
have
be
to
to
using
. You
calculation
.
never
to
)
be
procedure
.
. Other
Second
,
First
,
larger
than
as
large
as
the
arg
,
say
-
,
: RANGE.
use
of
PRINT
to
display
of
this
would
be
PRINT
examples
remember
be
0 to
tha
~
RANDOM
I . If
you
: RANGE
arg
want
,
it
you
to
will
outputs
a
be
possible
have
to
use
not
just
.
locations
random
different
a
of
+ l
numbers
correspond
this
can
: RANGE
need
two
about
variable
number
(
next
value
PRINT
RANDOM
We
things
range
decide
how
but
random
numbers
the
x - y
numbering
have
RANDOM
for
function
screen
each
dimensions
to
make
position
of
,
some
can
positions
convention
maximum
may
the
let
me
adjustments
be
on
, and
the
the
screen
show
used
to
your
screen
range
of
these
. Because
you
the
generate
. Obviously
we
numbers
must
different
screen
size
screens
that
I
will
:
"2..r;-
0
,0
-, " 00
'"2.. 00
- \ '2..5""
183
Chapter5
Notice
that
the
x coordinates
of
run
from
- 125
+ 125 . To
requires
negative
as
produce
negative
numbers
coordinates
Generalizing
What
need
Let 's design
range
how
do
we
is
a
, we
be
Logo
range
a
from
- 200
random
clever
.
that
will
to
+ 200, and
position
numbers
a bit
that
procedure
may
include
procedure
that
improves
new
procedure
RR
for
numbers
this
random
must
run
pick
as positive
a new
the
possible
less
here
a defined
Call
screen
. But
on
since
this
RANDOM
the
y
screen
will
not
RANDOM
we
within
well
to
my
and
the
do
it ?
. RR will
need
second
to
two
negative
positive
integers
as
RANDOM
random
numbers
within
a defined
arguments
, the
first
to
the
end
. Call
the
higher
might
help
. We
than
and
higher
than
: HI
. We
' +\ t
-
f
well
number
extends
a drawing
never
as
a random
and
define
upon
Perhaps
: LO
produce
-
want
random
want
LO
define
them
: LO
to
do
this
.
range
lower
and
of
end
: HI
numbers
that
are
these
numbers
here
:
-
~ \
-
.
of
. But
never
-
+
l...o
We
no
could
express
less
than
: LO
Perhaps
we
could
: HI
and
: LO
We
already
difference
between
RANDOM1 +
184
and
and
no
this
a little
more
than
generate
random
then
these
know
: HI
( : HI
add
how
and
to
: LO
: La )
differently
: LO
plus
numbers
to
by
the
saying
difference
between
0 and
that
we
want
between
the
numbers
: HI
and
difference
: LO .
between
: LO .
generate
using
random
RANDOM
:
numbers
between
0
and
the
Rectangular and Random Grids
This expression will produce numbers never smaller than 0 and never bigger
than ( : HI -
: La ) . The random number we want, the numbers that fall in the
range between : La and : HI, could be found with :
: LO + RANDOM1 + ( : HI
: La )
ure :
Wethushavetheideaweneedto writetheproced
RR : LO : HI
To generate
a single
random number
in the range defined
by : LO and : HI .
OP
( : LO + RANDOM1 + ( : HI - : LO
TO
.
,
.
,
END
Note the appearance of the new command OP, short for OUTPUT. Look it up
in your Logo manual . Why do we need OP in the procedure RR?
Experiment with RR. Notice that it works fine for negative numbers . For
example :
RR - 100
RR - 100
- 50
50
But what 's wrong with the following ?
RR 100
- 100
Using RR to generate random screen locations
We can easily
generate
a random
screen location
for my screen with
the
following :
SETXY (RR - 200 200) (RR - 125 125)
Let's use this SET idea to send the turtle to a random position on my screen.
185
Chapter5
TO GO. RANDOM
. SCREEN
; To position
the turtle
at a random x - y screen
PU SETXY (RR - 200 200 ) (RR - 125 125 ) PD
END
point
Putting the random grid procedure together
We can now put the pieces together. GO. RANDOM. SCREENsends the turtle to a
random screen position . Next, we want a : MOTIF placed at this point . Then we
send the turtle on to the next random position with GO. RANDOM. SCREEN. The
: MOTIF to be drawn at each stopping position can be defined, just as we did in
the rectangular grid exercise, as a list of Logo commands . We call the master
procedure that combines the pieces RANDOM
. PLACER.
Let's build a few : MOTIF lists to test out RANDOM
. PLACER.
MAKE" ORNAMENTl[STARGON
5 20 . 5]
MAKE" ORNAMENT2
[CNGON4 30 CNGON30 30]
1 or RUN : ORNAMENT2
. Remember
Now we could tell Logo to RUN : ORNAMENT
that this is equivalent to typing:
RUN [ STARGON
5 20 . 5]
RUN [CNGON4 30 CNGON30 30]
Here is what these two : MOTIF lists look like :
""i:?
186
Rectangularand RandomGrids
Naming is power
Much of Logo's power comes from its ability to make a name, like : ORNAMENT
1,
have the value of- or be equivalent to- something else that is much more
complicated . This super shorthand is enormously useful . Once we decide how to
do something in Logo, we give it a name. Then all we need to remember is the
name of the things to be done and not the complicated bits and pieces actually
required to get them done.
Building the visual model of random numbers
No
more
TO
talk
RANDOM
here
it
is
.
. PLACER
;
To
;
: MOTIF
IF
: T
GO
. RANDOM
RUN
;
place
the
: MOTIF
shape
randomly
<
1
[ STOP
: T
list
on
given
the
screen
as
the
: T
argument
times
.
]
. SCREEN
: MOTIF
RANDOM
. PLACER
: MOTIF
(
: T -
l
)
END
Visual experimentation
Try running this routine by typing the following :
RANDOM
. PLACER : ORNAMENTl 25
~
* ~u W
u {:?
~
~
~
Uu
187
Chapter 5
RANDOM
. PLACER : ORNAMENT225
()
Generalizing
I
the
was
surprised
expected
to
figures
that
often
of
see
when
I
" mess
pleasing
and
from
boring
if
have
geometrical
,
little
screen
,
for
Second
which
the
entire
the
I
character
of
a
at
.
nice
I
could
blend
some
of
,
random
Instead
I
of
.
The
balance
lively
a
character
another
were
seen
,
.
First
it
would
let
as
a
's
,
wraps
found
random
.
of
the
the
subdued
.
I
of
grid
of
some
others
design
collections
placement
in
and
grid
one
of
way
of
giving
life
clean
up
the
random
element
the
window
of
screen
be
able
randomly
the
randomness
addition
around
to
this
The
an
of
like
are
.
be
that
,
figures
screen
. The
grids
margins
example
,
looked
: MOTIFs
Some
general
at
little
.
can
all
: MOTIFs
first
distinctive
the
already
before
more
of
produced
structure
But
"
I
was
clusters
grids
while
Many
were
.
wondered
you
saw
tangled
others
and
188
I
what
: MOTIFs
neutral
my
by
a
composite
of
machine
different
unbalancing
a
placer
were
quite
grids
random
.
If
I
little
a
:
figure
finishes
at
to
change
the
.
could
So
far
define
,
of
we
to
a
procedure
I
don
't
is
too
near
the
top
size
have
the
the
rectangular
randomness
animation
placer
tidiness
If
bit
and
and
placed
.
a
into
into
static
design
and
like
the
the
a
.
make
it
overlapping
bottom
of
the
" window
"
into
.
of
been
" window
the
using
the
size
"
and
define
size
of
Rectangular and Random Grids
its location on the screen, I could have several " fields " of randomly placed
: MOTIFs on one screen. Here is a sketch of what I have in mind .
Because wind owing
randomness
to structured
might
be useful
when
we attempt
patterns, let 's start working
to add bits of
on this window
business
first .
Defininga windowasa list
Let 's define the size and placement
let 's use the following
of a window
in terms of a list . Arbitrarily
,
convention : the first element in the list represents the y
value of the top of the window, the second element is the x value of the right
edge of the window, the third
element
is the y value
of the bottom
of the
window, and the fourth element is the x value of the left edge of the window . I
started at the top of the window
and went around it in a clockwise direction . My
screen would be represented as a window
MAKE" MY. SCREEN [ 125
Here is a procedure
200
with the following
- 125
that will take a window
characteristics :
- 200]
list as its single argument
and draw
the window on the screen.
189
Chapter 5
TO BOX : WINDOW
; To draw the outline
of a rectangular
; window list
on the screen .
RECORD
. POS
PU SETXY (LAST : WINDOW
) (FIRST : WINDOW
) PD
; Positions
turtle
at top left - hand corner of window .
SETX (FIRST BF : WINDOW
)
; Draw top of window
SETY (LAST BL : WINDOW
)
; Draw right
edge of window .
SETX (LAST : WINDOW)
; Draw bottom of window .
SETY (FIRST : WINDOW
)
; Draw left
edge of window .
RESTORE.POS
END
Note that BOXbegins by positioning the turtle at the top left -hand comer of
the window and then draws the window by moving the turtle around the
window in a clockwise fashion . BOXis state transparent, too. BOX : MY. SCREEN
will draw a nice frame around whatever images are on my screen.
Eliminating
theoverlat2
of:MOTIFs
near
thewindow
edge
~
Suppose that the : MOTIF that we are using is:
MAKE " PIP
[ STARGON5 20 . 5]
If we were careful never to let : PIPs be drawn any closer than 20 units from
each of the four window edges, we would never have any edge-overlap problem .
We could just make the window smaller by 20 units in each of the four directions .
A picture helps:
~ ~t'
.
.
.
.
~
.
.
.
"
.
t
~
"
'
.
.
.
.
'
.
:
E~
; cI, vc: I-.a..tA :~
'. . . . . . . . . . . . . . . . . . :
"::: W 1.oJ' V0 voJ
190
.
~
~c. a. ff "J
~ ~,.,.. ~
Rectangular and Random Grids
But how do we know how much to reduce the window
is changed
to something
else ? If we knew the number
when the : MOTIF list
of the element in the
: MOTIF list that referred to the " radius " of the : MOTIF to be drawn, we could
pluck out this element and use it in our calculations . We are now at a stage in
Logo when
following
Logo notation
upgraded
is easier to " talk " than English . So look
at the
RANDOM. PLACER . I have called this new, extended version
RANDOM. PLACER . X.
: MOTIF : WINDOW : N : T
: T : MOTIFs within
a given
;
: WINDOW
with
no
overlaps
at edges .
of the element within
the : MOTIF list
;
: N is
the
number
" radius " of the : MOTIF shape .
;
that
defines
the
" BOTTOM " LEFT)
( LOCAL
" TOP
" RIGHT
1 : WINDOW
) - (ITEM : N : MOTIFJ
MAKE
" TOP
( ITEM
2 : WINDOW
) - (ITEM : N : MOTIF
MAKE
" RIGHT
( ITEM
3 : WINDOW
) + (ITEM : N : MOTIF
MAKE
" BOTTOM
( ITEM
4 : WINDOW
) + (ITEM : N : MOTIF
MAKE
" LEFT
( ITEM
TO
;
RANDOM
To
. PLACER
randomly
.X
place
,
J
,
J
REPEAT
:T
[ PU
-
SETX
RR
SETY
RR
PD
RUN
: LEFT : RIGHT
: BOTTOM: TOP
-
-
-
: MOTIF]
END
Note that the procedure GO. RANDOM. SCREENhas been incorporated into
the body of RANDOM. PLACER . X and that a REPEAT statement has replaced
recursion . I think the procedure " reads" well and needs no more explanation . So
let 's try it out .
191
Chapter5
Random grids willi no edge overlap
192
Rectangular and Random Grids
Kandinsky grids
Wassily Kandinsky (1866-1944) was born in Moscow but trained in Munich . He
totally abandoned realistic art for the abstract, a form he consid ~red to be more
spiritual . He made great use of simple geometric forms placed within
frameworks that could be labeled "randomish ."
A good example of such work is " Several Circles, No 323," reproduced on
the next page. The original painting is 1.4 meters square, and the circles glow
with translucent light, not at all like this tiny and opaque reproduction . It is
enormous and transparent . I have also included Kandinsky 's pen-and-ink study
for this painting .
Stare at this poor reproduction for some time or, far better, go out and find
yourself some Kandinsky reproductions on postcards.
On the page following the reproductions, you will see a few of my Logo
attempts to simulate Kandinsky 's " Several Circles ." They are, of course, pale
imitations, but that is not the point . Now it 's your turn . Look at this painting
and try your best to simulate several of the visual ideas expressed within it .
There is more going on than just randomly placing circles.
193
Chapter5
Kandinsky circles
194
Chapter5
Random grids with multiple windows and multiple motifs
Look back at the random grids . There is no single focus of attention, no single
place that immediately
attracts the eye in any of these designs. A single focal
point isn't always wanted in a design, but let's experiment with trying to place
one within
a randomized
The following
pattern .
experiment is my own . You can certainly come up with
different approaches, though your exercise should have the same goal as mine,
namely, exploring the visual idea of focusing random grids.
I tried to focus a random grid by introducing two different sizes of the same
shape (one large square versus many small ones) and by differences in placement
(one large window for the small figures and one smaller window for the large
figure ). I divided my screen into two windows, one on top of the other.
MAKE
MAKE
" T . FRAME
" B . FRAME
[ 120
[ - 40
140
140
- 40
- 120
- 140 ]
- 140 ]
;
;
The
The
top
window
.
bottom
window
Here is a picture of the two windows, using the BOXprocedure .
BOX : T. FRAME
BOX :B. FRAME
196
.
Rectangularand RandomGrids
Here
are
MAKE
;
two
: MOT
" ORNAMENT3
A
small
MAKE
;
the
larger
that
[ CONGON
square
" ORNAMENT4
A
IFs
filled
I will
4
use
5
:
1
[ CONGON
4
30
rimmed
in
black
square
4 ]
completely
with
1
black
.
5 ]
.
And the procedure that will carry out the experiments :
TO R. FOCUS. DEMOl
CG RT 45
RANDOM
. PLACER. X : ORNAMENT
3 : T. FRAME3 20
4 :B. FRAME3 1
RANDOM
. PLACER. X : ORNAMENT
END
Here is my first experiment (the result is shown on the next page):
BOX : T. FRAME
BOX :B. FRAME
R.FOCUS
. DEMOl
CG
R. FOCUS
. DEMOl
CG
R. FOCUS
. DEMOl
I then decided to look at the visual impact of a few modifications
one focusing
idea (two windows, two different
sized
: MOTIFs
to this
of the same
shape ). Here are my changes in the experiment . Notice that the two windows
are now vertical
rather than horizontal .
MAKE " L . FRAME [ 120
MAKE " R. FRAME [ 120
70 - 120 - 140 ]
140 - 120 70 ]
BOX : L . FRAME
BOX : R. FRAME
TO R. FOCUS
. DEMO2
CG RT 45
RANDOM
. PLACER
.X : ORNAMENT
3 : L . FRAME3 20
4 : R. FRAME3 1
RANDOM
. PLACER
.X : ORNAMENT
END
197
Chapter5
Focusedrandom grids #1
aa
a
a
a
a
a
a
a
.
a
a
a
a
a
a
D
a
a
a
.
a
a
a
-
.
.
a
a. a
a
a
a
a
a
D
a
a
a
.
a
aa
a
a
a
a
a
~
a
a
.
a
a
D
198
Rectangular and Random Grids
Here is my second experiment
(the results are on the next page ) :
BOX :L . FRAME
BOX :R. FRAME
R. FOCUS
. DEMO2
CG
R. FOCUS
. DEMO2
CG
R. FOCUS
. DEMO2
Addingrandomto theregular
A good place to begin on this venture is to look at the Dutch painter Piet
Mondrian . Did you try Exercise 4.10? There I asked you to select a few examples
of Mondrian grid painitngs, study them, characterize the grid themes, and
translate your characterizations into Logo procedures.
I selected the painting " Compositie met kleurvlakjes ill . 3" of 1917. I am
sorry you cannot see the colors- pale blue / gray, oleander pink, and butter scotch- though you can see the shapes and their placement.
Here is what I said to myself . "Those boxes are all upright and almost on a
rectangular grid . The dimensions of the boxes themselves are randomly changed
in both height and width, but I will simplify that a little, altering them only in
the height dimension ." How to do it ?
199
Chapter5
Focusedrandom grids #2
.
D
.
.
a
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
.
.
.
.
D
.
.
.
.
. .
.
..
.
D
.
. ..
..
.
.
.
.
.
.
.
.
200
.
Rectangular and Random Grids
" Suppose we start with a regular, rectangular grid . The turtle arrives at a
point, but before we draw anything, we randomly 'perturb ' the position a little
in the x-direction and a little in the y-direction . Then we draw a box that has
itself been perturbed a bit in the height direction . Then we go back to the
arrival point and let the regular grid machine move us to the next point, and so
forth . . . ."
The following procedure mirrors this description . Some samples are shown
on the next page, along with the real Mondrian .
TO
.
,
M
: E
: DH
To
. BOX
draw
a
Mondrian
The
x
position
y
position
: DX
: DY
box
based
the
box
on
current
x
-
y
position
.
.
,
for
found
is
.
number
,
from
the
range
-
: DX
+
to
: DX
by
adding
to
current
by
adding
a
random
x
.
.
,
The
~.
number
for
from
the
The
height
from
the
range
The
width
of
box
range
of
the
the
box
: DH
to
box
: DY
is
is
found
to
+
equal
+
is
: DH
: DY
to
to
: E
a
current
y
plus
a
random
random
.
number
.
always
equal
to
: E
.
" HT
~ .
LOCAL
the
" HT
~ .
MAKE
: E
. POS
~ .
RECORD
+
RR
( -
: DH
)
: DH
PU
SETX
( XCOR
+
SETY
( YCOR
+
RR (- : DX) : DX)
RR (- : DY) : DY)
PD
REPEAT 2 [ FD : HT RT 90 FD : E RT 90 ]
RESTORE.POS
END
The next operation is to place M. BOX - with appropriate arguments - into
a : MOTIF list and then use FLAG to grid the whole affair . Note : M. BOX is state
transparent .
Probabilistic selection of : MQTIFs
The Mondrian
boxes exercise was a start toward
the integration
of random
elements into defined geometries . Let 's look at one more attempt at this kind of
integration
before going on to the exercises of this chapter .
201
Chapter 5
and two grids of Mondrian
boxes
00 DO D
DO D DO
DO ODD
0 DD 0 D
DO ODD
DO ODD
DODD 0
A real Mondrian
0 DD 00 DO
ooDDO DO
D
0 DDDDD
0000
DO D
D 00 DODD
202
Rectangular and Random Grids
Suppose we want to produce a regular rectangular grid from several
: MOTIFS, but we want the selection between alternative : MOTIFs at any point to
be probabilistic . That is, at any arrival point in the grid, we would like the
choice between drawing
one : MOT I F or another to be based on given
probabilities .
Let 's think this through using a model . Define a procedure that selects
between two lists according to a probability measure. Let the probability P 1 be
measured in hundreds units, that is, the number of times an event will occur in
one hundred chances. The probability of selecting the first list,
: L 1, should
then be : P 1 / 1 0 0, and the probability of selecting the second list, : L2, should be
1 -
( : Pl / 1OO) .
TO P . GET : P1 : L1 : L2
; To output one of two lists
(either
: L1 or : L2 ) when the
; probability
of the first
being selected
is given by : P1 .
;
: P1 is given as times in 100, e . g ., 1 in 100 = . 01 .
IF : P1 > RANDOM100
[OF : L1 ]
<- - - ???
OP : L2
END
How does this procedure work ? The real action comes on the line with the
question marks . RANDOM100 will give one number selected from the range 0 to
99, one hundred possibilities in all . The chance that the number selected will be
0 is 1 in 100 or .01; the chance that the number selected will be 0 or 1 is 2 in 100 or
.02; and the chance that the number selected will be 0 or 1 or 2 is 3 in 100 or .03.
Suppose that we set : P1 = 3. Now look back at the marked line above. IF
: P1 > RANDOM100 will be TRUEonly if the random number generated is 0 or 1
or 2. As already stated, this will happen only 3% of the time . Therefore, P . GET
will output : L1 3% of the time and : L2 97% of the time when : P1 is set to 3.
Don 't be alarmed if you have trouble with these ideas. Probability and
statistics are difficult subjects, and our intuition generally doesn't give us much
help since it hasn't had much experience in a probability laboratory . Let's give
203
Chapter 5
your intuition a little education on how the probabilistic P . GET operates. Here
is a procedure to run P . GET1000times to "see" what happens.
TO VERIFY :P1 :A
; To test out P.GETfor any value of :P1.
; :P1 is measured in hundreds. So :P1 = 1
; would mean a probability
of . 01 or 1%.
; Always give :A a value of 1 to start .
IF :A > 1000 [STOP]
IF
P. GET :P1 [YES] [NO] ) = [ YES] ) [PRINT :A]
VERIFY : Pl ( :A + 1)
END
???
Look at the line with the question marks . If P . GET selects the first list,
[ YE S], then : A is printed out . If P . GET selects the second list, [ NO], then
nothing is printed out . : A is the index that keeps track of the number of times
VERIFY has run P . GET. Here is the first experiment . I typed VERIFY 1 1 and
the following was printed . Don't be alarmed when you get different numbers for
the same experiment . They should be different, shouldn 't they?
40
114
143
234
300
545
838
850
950
988
The interpretation : VERIFY had to run P . GET 40 times before [ YES] was
selected. It wasn 't until the 114th time that [ YES]
third
was selected again . The
[ YE S] occurred on the 143rd time, and so on. In summary, 10 [ YE S ]
selections were made in 988 runs of P . GET. That indicates a probability of 10/ 988
= .01012, very close to 1 in 100. That was just what we wanted to happen .
204
Rectangular and Random Grids
Let's try it again, this time typing VERIFY 1 1. Here's the response:
18
41
170
277
279
300
412
466
498
707
770
844
863
Your
turn
to analyze
these numbers . Change
the value
of
: Pl
and
experiment a bit more . Are you getting a feel for how random numbers can help us
select things
probabilistically
?
Probabilistic grids
Suppose we would
like to produce a grid that is a combination
of the following
two : MOTIFS :
MAKE" Ll
RUN : Ll
[ CONGON30
20
5
2]
MAKE" L2 [CONGON
30
RUN : L2
20
1
5]
0
0
205
Chapter5
Our task now is to assemble the : MOTIF list . We certainly will use P . GET
in the list to select from : Ll and : L2 . Let's start with : Pl = 50 (a probability of
selecting : Ll of .5 or 50%). You might guess that the : MOTIF list should look
like this :
MAKE " MOTIF [P . GET
The reason why
discussed
50
: Ll
: L2]
this is not correct
is subtle . Remember
when
we first
: MOTIF lists, we said that the list must contain Logo commands that
can be RUN to produce
the : MOTIF . The list above does not contain
such
instructions . How do we get them ? We have to run P . GET 50
: Ll
for one of the lists that does have the : MOT I F commands
to be output . The
following
: L2 in order
is correct :
MAKE " MOTIF [RUN P . GET
50
: Ll
: L2]
Here is a little experiment that may help you in understanding the double
run business. Type the following lines and analyze the results . How do these
resul ts rela te to the discussion so far?
RUN [P. GET 50 : Ll
RUN [RUN P. GET 50
: L2]
: Ll
:L2]
Here is another comparison
to explore . Which is correct and why ?
MAKE" MOTIF [ : Ll ]
MAKE"MOTIF [RUN : Ll ]
Designs
Below are four probabilistic ring gri ds. The first grid uses this : MOTIF list :
MAKE"MOTIF [RUN P. GET 100 : Ll
206
: L2]
Rectangularand RandomGrids
The second grid uses the same list but with the value of : P1 changedfrom 100to
0:
MAKE" MOTIF [RUNP. GET 0 : Ll
: L2]
The third and fourth grids blend the two : MOTIFs according to the list :
MAKE " MOTIF [RUN P . GET 30 : Ll
Think
about
what
: L2]
ideas are being
illustrated
here . What
does
probabilistic mixing of : MOTIFs mean in this context ? We are introducing some
amount of randomnessinto a geometric design . What exactly does randomness
mean? On the page after next are some samples that illustrate these ideas using
square grids, while those on the page following introduce a new design, a tiny
spiral, into probabilistic grids .
What is important
?
This
chapter
is
the
longest
discussing
the
machinery
random
numbers
. Don
encourage
you
objects
that
your
amount
of
the
your
visual
use
strike
amplify
only
to
aesthetic
fancy
't
the
book
needed
forget
Logo
your
vision
model
in
fancy
, and
; the
have
to
build
rectangular
, though
,
that
parts
to
machinery
I
. Why
am
satisfaction
parts
. We
model
. Be
the
that
careful
, after
perhaps
too
grids
real
explore
? Because
certain
spent
goal
the
visual
and
of
models
give
, though
, not
to
get
to
be
aimed
generate
, patterns
is
an
the
and
enormous
involved
at
to
, and
extend
you
too
time
book
can
will
always
to
this
images
this
all, is
much
with
object
of
.
207
Chapter 5
Probabilistic ring grids
00000
00000
00000
00000
00000
00000
00000
00000
208
0 0 000
0 0 000
0 0 000
0 0 000
00000
00000
00000
00000
Rectangular and Random Grids
Probabilistic square grids
00000
<><><>:.0.<>
000 <><> <><><><>~
00000
.0.<><>-0><>
00000
'<>(>-<><>.0.
<} .I( ..o.o <> O /(:);;.(>/(:)t()
.().()<><>'<'>' <>. o~ <>()
<) . 00 <>.0. <) /(><) () .(>
<>-<><>.0.0 <>OI ()<:!I<)
209
Chapter 5
Probabilistic grids with spirals, rings, and squares
The little spirals should be easy to reproduce . Can you guess at the : MOTIF lists
used for all the designs? What is happening in the last : MOTIF ? There are
three
: MOTIFs
. How
could
this problem formally .
this
be structured
? Exercise
5 .5 will
ask you
to attack
.
$0>~~ $0>~ $w ~ ~ ooo
~ $0>$0>~ $w (0) $ii > ~ 00
~ $0>$0>~ $w (0) 0 10o ~
~ $0>$0>~ $w 0 ~ OJ0 0
(OJ~ ({:I)0 \ 0 ~ . $0> $0>$ w
(OJ\ 0 ('0) 0 ( 0 ~ $;a>$0> $0>~
~ \0) 0 ~ 0 . $;a>(l~ $0>~
~ (0) 0 ~ ~ . $;a>$0>. . ~
~ . . . ~ . $;a>$0> $0>CO
)
~ . $0>. ~ ~ $;a>$0> ~ ~
~ $0>$0>~ ~ ~ (0) $0> ~ .
~ $0>. ~ ~ ~ $;a>. ~ ~
210
Rectangular and Random Grids
Exercises
There are eighteen exercises this time . They are not so easy, but you will
surprised, I hope, by how quickly
forget
be
ways to start will pop into your head . Don 't
the turtle - walk / story -board approaches
to developing
pops, though .
intuitive
brain -
'
Exercise
5.1
Go back and look at the circular grids you produced in Chapter 4. Review, as
well, the personal mark that you created for Exercise 3.6. Add some randomness
to these designs.
Exercise
5.2
Restructure the FLAG procedure using recursion techniques. A void any use of the
REPEAT command . Compare the two methods on aesthetic grounds . You might
want to define carefully in words exactly what you mean by "aesthetic."
Exercise
5.3
The rectangular
directly
grid
procedures
that we have studied
so far place one row
below another . Design a more general FLAG procedure
even -numbered
that allows the
rows to be indented by some given amount . Use either repeat or
recursive methods .
211
Chapter5
Exercise
5.4
Produce a super, razzle-dazzle demonstration of designs never seenbefore by
Earthlings using the ideas of this chapter: motif descriptions with lists,
placement of these motifs using variations of geometrical repetition rules,
random number generation, and probabilistic list selection.
During the preparation of this exercise, jot down any designrules that you
discover. llIustrate your rules with examplesof designs that "work well" and
onesthat IIdon't work at all.1I
Exercise
5.5
Generalize P . GET so that it can select any number of lists . Extend the definition
of :Pl so that it can specify the probability of selecting eachof the possible lists .
Use your generalized P . GETto produce a number of multiple - : MOTIF designs.
Exercise
5.6
Although we have designed a procedure called FLAG, we haven't designed any
flags yet . Redesign your own country 's flag so that it better represents current life
there - as you see it . You might want to find a book on heraldry so that you can
break all the established rules and traditions . Or not . Either way, keep the
iconography simple . Describe your heraldic symbols and symbolism in your
notebook.
Exercise
5.7
If
flag
you
have
a flair
for
- machine
that
will
argument
212
values
are
flag
modeling
design
established
a
for
, design
flag
the
for
a generalized
any
country
country
.
, multiple
once
the
- argument
appropriate
,
Rectangular and Random Grids
Exercise
5.8
I
found
this
Design
exercise
course
One
of
:
the
function
and
the
a
pieces
of
artwork
test
pattern
numbers
to
test
linear
provide
they
number
&
is
not
cH8
-
,
in
there
rectangular
What
a
test
Exercise
test
illustration
1962
during
tomato
too
you
some
of
an
eventual
need
is
kind
on
French
TV
test
a
Color
of
and
television
pattern
quality
of
and
black
.
The
picture
he
the
time
as
have
and
thin
lines
image
that
has
.
the
.
main
resolution
So
,
as
value
well
as
course
into
include
,
or
another
role
8
even
call
.
around
a
.
letters
character
element
tradition
scale
Channel
three
design
this
white
. Of
designed
follow
,
tuned
major
been
to
a
broadcast
viewer
need
for
slot
the
thick
not
used
.
the
, but
Be
central
circular
sure
to
fill
the
."
pattern
with
that
this
?
could
the
same
;
Pop
cans
this
want
the
.
next
Take
not
advantage
have
Art
Each
,
of
of
been
was
,
of
are
perturbed
from
.)
Your
characteristics
faces
will
-
images
the
however
the
realized
strengths
in
Warhol
may
of
message
to
eyes
exhibit
maybe
Andy
. You
the
( openness
randomly
is
movement
sameness
you
page
characteristics
many
contain
patterns
do
on
soup
I
exercise
broadcast
at
no
classroom
technicians
being
the
a
any
of
other
Logo
and
medium
.
5 .9
The
the
,
can
show
design
is
screen
design
the
,
but
they
judging
tell
of
for
broadcasting
" Traditionally
format
in
to
wall
patterns
detail
' re
-
to
colors
varied
the
preparing
usually
pattern
though
is
the
patterns
of
a
is
of
composed
of
8
fidelity
" Test
to
" Channel
first
of
pinned
Marilyn
openness
one
face
series
or
three
,
a
of
to
and
of
mouths
,
next
before
's
design
grid
.
different
-
Monroe
each
's
the
of
" Marilyn
Warhol
Warhol
produce
a
two
recall
of
,
's
rectangular
soup
can
,
done
in
grid
of
is
exactly
,
whose
.
stylized
faces
tiltiness
( Recall
expressions
you
,"
visually
of
the
eyebrows
,
etc
Mondrian
.
Don
experiment
box
't
use
too
.
213
.)
Chapter 5
Exercise
5.10
I
love
Mondrian
paintings
in
several
a
this
.
others
are
simulate
characteristics
of
Some
not
We
of
.
simulated
chapter
examples
canvas
and
.
I
.
want
you
Mondrian
the
want
with
are
's
use
rectangles
you
them
you
I
several
studying
to
of
to
of
do
Logo
characteristics
more
analysis
vertical
produced
select
the
and
by
these
several
characteristics
procedures
.
Clearly
of
this
horizontal
of
one
sort
.
bars
bars
to
of
I
include
articulate
are
colored
in
from
these
paintings
state
,
in
words
his
,
and
,
the
.
This kind of exercise in no way trivializes the work of a Mondrian . Rather,
you should have a better sense of his artistic genius after you have tried to copy
paintings like these.
214
Rectangularand RandomGrids
Two more Mondrians
I
215
Chapter5
Exercise
5.11
Islamic art offers a treasury of circular and rectangular grid designs. Although
at first glance many look complex, a second look will uncover one or two basic
motifs that are repeated over and over again according to some grid protocol .
Look through the following
illustrations ; they exhibit designs of increasing
complexity .
Find a design that appeals to you . Design a collection of Logo procedures
that can produce designs in the style of the one you have selected. Make sure
that your procedures are general enough to be able to produce a seriesof designs,
all based on a single theme. State the theme in words .
You might be able to produce a number of the illustrated tile designs from a
single Logo procedure . This exercise is very similar to the stone mason marks of
Chapter 4.
216
Rectangularand RandomGrids
Islamic tile design #1
217
Chapter5
Islamic tile design #2
218
Rectangularand RandomGrids
Islamic tile design #3
219
Chapter5
Islamic tile design #4
220
Rectangular and Random Grids
Islamic tile design #5
221
Chapter 5
Islamic tile design #6
222
Rectangularand RandomGrids
Islamic tile design #7
223
Chapter5
Islamic tile design #8
224
Rectangular and Random Grids
Islamic tile design #9
225
Chapter5
Islamic tile design #10
226
Rectangularand RandomGrids
Islamic tile design #11
227
Chapter 5
Islamic tile design #12
228
Rectangular and Random Grids
Islamic tile design #13
229
Chapter 5
Exercise
5.12
Are you beginning to see grid patterns everywhere ?
This chapter has suggested that grid -thinking is a convenient method for
finding and analyzing regular patterns . Furthermore, our work with random
components suggested that grid -thinking can be extended into the realms 'of
irregular shapes and forms . The design materials used in the chapter, however,
were selected from the created worlds of the artist and designer . The final two
exercises of this chapter suggest that grid -thinking
can also be useful in
describing ways of seeing irregular patterns in the natural world .
I have a small, seventeenth-century house located in the department of the
Sarthe, about 100 miles southwest of Paris. The Sarthe, nestling between
Normandy and the Loire Valley, is covered with forests, fields of apple trees,
ponds, streams, and marshes. During the long and mild Sarthe summer and
autumn, the meadows surrounding my tiny house are filled with the ochre and
black and white cattle that are typical of this region of France.
But most typical of the area is the ubiquitous wood stack. Every Sarthe
farm has at least one, and each stack grows larger after the annual harvest of
farm trees and hedgerows . And even though many farms are no longer heated by
wood, the Sarthe farmers continue to build new stacks. Although I have often
noticed these wood piles in a casual way, it was only recently that I began to
sketch them and to think of them as sculpture . Suddenly, I realized that these
stacks are magnificent " wood works " ; in fact, they are huge log grids.
On the next page is a quick sketch of a stack of logs. What rules might have
been used to decide how to stack the various sized logs into this big pile ? Design
some Logo procedures to generate log grids based on different stacking rules.
230
Rectangularand RandomGrids
'-
-
-
-
- ~~ - - -
Exercise
5.13
Twenty -five years ago I fled from the Chicago cold to the continuous summer of
Southern California . I lived in a funky house high in the Hollywood
Hills
overlooking polluted - yet gloriously lighted - Los Angeles . Alas, I suffered
from one great loss. While my garden was lush with tropical plants, I had no
pool . My sense of incompleteness was made only more bitter by the fact that I
looked down on a city filled with thousands and thousands of pools . The
impression of distant pools is still vivid in my mind .
Last summer I visited my Pasadena mother -in -law and her pool . One lazy
afternoon, sitting in a deck chair and still a bit high from the pool chemicals, I
studied the patterns created inside that pool by LA light hitting the rippling
crystalline water . Yes, it was pool -light grids that I saw; and one Pasadena pool
was suddenly different from all the other pools.
Unfortunately, you may not have a pool at your disposal to study, even one
at a distance. As an alternative, the basins of fountains are good ; they contain
clear water with plenty of surface disturbances . If you lack both pools and
fountains, I suggest that you look at a few paintings by David Hockney . I know
of no other painter who has so well caught Southern California pool light .
Look closely at the following
Hockney painting . Does it suggest an
approach to designing watery grids ? Can you generate a series of pool -light
grids that are all of your own making ? But maybe you would rather describe the
reflective patterns seen in rivers, streams, or lakes ?
231
Chapter5
Exercise
5.14
If you attempted the Hackney grid exercise, you may have found yourself
needing an arc drawing procedure. We can draw circles, but what about arcs?
Design a left and right drawing arc machine that takes two arguments: the
radius of the circle of which the arc is part, and the angle of the arc. Hint : the
circumferenceof any circle is equal to 2nR, where R is the radius of the circle.
The length of an arc is equal to the circumferenceof the circle from which it is
taken times the angle turned by the arc divided by 360degrees.
232
Rectangular and Random Grids
Exercise
5.15
Every season of the year has some major festival . Use Logo to help you design an
appropriate
greeting card for a fete that is coming soon . Don 't forget the
envelope; your card and envelope designs must complement each other.
The only rule for this exercise is this : produce a card that could not have
been easily or appropriately realized in any other medium . You can combine
Logo designs with other materials, however, and collages are fine . You might
want to add visual remarks with paint, inks, photographs, glitter, whatever, to
your Logo-produced images. Or you may want to cut away parts with an Exacto
knife . You can photocopy your prints onto different colors and strengths of paper,
and you can build cards into the third dimension . But whatever you create, it
must reflect the style and flavor of Logobuilt visual models .
Exercise
5.16
We have worked
wanted
only with rectangular
to place a motif randomly
windows
in this chapter . Suppose you
into a triangular
or circular
window . How
could you do it ?
Exercise
5.17
Suppose you wanted to place a motif randomly into a rectangular window, but
suppose, too, that you did not want the motifs to overlap within the window .
Any ideas?
233
Chapter5
Exercise
5.18
Are you exhausted by all this ? Or excited, uplifted, depressed, furious ? I think
it 's time for you to do some visual modeling of your moods and subjective feelings.
Pick an emotion from the list that follows and design a Logo machine to produce
images that correspond to your idea of this particular state of being : Love, lust~.
greed, enthusiasm, envy, jealousy, happiness, joy, aggressiveness, lethargy,
alertness, hunger, guilt, fury, anger, compassion, generosity, arrogance,
passivity .
In preparation, you may want to jot down the ideas, shapes, colors, textures,
and images that come to mind as you freely associate this emotion with the
contents of your mind 's baggage. As you think about your selected emotion, try to
imagine how you feel about its opposite . Thinking about an opposite or reverse
state can often focus your vision of the original state.
Let yourself go with this exercise, but be concrete; capture your ideas and
feelings graphically . Sketch fast; grab the images as they float by . Don 't worry
about how you will explain to others what you have done . Describe simply
what you see inside yourself with Logo procedures.
Consider the following . Include a two -way switch on your emotion modeling
machine . One switch position should direct your machine to illustrate the
positive side of an emotion, while the other position will show the negative or
reverse side of it . Instead of a switch, you might be happier with a dial that
would let you illustrate a series of emotional states between, say, love at one
extreme and hate at the other .
234
Chapter 6
Islamic Designs
" Know, oh brother . . . that the study of sensible geometry leads to skill in the
practical arts, while the study of intelligible
geometry leads to skill in the
intellectual
arts . . . . "
From the " Rasa'il," translated by S. H . Nasr .
Islamic designs combine circular and rectangular grids
In the last two chapters, we have been working on circular and rectangular grids .
Within these chapters, the major exercise was to decompose given designs into
their basic components so that these parts could be modeled as generally as
possible. We then went on to build models to place these parts into forms that
were either circular or rectangular . We referred to these two design aspects as
the motif and the repetition rule .
The goal of this work was to build models that produced not just a single
design but a suite of designsall based on one or more themes. The exercises at the
ends of these chapters encouraged you to take your design apparatus outdoors,
into distant fields, to find and sketch more exotic subjects. Now we turn to
Islamic art, an exceptionally rich source of sophisticated geometric designs. We
will use a selection of these fascinating patterns to test your modeling style and
then to extend it into new dimensions . Indeed, we will end the chapter with
three- dimensional designs.
Chapter6
Much
of
combination
fact
of
, these
complexity
circular
into
sensed
and
rectangular
are
often
combinations
ordered
rectangular
rectangular
and
the
. Our
job
is
most
useful
our
is
Islamic
designs
repetitions
of
multilayered
patterns
designs
modeling
in
and
that
to
are
make
tool
several
recursive
in
this
is
turn
geometric
created
by
a
design
motifs
. In
: circular
grids
are
combined
into
larger
complexity
intelligible
,
.
'
The
ability
rectangular
, therefore
this
end
let
, a
will
be
using
this
procedure
useful
as
need
another
have
a
first
element
of
the
the
original
list
,
list
, and
first
list
of
so
element
list
items
on
. How
original
whose
of
original
elements
accomplish
this
as
list
list
they
rotation
refashion
you
second
could
the
to
might
? You
remaining
236
manipulator
form
, whose
a
first
element
think
list
are
:
new
this
to
become
then
, and
list
was
the
change
third
as
the
output
here
whose
element
was
of
, and
FLAG
a
list
the
last
the
is . Suppose
element
second
element
kind
's
it
rather
than
REPEAT
FLAG
procedure
starting
x
last
list
of
element
of
the
rotation
;
is
a
keep
procedure
the
of
original
. Rotate
element
. Here
you
was
the
all
possible
5 .2
manipulators
We
the
to
general
chapter
Exercise
list
really
this
columns
a
crucial
begin
you
would
of
let
's
a
different
. They
to
methods
that
,
and
.
asked
position
Additionally
Rotating
is
ind
's
5 . We
as
place
patterns
need
it
to
the
first
allow
will
each
inden
be
use
Islamic Designs
TO ROT : LIST
;
OP
To
put
LPUT
first
FIRST
element
: LIST
of
BF
a list
at
the
end
of
the
list
.
: LIST
END
Note the presence of the command OP. What happens when the argument
given to ROT is a single-element list ? When the argument is the empty list ?
A generalized rectangular grid machine
I think you will understand the following
procedures as you read them . I
believe, too, that you will find the recursive form of FLAG to be easier to read
than the REPEAT fonn introduced in the last chapter. Do you think that " easier
to read" is the same as more aesthetic?
Here is a summary of the arguments of the revised procedure called RIFLAG
in which the RI stands for recursive and indented :
: COLS denotes column information and must be a list . Each element of : COLS
indicates the number of columns per row . For example, [ 3 2 1 ] indicates that
the first row has 3 columns, the second row has 2 columns, and the third row has
1 column.
: ROWSis the number of rows . This will normally equal COUNT : COLS.
: CDI ST is the distance between columns.
: RDIST is the distance between rows .
: J. lI denotes indentation characteristics and must be a list . The elements indicate
the amount of indentation for each row in relation to the x-position of the left most motif in the first row . Therefore, there is an indentation value for each
237
Chapter 6
row- except
thefirst. Positive
indentnumbers
meanthattheindentation
is to
theright, andnegative
onesindicate
leftwardindenting
. Forexample
, suppose
: IN is [20 10 - 10] . Thisindicates
thatthesecond
rowis indented
20unitsto
therightof thestartof thefirstrow, thethirdrowis indented
10unitsto the
rightofthefirstrow, andthefourthrow20unitstotheleftof thefirstrow.
COUNT
: INshould
normally
beequalto (COUNT
:ROWS
) - 1. Why?If we,.
wantnoindentation
onanyrow, setindentto [0] . Verifythisafteryouhave
readthrough
theprocedures
below
. Suppose
thatwewanttheoddrowsindented
by10andtheevenrowsbyO?Set: I Nto [10 0] .
The completed RIFLAG
TO RIFLAG : COLS : ROWS: CDIST : RDIST : IN
; Indented FLAG procedure with different
; number of columns per row possible .
IF :ROWS< 1 [STOP]
ROWER: CDIST (FIRST : COLS)
;
Do
a row
of
the
IRSTEP
: RDIST
;
down
to
( ROT
: COLS )
Move
RIFLAG
proper
column
number
next
row
and
( : ROWS - l )
indent
: CDIST
,
if
;
;
ROWER
IF
:N
RUN
: C
<
: C
ROWER
: C
238
1
[ STOP ]
: MOTIF
CSTEP
END
:N
separated
paint
a row of
: N images
distance
: C.
the
between
- column
To
by
images
( :N- l )
necessary
: RDIST
END
TO
of
.
: IN
( ROT
.
: IN )
IslamicDesigns
TO
PU
IRSTEP
: R
SETX
;
Move
back
,
;
point
RT
180
FD
: R
: IN
( FIRST
LT
to
then
: POINT
)
+
x - position
move
(ITEM 1 : IN )
row ' s starting
of the first
the
over
indent
amount
for
the
Chapter
5 .
next
row .
180 PO
END
TO
CSTEP
;
This
PO
RT
FD
: C
LT
90
: C
is
the
same
as
used
for
FLAG
in
90
PD
END
TO GO. PT
PO SETXY (FIRST : POINT)
END
(LAST : POINT)
Do you understand why ROT and EVAL were used in the RIFLAG procedures ?
Why must GO. PT be executed before RIFLAG?
Some RIFLAG examples
The following examples used the motif list MAKE " MOTIF [ CNGON4 20 ] .
GO. PT
RIFLAG [ 4 3 2 1]
4
50
50
[ 0]
00 0 0
00 0
00
0
239
Chapter6
GO. PT
RIFLAG [ 4 321
]
4
50
50
[ 25 50 75]
00 0 0
00 0
00
0
GO. PT
RIFLAG [ 4 5 4]
3
50
50
[- 25 0]
0 000
00000
0 <>0 <>
Starting work on tile design
Exercise 5.11 asked you to find an Islamic tile design that appealed to you and to
design a suite of Logo procedures that produced designs in the style of the design
you selected. Your procedures were supposed to be general enough to produce a
series of designs, all based on a single theme.
Let me illustrate the approach I would like to see you take by giving you an
account of my first Islamic tile exercise. Here is a design that struck my fancy . I
saw it in the classic Logo book, Turtle Geometry, by Abelson and diSessa. I
photocopied the image and pinned it over my desk.
240
Islamic Designs
Finding the minimal design elements
The dotted lines enclosewhat I consideredto be the basic design elementof the
tile pattern: a hexagonon which six V-shapedarms are stuck. I reckonedthat if
I could write a procedure to draw this basicfigure, I could put it into a : MOTIF
list and then use RIFLAG to make a tidy grid of it . The finished rectangular
design clearly needs indented rows, so the indenting amounts will have to be
calculated.
241
Chapter6
The next two sketches show the necessary geometry and trigonometry to
design the procedures that will draw the figure inside those dotted lines .
~ oo
-
.
.
.
-1') co~~o i
~I :r
A ~
Putting the geometry together
I have defined two characteristics of the basic design, and these characteristics
became the two arguments of my procedure . They are : R, the radius of the
hexagon, and : I, one of the dimensions of the V-shaped arms design.
The main procedure is PIP . It uses two subsidiary procedures, BARS and
ARMS . Can you " read " them ?
242
IslamicDesigns
TO PIP : R : I
CNGON6 : R
BARS : R : I
END
TO BARS :R : 1
REPEAT6 [ (ARMS : R : I 1) (ARMS : R : I
END
TO
ARMS
;
:F
controls
:R
;
If
: F
;
If
:F = - 1,
=
: I
: F
1,
the
the
RECORD
. POS
PO
FD
: I
LT
( 30 * : F )
FD
( : R - : I ) * COS
RT
( 30 * : F )
RESTORE
orientation
arms
the
arms
are
are
of
drawn
drawn
the
- 1) RT 60]
arms
leftward
rightward
.
.
.
PD
FD
30
: I
. POS
END
Here is PIP 60 20 :
Putting PIP into a rectangular grid
Before
wecanmakea rectangular
gridof PIP, weneedto knowthebetween
-row
andbetween
-columnamounts
. Thefollowingdiagramsuggests
howto calculate
: CDIST
, : RDIST
, andtherowindentamounts
needed
torunRIFLAG
. Doyousee
thatthedottedtriangleis an equilateral
triangle
? Theedgesareall equal
, and
theinternalanglesareeach60degrees
.
243
Chapter 6
~+T.
~
Here is a demonstration procedure ; use NEST . DEMO to watch the effect
changes in : Rand : I have on the final design.
TO
NEST
. DEMO
: R
: I
: COLS
( LOCAL
" EDGE
" VERT )
MAKE
" EDGE
( 2 * ( : R + : I ) * SIN
;
: EDGE
MAKE
;
the
" VERT
: VERT
MAKE
is
is
between
: EDGE
the
" MOTIF
* COS
distance
.
30
between
[ PIP
60 )
- column
- row
:R
distance
.
: EDGE
: VERT
: I ]
GO . PT
RIFLAG
: COLS
;
how
Note
the
( COUNT
indent
: COLS )
list
is
assembled
( LIST
( - 1 * : EDGE / 2 )
0)
.
END
A suiteof designs
based
uponasingletiletheme
On thefollowingfour pagesaresomeexperimental
resultsfromNEST
. DEMO
.
Eachdiagramhasa differentselection
of : I and: R values
. Thesmallerfigure
is drawnwithPIP : I : R, andthelargerfigurewithNEST
. DEMO:I : R.
Theactual: I and: R valuesusedfor eachdiagramarenoted.Couldyou
haveguessed
thesenumbers
?Experiment
withsomeothervalues
, includingsome
negative
ones
, andthengetonwithyourowndesignseries
.
244
IslamicDesigns
NEST . DEMOdesigns #1
PIP 36 12
PIP 10 30
245
Chapter 6
NEST . DEMOdesigns #2
PIP 30 15
PIP 25 20
246
Islamic Designs
NEST . DEMOdesigns #3
\b/j(\\
~
PIP 30 5
PIP 20 30
~ u ;~;><~~ u ~
~ u~
~o~
M
yy
~ M~~:~~~M~
247
Chapter 6
NEST . DEMOdesigns #4
Can you guess the arguments used for these two designs?
248
Islamic Designs
Another tile design exercise
Let 's go through
another
example
of dividing
an Islamic
tile design into its
component parts and writing
Logo procedures to draw them . Because your visual
sense is far more developed
now than it was when we started this game, you
should be able to decompose designs very quickly
Look
now
,
at
the
isn
' t
design
it
is
edge
the
elements
hexagon
basic
are
has
of
the
next
page
;
can
you
say
Like
many
"
quickly
how
to
do
it
#
?
It
' s
easy
?
What
basic
on
and naturally . Test yourself .
an
the
design
based
odd
hexagon
element
on
feature
?
hexagons
:
.
American
Why
do
Indian
other
you
Islamic
think
teepee
this
shapes
designs
is
are
so
?
,
Here
placed
the
the
on
each
.
*
How
outline
of
can
we
the
teepee
draw
this
is
an
figure
equilateral
?
First
triangle
,
let
' s
with
handle
the
a
triangular
teepee
shape
bite
out
.
of
The
one
side. Equilateral triangles keep popping up . In fact, the entire teepee shape can
be neatly subdivided into tiny equilateral triangles . Let's call the edge length of
these tiny equilateral triangles a. That means that the edge of the teepee shape
will be 3a.
249
Chapter 6
Islamic tile design #14
250
IslamicDesigns
Drawing the teepee shape
tQ
0
0
-rt
1
'~tQ
1
-'
~
rt
(l.
.
.
0. .
.
.
'
.
.
.
0..
0...
rh1
-10
;-.l3
jh1t
i
h1t
i
01
3
01
3
!~
\)...~0
'\..~0
IN
-'N
O
*
JI I I ..~
l .1)
Q. .
.
( I)
\ . ~ RT~
The following MAKEstatement creates a variable called : TP and makes its value
equal to a list that includes all the Logo needed to draw the teepee shape. : TP
is just another motif list . The shape will be drawn, starting from the turtle 's
start position, as shown above, and ending in the same place. So, yes, : TP is a
state-transparent list .
MAKE " TP
.
,
FD :A
LT 60
FD :A LT 120 FD 3* :A
LT 120
FD :A]
reach
point
(1 )
reach
(2)
reach
(3)
Before you try to RUNthis list, use MAKEto give : A some value. For example, try :
MAKE " A 20
RUN : TP
MAKE " A 50
RUN : TP
251
Chapter 6
Did you make any mistakes when you typed the value for : TP? If so, you
can edit_what you typed instead of starting allover again . Consult your Logo
language manual for the commands to edit names. Editing names is similar to
editing procedures.
Now let 's put the teepee shape on the edges of a hexagon . Look at the
following procedure . TPGONis a very simplified CNGON
; it only draws six-sided
polygons . It is easy to see that the edge of a hexagon is equal to its radius
because hexagons are made from six equilateral triangles .
TO TPGON:RAD
PU FD : RAD PD
RT 120
REPEAT6 [FD : RAD RT 60]
LT 120
PU BK : RAD
END
How can we modify this procedure so that those teepee shapes are placed
on the edges of the hexagon? We could express this another way . Remember,
back in Chapter 3, when we spoke about changing the quality of the edgesof
polygons ? There we changed the straight line quality of a polygon 's edge into a
kinked star edge. Later in the chapter, we installed a fractal edge. Now we
want to change the straight line quality of hexagon edges into " teepee edge
quality ."
252
Islamic Designs
Here it is:
TO TPGON: RAD
PU FD : RAD PD
RT 120
LOCAL "A MAKEitA : RAD/ 2
REPEAT6 [RUN : TP FD : RAD RT 60]
LT 120
PU BK : RAD PD
END
And here is an example of its visual output :
*
What next? We can put TPGONinto an RIFLAG. TPGONgoes into the : MOTIF
list, but then we must calculate the values for the : RDIST, : CDIST, and : IN
arguments . What we want to end up drawing is shown at the top of the next
page. But before we discuss how to carry out these calculations, let 's summarize
what we have done so far . After we summarize, we will sermonize, offering a
few rules on breaking down designs into their basic components . We might be
able to apply these rules to other Islamic designs. In preparation for all this, go
back and look again at the teepee grid .
253
Chapter6
Breaking down complex designs
When you first looked at this design, it probably looked complex ; the basic
design elements were not initially obvious . But a closer look uncovered the basic
component : six teepee shapes placed on the edges of a hexagon . Deeper
inspection showed that both the hexagon and the teepee shapes could be broken
down into small equilateral triangles . The edge dimension of these small
triangles conveniently became the basic dimension of the entire design, and we
labeled this edge length : A.
We defined the teepee shape with a Logo list ; this list was incorporated
into a procedure that drew a hexagonal composite, or swirl, of teepee shapes;
254
Islamic Designs
and finally, we wanted to make the name of this swirl -drawing procedure the
value of the variable : MOTIF . We also planned to use RIFLAG to draw teepee
swirl grids .
A small review and a few lessons
Note
the
style
problem
was
with
do
individual
the
of
Logo
-
now
represents
-
we
a
pieces
usefulness
we
smaller
or
Logo
in
that
into
procedure
commands
method
solving
down
Logo
something
drawing
the
a
the
Note
problem
broken
either
putting
to
of
the
Logo
the
all
list
.
The
the
the
features
.
final
A
complex
Each
design
visual
was
was
structured
constructed
by
.
of
method
.
elements
together
drawing
give
above
design
concept
like
followed
naming
shape
a
short
of
in
all
of
a
name
the
method
this
.
teepee
Once
we
using
,
like
a
:
but
know
TP
is
.
how
list
of
The
short
Logo
name
and
of
tidy
.
Once we name a method, we can forget how its inner mechanism operates. We
can concentrate our energies on the next problem .
Now for the rules for finding the smallest design elements of a complex
figure . Keep your eye open for simple polygonal structures . Triangles / hexagons
and squares/ octagons are ubiquitous because they fit, or " tile," together so well .
Look carefully, though . You may not see the basic polygons because their edge
" qualities " have been altered .
Finally, let 's work out the necessary row and column dimensions of these
teepee swirl grids .
The three diagrams on the following
page illustrate
the calculations
needed. We are again manipulating the elements of equilateral triangles .
Do you see that the edge of the large equilateral triangles linking the
centers of the teepee swirls equals six small equilateral triangle edges?
We called the edge of the small equilateral triangle : A. Recall that the
height of any equilateral triangle is equal to either : EDGE* SIN
60 or : EDGE*
cas 30. Why are these two forms equivalent ?
255
Chapter6
Grid placement calculations for teepee swirls
\0
E
-.~-\.
~/j~
256
Islam]c Designs
Let 's use this geometry to write a demonstration
procedure
that will fit the
teepee figures together . This routine should work for any size teepees .
TO TP . DEMO : SIZE
.
,
.
,
: COLS
: SIZE is the radius
of the hexagon
on which the teepees
will
be placed . Remember that
: A is : SIZE / 2 . : COLS must
be a list
whose elements
define
the columns
per row .
(LOCAL " EDGE " VERT)
MAKE " EDGE 6* : SIZE / 2
; : EDGE is the between - column distance
MAKE " VERT : EDGE* COS 30
; : VERT is the between - row distance .
.
MAKE " MOTIF
[ LT 30 TPGON : SIZE RT 30 ]
GO. PT
RIFLAG : COLS (COUNT : COLS) : EDGE : VERT (LIST
; Note how the indent
list
is assembled .
END
(- 1 * : EDGE/ 2 ) 0 )
Compare TP . DEMO with NEST . DEMO. Why are they so alike ? Because both
demonstration
procedures
place design elements at the vertices of equilateral
triangles .
TP . DEMO can produce designs similar to those on the next page . TP . DEMOis
generalized
only in terms of the size of the design, the number of rows, and the
number of columns per row . That 's not as interesting
beginning
as the designs shown at the
of the chapter, is it ? How could TP . DEMObe further generalized, more
in the spirit of the NEST . DEMO designs shown earlier ?
A star and saw blade design
Let's try your eye on Islamic Tile Design #4 from Exercise 5.11. Note several
things . First, note where the turtle starts drawing the saw blade . This is not
arbitrary . The turtle begins at the vertex in the saw blade that will touch each
of the vertices of the underlying hexagon. (Go back and look at the STARGON
discussion in Chapter 4 where we talked about polygon edge qualities and the
rules that govern the replacement of one kind of edge with another .) Look at the
257
Chapter 6
Teepee swirl grids
258
Islamic Designs
sketch below . The dotted figure is this underlying
hexagon . Remember that all
hexagons are composed of little triangles . Let 's have the turtle go to each of the
hexagon vertices in turn ; we can use a CNGON 6 : RAD to do that . Therefore, the
starting
place in the saw blade list must correspond
to where the saw blade
figure touches the vertices of the small, dotted b.exagon .
MAKE" SAW [REPEAT3 [REPEAT3 [FD :A LT 60]
LT 60 FD :A RT 120 FD :A RT 60 FD 2* :A
60] ]
LT
The second thing to note about the list : SAWis that it is state transparent .
Why is this necessary?
Finally, note the uses made of the nested REPEAT commands within the
list . The saw blade figure is actually a composite of a simpler form that is
repeated three times. Do you see this hook form ?
You might test yourself by writing your own alternative list structure for
the saw blade figure . Start your list at a different point or draw the figure in a
clockwise rather than a counterclockwise direction . Remember, though, that the
start of the : SAW list must correspond to the hexagon drawing procedure .
Remember that the : SAWshape is being placed on the edge of a hexagon.
259
Chapter 6
Putting the saw blade into a hexagon swirl
The following procedure, SAWGON
, is similar to TIPGON from Chapter 4. Rather
than retracing the shape of the underlying hexagon, placing the sawblades on
each edge (which is what TPGONdid ), SAWGONbegins at the hexagon's center
and moves out to each vertex in turn . Once there it runs the SAWlist and then
returns to the center. It then turns to face the next vertex and moves out to it . This
is repeated six times.
TO SAWGON: A
To place six sawblades on the edges of a hexagon .
Note that the turtle
must turn right
60 degrees
before RUNning the list
: SAW. After
RUNning : SAW
the turtle
turns left
60 degrees . The radius
of the
underlying
hexagon is : A . Why?
REPEAT 6 [ PU FD : A PD RT 60 RUN : SAW LT 60
PU BK : A RT 60 ]
.
,
.
,
.
,
.
,
.
,
PD
END
Putting SAWGONinto RIFLAG
We must now calculate the distance between rows and columns of these SAWGONs
so that they will fit neatly together . We want the hooks of the design to close
properly - one hook just inside another . The design will have indented rows, so
this amount must also be calculated.
Look at the design on the next page and compare it with the previous
teepee grid calculations . We are again faced with large and small equilateral
triangles .
The SAWGONswirls are centered on the vertices of equilateral triangles .
This geometry has been incorporated in the demonstration procedure SAW. DEMO
.
It is just like NEST. DEMOand TP. DEMO
.
260
Islamic Designs
TO SAW . DEMO : SIZE
: COLS
; : SIZE
is
the
dimension
of the
small
; equilateral
triangle
a.
( LOCAL " EDGE " VERT )
MAKE " EDGE 5 * : SIZE
; : EDGE is
the
between
- column
distance
MAKE " VERT : EDGE * COS 30
.
; : VERT is
the
between
- row distance
.
MAKE " MOTIF
[ LT 30 SAWGON : SIZE
RT 30 ]
; Why the
30 degrees
GO . PT
RIFLAG
: COLS ( COUNT
; Note
how the
indent
END
tilting
: COLS )
list
of
SAWGON?
: EDGE : VERT { LIST
is
assembled
.
( - I * : EDGE / 2 )
0)
261
Chapter 6
Composite designs that hook nicely together
262
Islamic Designs
Simplifying
the SAWGONswirl
You may have noticed
that we should modify
the SAWGON procedure
since it
draws too many SAWshapes . Several SAWsare repeated, one on top of another . In
fact, SAWGON needs to draw
only
two saw blades rather
than six for the
composite design to mesh . The two diagrams below should convince you .
*
263
Chapter6
Overlapping designs
Go back and look at Islamic tile designs 11-13 at the end of Chapter 5. Notice
that these designs look as if they were woven from a pliable material . Part of
the design passes behind other parts, and this woven quality seems to follow
consistent design rules . Can we simulate these designs with the techniques
some
we
have
To
actually
developed
start
look
interlocking
so
your
at
circle
far ?
thinking
, make
interlocking
, triangle
, and
some
sketches
polygon
rings
square
rings
of
.
a few
Here
interlocking
are
a
few
rings
. Let ' s
sketches
of
:
Suppose we want to draw these designs using Logo. Is it possible to break
the design down into smaller component parts that can be defined by lists or
small procedures? Are these basic design elements placed around some invisible
shape- as the teepeesand saw blades were placed around an invisible hexagon?
Perhaps the following exercise will give you some ideas.
264
Islamic Designs
A grid of interlocking square rings
Look
closely
at the grid
below . Would
the component
design
elements
be
different if the grid had only a single row ? Why ?
265
Chapter6
An animated assembly of square rings into a grid
Now look hard at the following .
~
266
Islamic Designs
The basic design components
The following two diagrams illustrate what we want . The first shows the basic
element and the second shows the element placed around a square.
*
*
267
Chapter6
Overlapping square rings calculations
The characteristics
the radius
that will
be needed to draw the basic design element are :
of the square rings, the thickness
of the rings, and the distance
between the rows and columns of these rings in a final ring grid . Let 's start with
equal row and column distances . The following
modeling
be happier
diagrams illustrate
one way of
this ring problem . It isn 't the only way of doing it . Perhaps you would
with
another
method . That 's OK . As long as you create " ringy "
shapes . Build a model of these shapes in a manner that is most natural to you .
r-
()~
~
\ "<>
t >IST
-
" 2.
,
~IiJ 4 $0 = .je
..E:"""t- ~1S
-s.o
- rc~
- E1
- ~!:.oJE
~ - ::.,
&~ ' C'\)&"f, (:~6) ':: ~ 'DIJ~ I ~"J 4-So
L.\"rTL-t;- e.v~ C: LE
.) ': l ~~PIl.\~ - 't>'ST12' ) J<;,-J 4-C.o
'.\' H =. -rHit ~,JE
,S~
268
Islamic Designs
Overlapping square rings procedures
The
procedures
below
individual
square
an
component
. You
should
element
TO
.
,
follow
the
, and
RINGS
the
similarity
see
around
a square
WING
: BE
State
- transparent
: LE
used
by
diagrams
on
places
the
this
between
, while
TPGON
previous
page
component
RINGS
places
an
. WING
around
and
TPGON
element
around
radius
of
draws
an
the
invisible
. RINGS
places
a hexagon
.
: TH
element
that
is
.
,
RINGS
procedure
RT
135
FD
( : BE - : LE )
FD
( : BE - : LE - : TH )
RT
FD
( : LE - 2 * : TH )
RT
90
LT
45
FD
90
.
FD
It
RT
: TH
RT
90
90
90
FD
: TH
( : LE - : TH )
END
TO RINGS
: RAD
;
Interlocking
;
: TH
;
horizontal
;
centers
( LOCAL
: TH
: DIST
square
the
thickness
and
of
" BE
square
rings
of
vertical
rings
.
the
: RAD
rings
is
,
distance
in
a
and
: DIST
between
grid
squares
,
the
the
.
" LE )
: RAD/ (SIN
45).
.
MAKE" LE ( : RAD- ( : DIST/ 2) ) / (SIN 45)
REPEAT4 [PU FD : RAD PD WING :BE : LE : TH PU BK : RAD RT 90]
PD
END
MAKE
" BE
TO RING . DEMO :RAD : TH : DIST :COLS
MAKE " MOTIF [RINGS :RAD : TH : DIST]
GO. PT
RIFLAG : COLS (COUNT: COLS
) :DIST : DIST ( [ 0] )
END
269
Chapter6
An alternative structuring of WING and RINGS
You
probably
compared
latter
elements
were
You
will
Logo
. Below
some
time
find
one
MAKE
TO
come
to think
" WING
RINGS
design
designed
to realize
is the
more
the
list
lists
alternative
the
to the
procedures
on
the
previous
between
the
two
approaches
[ RT
135
-
FD
( : BE - : LE )
FD
( : BE - : LE - : TH )
RT
( : LE - 2 * : TH )
90
LT
45 ]
: RAD
: TH
;
Interlocking
;
;
: TH the
horizontal
thickness
and
;
centers
of
90
RT
: TH
90
90
interchangeable
RT
90
. Do
-
: TH
-
-
: DIST
rings
.
the
rings
distance
of
vertical
rings
in
: RAD
a
,
grid
radius
of
and
: DIST
between
is
the
the
squares
.
(LOCAL " BE " LE)
MAKE" BE :RAD/ (SIN
45).
.
MAKE" LE ( :RAD- ( : DIST/ 2 / (SIN 45)
REPEAT4 [PO FD : RAD PD RUN :WING PO BK : RAD RT 90]
END
.
The procedureRING. DEMO
is the same for both of the approaches
270
page . Take
-
FD
.
in
?
FD
LT
( : LE - : TH )
square
square
? Why
two
as a procedure
often
other
RT
is structured
TP . The
are
than
FD
SAW and
procedures
differences
the
WING
with
and
aesthetic
FD
WING
as lists, while
that
about
element
,
you
IslamicDesigns
Three ring grids of differenIt thicknesses, with all other characteristicsfixed
271
Chapter6
Three ring grids with different separations, with all other characteristics fixed
272
Islamic Designs
Three ring grids with
II
extreme value " arguments
273
Chapter 6
Exercises
Exercise
6.1
The
TP and
saw
you
design
a single
You
would
have
equilateral
blade
designs
Logo
to
triangles
were
procedure
draw
of alternative
in a grid
by
produce
either
design
also
Start
that
in a basic
, your
together
equilateral
characteristics
characteristics
nicely
of tiny
find
these
a series
composed
procedures
designs
, equilateral
triangles
. Print
paper
may
to consider
blowing
photocopy
a sheet
over
paper
, structuring
designs
into
Carry
the
the
polygons
Exercise
6 .2
recently
by
the
Dover
design
274
with
in
? Can
words
components
you
we
the
. And
of
values
of
they
could
fitting
based
on
triangles
and
all
a large
rectangular
grid
of small
a good
grade
grid
up
onto
your
triangle
of translucent
out
experiment
Daniel
images
designs
placement
changing
design
?
new
- grid
image
tracing
tile
designs
triangle
properties
with
other
shapes
Dye 's
book
heavy
with
an
paper
and
the
translucent
on
tiny
of
,
place
. Translate
your
that
tile
together
.
Lattice
Designs
,
; I offer
you
do ?
you
tile
. Trace
same
here . Can
several
either
designs
.
several
produce
this
a pad
grid
discovered
republished
to draw
. Find
triangular
out
Which
I
machine
procedures
, by
the
. Can
.
interlocking
enlarging
draw
, all
of these
describe
. Then
could
a procedure
want
that
element
designing
. You
could
triangles
Sheets
1974 . This
use
the
book
design
procedures
shown
have
studied
with
in feeling
between
the difference
1200
methods
that
of the designs
has
are generalized
lattice
Islamic
Chinese
illustrations
of this
? See if you
the
,
chapter
enough
can combine
designs
designs
to analyze
so that
some
only
these
they
can
of the Islamic
below
. Can
you
and
those
shown
express
in
below
?
IslamicDesigns
Lattices for Exercise 6.2
DDDDDDDDD DD DD DD
DDDDDDDDD D8D
~ D8D
~ D8D
~
DDD
DDD
DDD~ ~ ~ ~ ~ [ffi
DDD
DDD
DDD D8D
~ D8D
~ DBD
~
DDDDDDDDD 8 ~ 8 ~ 8CUJ
DDDDDDDDD
~ DBD
~ DBD
~ DBD
275
Chapter6
More lattices for Exercise 6.2
O~
OOODOOOOOOOOO
B Qon
L
-
nOQQ
U~ o
O[=== ~U
-
01 I1
01
~ I I 10
10
01
I
01
1 ~
01
01
I
1
ooDu uD
~
= JD
O[:= =~JC=: ~ 0D
c::=J0d c::=J00
DO
[O~
:=[~~
:] 01
------1[4~
:=] 0
~~~~~:JL-~ O[~=~=~]
D0d c:::::::J0D
D c::] CJoD
c::::::Jo
d c::::::J0D
DO
[~~~~:=] 01
------1[4==] 0
01
276
~
D
ID
n[=::===~ O
DODDODDDDDDDDc
~
~
10
~
I
O~ n
~DoD
~
10
I
1
I
=~~
II
101
I
CJDDCJDDCJDDD
DD DD DD
Do oDD ODD DD
DbJDDbJDDbJDD
0000000000
0000000000
DDDDDDDDDDDDD
DD DD DD
Do ODD ODD DD
DDDDDDDDDD
DCJ
DCJ
DCJ
IslamicDesigns
Exercise
6.3
Every city has oriental rug merchants. Visit one of these vendors, but remember
to take your sketchbook along with you . Record several rug designs that strike
your fancy. Explore these designs with a suite of Logo procedures. Hand color the
results and place them in your notebook.
Exercise
6.4
Mostlargecities
, anywhere
in theworld, nowhaveat leastonemosque
thatcan
bevisitedby non-Moslems
. Visita localmosque
, takingalongyoursketchbook
,
andrecordseveral
motifsthatstrikeyourfancy.Later,overa glassof minttea,
exploreyoursketches
with Logoprocedures
. Handcoloryourresultsandplace
themin yournotebook
.
Exercise
6.5
Go
Work
back
on
To
design
and
look
one
of
encourage
# 12
of
at
these
the
or
you
Chapter
overlapping
on
a design
, I have
5 )
done
tile designs at the end of Chapter 5.
Islamic
of
your
included
by
own
here
a
French
.
an
overlapping
architectural
design
( inspired
student
at
by
Parsons
School of Design in Paris. It is the most elegant Islamic design done in Logo I
haveseen. The studentnevershowedme his procedures; he wanted to keepthem
"secret." He did show me a few illustrations of the componentparts he isolated
in his design. I have also included his visual investigation of the effect of
varying the width of thesebasic design elements.
277
C) V CD0)
E
CD
Cl
)
CDC
Cl)
CDo
.
IslamicDesigns
Component parts of the student design
~
== ~I'
,~'--=
=:=~ "
/~:=
""
~
-
//
//
~
//
//
""
/.\;'l---'"
,.-~'.\.cl
,.",./'.~
"'~
)
---:.
.
.
:
=
0
.
.
;
=
:
~
'~"" \-,.;//,- '"
~
.
~(--=~.). /~~::~~
Jl
.
/
~
'
A
_~\.
LJ7~
279
Chapter 6
Visual exploration
280
of different
design element thicknesses
Islamic Designs
Exercise
6.6
Celtic art used overlapping patterns extensively. Th~ forms are based,
obviously,on the directobservation
of knottedropeand othermaterials
. Try the
empiricalapproach
. Getsomerope or heavytwine and tie a few knots. Sketch
what you seeand try to reproducethe resultswith Logoprocedures
. I include
someCelticexamplesto get you started. This illustration is takenfrom Celtic
Art: themethods
of construction
by GeorgeBain(Dover, 1973
).
281
Chapter6
Exercise
6.7
One could characterize most of the work illustrated in this book so far as totally
geometric . Some of you might go so far as to claim that these designs- although
visually surprising and intellectually
interesting - are excessively geometric,
that they lack " life " and have no organic qualities .
You might be ready to ask whether the shape notation capability of Logo
can produce designs that share visual characteristics with pieces of the living
world . Chapter 7 will argue that this question can be answered "yes."
This exercise introduces a tree-drawing problem that will be developed at
length in the next chapter. I want you to think about it on your own, though,
before you see my presentation; so don 't read ahead into the next chapter.
A recursive
definition
: atreeisabranch
attached
- ~~~to
~- a
~tree
~--Branching
is not the only characteristic
others, and we will
eventually
that make trees trees ; there are many
investigate
some of them . But branching
is
perhaps the most noticeable feature of trees . Look at the sketches on the next
page, taken from a nature guide book .
282
IslamicDesigns
" .,
Goat " 'illo'"
Ilornhcam
ScssilcOak
Pcduncul31C
03k
Ah, the
branchy
of trees . So let 's start with Logo procedures
that draw
trees .
Here
be tried
branchiness
. - . -_.)':ngli,;h 1.:1111
is a simple
, but
let 's start
geometric
with
branch
. A more
complex
simple
one
.
the
first
branching
pattern
could
, (\\'',.,\''\".
T4
Let's start building a tree according to the recursive definition . Draw a
branch and attach additional branches to it . Make each successive branch a bit
smaller than the branch to which it is attached . We can describe these
attachments in terms of recursion level :
283
Chapter 6
~
)-
y
}-- -<
L ( \l'E: L I
t : """"
LCI/E
::L 3
These diagrams don't look very much like real trees yet . But remember- we
are only trying to produce designs that share some visual characteristics with
real trees; and we are starting with a single characteristic : "branchiness ."
Moreover, we have simplified branching into a geometric "Y " shape. We will
come closer to producing realistic trees as we add more real tree characteristics.
Be patient .
Your exercise is to design a recursive Logo procedure that will draw these Ybranching trees. The basic procedure, BRANCH, will draw a single branch . You
may not be surprised to hear that BRANCHmust be state transparent . You will be
asked to explain why this is so at the end of this exercise. Be warned .
Here is the BRANCHprocedure : the two arguments are as indicated in figure
1 above. Notice that state transparency is accomplished by moving the turtle
back to its starting point with turtle movement commands. Using RECORD. pS
and RESTORE. pS in this situation will be discussed in the next chapter.
TO BRANCH
:A
: T
a
state
,. Draw
transparent
FD : A RT : T
FD : A BK : A
LT 2 * : T FD : A BK : A
RT : T BK : A
END
284
branch
.
Islamic Designs
Yourwork
Expand BRANCH into a recursive procedure that can draw the Y-shaped trees
sketched in figure 2. Allow for an argument that scales succeeding branch size
and another that controls the levels of branch attachments, that is, the level or
depth of recursion .
Hint : find the places within the BRANCHprocedure where you would like
an additional BRANCHcreated.
Finally, why must state transparency be respected in this tree drawing
design? Be specific.
285
Chapter7
OrganicDesigns
" Painting is a science and should be pursued as an inquiry into the laws of nature.
Why, then, may not landscape painting be considered as a branch of natural
philosophy, of which pictures are but the experiments?"
John Constable
Tree experiments
I will use Constable 's words to state this chapter 's goal . He suggested that
making pictures of our natural environment is an effective way to to see it more
clearly . Although I would substitute the term visual modeling for Constable's
landscape painting, I seek the same end and suggest similar means: visual
experimentation with segments of our personal world can school our eyes the
better to enjoy the richness of the larger world .
In this chapter I will offer you an essay on several characteristics of trees:
first, their "branchiness," and second, their quality of randomness -within -astructure . The illustrations should suggest other tree signatures to model . The
exercises at the end of the chapter will ask you to justify the title of this
chapter by looking at some nontree plants and beasts.
As you read through this chapter, please remember that I am showing you
my experiments with trees; this is the way I did it . Why trees? Every Logo book
has at least one recursive tree design, but few books play with the visual idea of
OrganicDesigns
recursive trees . I hope my exercises illustrate
the visual implications
how tiny tree machines can explore
of such an idea .
Simple recursive trees
Exercise 6.7 introduced you to the idea of drawing simple trees composed of Yshaped branches . Let 's complete that exercise so that we can get on with
drawing more realistic trees and other landscape designs.
Review the BRANCH procedure introduced at the end of Chapter 6. The
following procedure follows that discussion but adds an additional argument,
: B. The diagram shows how : B, the branch length, relates to : A, the trunk
length . Why might it be useful to have two length arguments, : A and : B,
rather than just : A?
TO BRANCH : A : B : T
To draw a state - transparent
FD
:A RT : T
FD
: B BK : B
LT
2* : T FD : B BK : B
RT
: T BK : A
.
,
To
Y shape .
A
END
BRANCHis reproduced again below with the symbol (* * * ) inserted to indi cate the places in the procedure where the turtle arrives at the tip of a branch.
BK
~
287
Chapter7
These are the two turtle positions where we would like to place another branch .
This is, therefore, the position
to insert some recursion
apparatus . Remember
that recursion only means that a procedure uses itself in its own definition . In
other words, a recursive procedure asks that it be run again. You might want to
refer back to the recursion diagrams of previous chapters .
Once we have made BRANCH recursive, we will want to stop the recursion at
an appropriate level . We can do this by adding an argument to control the depth
of recursion
. Because
we may
also want
the branches
to decrease, or increase,
with the level of recursion, we will need another argument
to scale the : A and
: B arguments as they are passed from one level of recursion to another . To keep
the names short, call the level argument
:L and the scale factor argument
: F.
You should find the following procedure easily understandable in terms of
Logo syntax . But you may not be able to guess exactly how Logo will draw the
shape on the screen until you do some experimenting . Since we are making .:?imple
~
s from individual branches, let's rename our procedure S. TREE. Here it is:
TO S. TREE :A :B :T : F : L
; To draw a simple, recursive Y- branched tree .
IF : L < 1 [STOP]
FD :A RT : T
FD : B (S.TREE ( :A* : F) ( : B* : F) : T : F ( : L- l ) ) BK : B
LT 2* : T FD : B (S.TREE ( : A* : F ) ( : B* : F ) : T :F ( : L- l ) ) BK : B
RT : T BK :A
END
That 's it . But to use it creatively
will take some imagination
and play . You
might even be tempted to look at a few trees before you start your exploration .
Two pages of tree experiments follow . My intent was to present a series of designs
that folded and unfolded . I began with an unfolded
and proceeded toward
a more folded -up one, a cypruslike
designs with the folding / unfolding
288
design, a Mondrian -ish tree,
RECGONsof Chapter 3.
tree . Compare these
OrganicDesigns
Simple tree experiments
~. .).
" ~
.,.-
't -
. . . ~
...-
't -
-
289
Chapter 7
More simple tree experiments
290
Organic Designs
State transparency
Let
' s
be
respected
and
go
back
to
in
down
turtle
.
with
this
fast
more
STEP
current
,
of
of
the
very
transparency
from
marks
in
needed
.
any
sense
Multiply
our
Can
,
-
is
needed
does
defined
?
?
draw
a
we
saw
is
sketch
of
it
a
?
not
the
familiar
print
many
use
one
the
during
.
recursion
.
Gothic
stone
state
State
Recall
mason
transparency
was
grids
we
are
term
what
does
the
good
place
to
making
the
design
affair
design
the
or
out
of
NGON
that
Would
at
transparency
because
And
Here
are
of
?
rectangular
again
follow
in
with
within
here
speed
you
centered
to
shapes
that
the
dealing
,
for
state
began
5
the
to
useful
,
exercises
the
lets
procedure
procedure
this
book
we
If
command
you
lag
introduced
Chapter
list
time
lag
been
this
.
come
a
sketch
.
drawing
trees
really
to
mean
?
grips
of
with
a
concept
trees
forking
the
in
a
accomplish
We
If
up
answer
This
control
.
climbs
?
two
multiply
the
Later
you
trees
producing
and
transparency
branched
far
.
why
.
when
why
and
concept
make
defines
in
transparency
state
far
.
you
insert
time
L
an
it
.
to
has
exercises
placed
But
:
first
and
as
with
dialects
this
printing
so
,
transparency
turtle
command
time
is
state
you
manual
want
explored
must
the
Logo
down
Would
3
a
some
transparency
4
.
TREE
reintroduced
we
recursively
this
.
Chapter
State
.
" Why
STEP
Logo
might
Chapter
when
Why
You
at
your
have
was
RECGON
.
state
we
in
:
Watching
the
line
. 7
supply
using
in
S
level
that
down
it
"
should
one
slow
6
?
trees
TRACE
it
idea
exercises
So
to
recursion
it
review
inside
The
slow
called
command
way
your
procedure
is
places
one
,
Exercise
procedure
of
a
Another
of
drawing
branches
through
stepping
question
tree
too
step
last
the
the
moves
you
the
have
had
new
simple
branches
one
number
a
?
of
To
branches
.
do
so
Y
Why
,
-
shaped
not
let
leaving
' s
pattern
expand
add
to
a
fork
;
this
S
.
TREE
each
single
an
branch
forking
additional
forked
design
argument
once
,
into
a
that
.
291
Chapter7
Call this extended procedure M. TREE, for .m
..ultiply
branching ~
. Its
additional tree characteristic, the number of branches from a fork, will make
M. TREE more general than S . TREE. M. TREE will be able to draw everything
that S . TREE could draw, and more . Perhaps, too, M. TREE will create designs
that look more like real trees.
Let's call the new argument : N; it will specify the kind of forking to be used
within a tree drawing . Specifically, : N defines the number of branches that
leave the fork . Let's redefine the argument : T as the .tilt angle that the first of
these branches makes with the vertical . The new argument, : BT, will be the tilt
angle Qetween branches. The following diagram illustrates these new arguments:
~ iO
".
:
: "
~T
Unfortunately this new procedure will have sevenarguments . You will need
to be organized to experiment with different combinations of these arguments .
You might want to design an EXPLORE-type procedure to run your experiments
and place multiple trees on a single screen. (Look back at Chapters 3 and 4 if you
have forgotten this powerful idea.)
TO M. TREE :A : B : N : T : BT : F : L
; To draw multiply
branched recursive
trees .
IF : L < 1 [ STOP]
FD :A RT : T
REPEAT : N [ FD : B
M. TREE ( :A* : F) ( : B* : F) : N : T : BT : F ( : L- l )
BK : B LT : BT]
RT ( : N* : BT) - : T
BK :A
END
292
Organic Designs
A few examples of multiply branched trees
293
Chapter7
Placing fruit at the branch tips
Suppose
we
drawn
by
want
to
put
M . TREE
.
Lacking
procedures
,
texture
TEXTURE
and
dependent
texture
then
change
upon
machine
- setters
. Here
's
small
colored
color
shapes
,
I
will
. ON
and
it
back
to
nontextured
and
Logo
dialect
a
TEXTURE
little
fruit
( fruit
need
a
. OFF
, that
?)
machine
the
textured
set
black
, you
at
tips
the
I ' ll
invent
fruit
.
pen
color
the
. Because
will
of
have
to
figures
to
two
a
pen
textures
write
your
fruity
are
own
:
TO FRUIT : SIZE
TEXTURE
. ON
REPEAT6 [FD : SIZE BK : SIZE RT 60]
TEXTURE
. OFF
END
Where
should
we
turtle
reach
the
tips
Where
does
the
turtle
turtle
decide
that
it
located
in
first
line
TO
the
M . TREE
: A
insert
of
this
the
branches
decide
has
not
recursed
of
: B
fruit
: N
machine
?
to
draw
enough
M . TREE
and
: T
: F
: BT
Another
is
more
into
M . TREE
way
to
ask
branches
? You
should
marked
with
?
?
find
the
Where
this
: When
this
spot
is :
does
easily
symbol
To
IF
draw
multiply
:L <
1
branched
.
: L
[ ( * * * )
STOP
recursive
trees
.
]
.
END
The expanded procedure is a multiply
TO
;
MF . TREE
: A
To
multiply
draw
IF
: L
<
FD
:A
RT
REPEAT
1
:N
: D
[ FRUIT
: T : BT : F : L
branched recursive
: D STOP]
~
.
: N
trees
with
: T
[ FD
MF
:A/ 2
. TREE
BK
RT ( : N * : BT ) - : T
BK : A
END
294
branched, fruiting
:A/ 2
( :A* :F) : D : N : T
LT : BT]
: BT
: F ( : L- l )
fruit
the
; it
.
,
the
question
Or
( * * * )
does
.
is
OrganicDesigns
Notice a few of the changes. First, I have removed : B, the second branch
size argument, and replaced it- within the procedure - with : A/ 2. I found that
I really didn 't need : B. Second, I have introduced a new argument, : D, the size of
the asterisk -shaped fruit .
Different fruit shapes
We can change the fruit shapes placed at the tree tips by altering the FRUI T
procedure . But in fact, we can be more elegant than this . Recall our work with
rectangular grids in Chapter 5. We broke grids down into two elements: an
underlying placement mechanism that structures a grid, and the image motif to
be placed within this grid . We defined the image with a list . We could consider
the current exercise to be tree grids . The M. TREE procedure is the underlying
placement mechanism, and FRUIT is the image to be placed by it . This suggests
the following restructuring of MF. TREE. : FRUIT is now an argument that must be
a state-transparent image list .
TO FRUIT
.
,
;
. LIST
To draw
defined
IF
:L
;
Note
FD
:A
REPEAT
<
. TREE
multiply
by a list
1
[ RUN
the
RT
:N
:A
: FRUIT
change
: FRUIT
branched
, placed
here
: N : T : BT : F : L
recursive
trees with
at the branch tips .
: FRUIT,
STOP ]
.
: T
[ FD
:A/ 2
FRUIT. LIST . TREE ( : A* : F)
: FRUIT :N : T :BT : F ( : L- l )
BK :A/ 2 LT :BT]
RT ( : N* : BT) - : T
BK :A
END
295
Chapter7
A few asterisk -fruit trees
296
OrganicDesigns
More asterisk -fruit trees
-
-
"
"
"
-
"
"
"
"
"
"
"
-
-
-
297
-
(t)
~
~
~
.....
~
.
-<
(t )
~
2
~
.
.....
(/)
<:
,
-
-
~
I
(... -.L.
Chapter 7
>
. . . . .
'"
(0
(0
(") ...... ........ ..... ro - C
/) ~ ~ ~ ~ ~ (") 2" ~
~ ~ Q. ~ ~. ~ p.. ~
p.. o-J .-to ro '"1 ~ ~ ~
1
~ C
.... .-to
~::1 ~
~ ro
/) .-to
~ 'ij..... .-to
'-< .!J; '-"
....-- Q
~
c.
~
""' ~ "' ~ ~
'"
b g ~ ro ~ ~ 0
O
'Qo :::::.
O
'Q 'ij""" p
.. :::::.
.... ro
'"1 g. O
'Q
""'
....
'ij'"1 rox s- C
/)
.....
~
p
.. ro
S
~
~
.....
'"""'
0
~ ~ O
'Q .-to ':"': 0
(") 2: .-to ...... ~ ~
......
ro
...... 0
'"1 H
......
p.. cr
.....' .-to
::J"" ~
.... - ~ 0
~ .-to ro <; ~ p.. ~ ~
~ ~ ~ ~ ~ @
" ~ S.
~
O C
p/).. p
.. ~
~ O
'Q
U
)
.....
~
.-to
ro
.-to
tIj ~ <;
'"1
ro p..
tIj p.. ro ~ ro :::;: p.. ro
0
? ~ rn
.-to C
/)
. g. O
'Q ~ .
~ O Q
:r: '"1 0 O
'Q > g p.. ~ .
ro
ro ~
..... ~ ~ ~ O'
.-to
'"1 (")
.r O
'Q
ro
~ .-to
~ "0 ro ~
<;
~ U1 0 ~ - ~
~
'"1 <
.....
~
';1'. .-to
~
~
ro
:
ro
(")
~
.....,.
ro
~
.-to ro ro
~. .... ro ~
~ 'ij .e:: g ~ S ~ p..
'"""' ~
~ .-to ro '" C
/)
..... ::+ ~ C
/) ::J""
10M~
U1 ro ~ .
ro ~ ~ ro
.-to !1 p.. - ...... ~ p.. ';)
,",,", .-to
;:J ~ C
/) "".
/) ro
::J""
ro
.-to
~ p.. C
1::1
~ ~
'ij
~
rn
o
~
C
~ ...... .-to
0 ...... /)
p.. .-to ~ ro S ~ ...... ~
~ - ~ p.. ~
'ij 0
~
~
.-to
p
.. (")
...... ~
1::1
<
;
~
(")
'
0
ro
0
~
~. .... ~
C
/) ~
.-to
.... "" """ """ cr' ro ur ~
O
'Q
ro ro 0
0,-< ......
ro
C
/) .-to
.-to
'"1 p.. ~ ~ '-< '"1
~ H
~
.....
'"
0
~
.-to
.....
~ ro . 0 ~ O
'Q .-to ::J"" Q
.-to p.. ~ .-to 0 ..... ro ro
- .-to ro p.. C
/) ~ '"1 cr'
1
ro ~
ro IJ
~ ~ 0
0
~::1 0
1::1 ~
H ro
~
~
....
1
::1
ro
~
~
'"~"' O .,.,..
p
..
~
'"1
~
""' ro
.-to
0
~ p.. ~ :=: S ~. q '"""'
~
~ 0
~ ro
ro .-to
.- ro
~> 0
'"1 '-<
......
::J""
C
/)- V
ro
~ ro
..... OJ
::= ro
c7
: 0"
.-to '"1
'"1
~ ro
';1
'Q
0'. O
0
~ S'
O
'Q
0
"~
......
ro
~
C
/)
......
0
0
~
~
.-to
.-to
::J""
ro
'ij
'"1
0
(")
~
~
'"1
ro
~
~
.-to
'ij
'"1
0
p
~..
(")
ro
'"~"'
.-to
::J""
ro
'"""'
0
......
......
0
~
.....
~
O
'Q
.,.,..
~
~
~
p.
S
8~
A
cO
p)
::J
0.
_
0
CD
~.
(Q
::J
U
>
Chapter7
SEE'D
IvEA
N~ = tJIJ.t"\; EQ
. . OF bflA..JC
.+-\ 't.S
F = ~c A L ffic .~~
L'f:v :: ~~ ~ fL~ 0t0
..J
SEED
.
,
.
,
To
: SL
Try
SEED
IF
: LEV
FD
: SL
LT
: AA / 2
REPEAT
: NB
: AA
dandelion
model
<
: NB
LT :AA/ 2
BK : SL
END
605240
: LEV
flowers
. 6 4.
: F
[ STOP ]
[SEED ( : F* : SL) :NB :AA :F ( : LEV- l )
RT :AA/ :AD]
" I liked how the figures produced were not perfectly symmetric . I could
have put the following turn command into the REPEAT list structure of SEED:
RT
: AA/ ( : NB- l ) . But I didn 't like what this produced . I liked my original
slightly wonky pattern .
/IAfter running SEED with various argument values, I decided to plug two
seed designs together. I wrote a little EXPLOREprocedure to do this ./l
300
0 - (0£1) C)ciCD
l)C (0 (I)
Cl)CD
CD
Chapter7
Double seeds
302
OrganicDesigns
Seeds as tree clusters
" I thought I was designing seeds, but I suddenly saw the outlines of a cluster of
trees in the first image below . I erased some of the lines to make it look more
like several bushy trees growing closely together . I still don 't like the thin
trunks, though . I' ll draw in some better ones with India ink ."
303
Chapter7
Introducing
random
" OK
,"
I hear
life
. Real
Let
more
trees
are
lifelike
: T and
the
trees
" these trees are interesting, but they still lack a feeling of
not
as regular
some
shapes
into
into
say,
's introduce
component
angle
you
components
the
the
ones
randomness
. How
can
drawing
between
as
- branch
of
into
we
the
angle
do
: A
presented
these
this
? We
lengths
above
.1I
designs
and
see
want
to
introduce
, and
perhaps
if
into
that
produces
a
random
the
turning
: BT .
We might be able to use the procedure RR that was developed in Chapter 5
to generate random grids . Recall that RR takes two arguments, : La and : HI, and
outputs a random number that falls in the range defined by these two arguments.
TO RR : LO : HI
; To output a random number in the range : LO to : HI .
OP : LO + RANDOM(1 + : HI - : LO)
END
What happens if : La and : HI are not integers ? Try some funny numbers .
FD RR ( . 5 * : A )
( 1 . 5 * : A ) would add some randomness into one of the
tree components . The actual branch length drawn would range from .5 to 1.5 times
the original
value of the argument . Obviously, .5 and 1.5 are arbitrary ; you can
experiment
with other values when we put everything
together .
The problem now is how to insert RR into M. TREE. A first guess might be to
put RR after every FD, BK, and RT command . Would this be correct ?
We can answer
this question
by posing
another : Is the following
state
transparent ?
FD RR 5 10
BK RR 5 10
It certainly isn 't. RR 5 10 will probably give a different value in the two
situations . But we must move backward the same amount that we moved
304
Organic Designs
forward
.
Otherwise
transparency
require
FO
: 0
BK
: 0
the
are
several
" 0
RR
MAKE
RECORD
. POS
FD
5
RR
don
't
get
back
to
the
that
we
always
get
back
to
random
ways
of
number
doing
this
be
Let
' s use
REPEAT
where
we
used
for
the
FD
and
the
FD
:A
BK
,
started
the
BK
and
state
from
. We
command
.
10
back
the
first
method
to
handle
list
structure
. The
RECORD
. POS
and
to
the
of
the
branch
after
all
base
. RR
will
be
used
in
conjunction
command
, and
the
LT
commands
within
be
careful
But
RESTORE
.
. POS
procedure
. Why
level
of
recursion
tied
to
each
and
global
lifetime
happy
about
this
are
arguments
. I have
for
: D
can
make
by
in
making
your
the
other
movements
the
FD
procedure
list
S
these
two
: POS
.)
the
have
been
unique
their
: B
variable
. It
each
unique
and
. ( Review
variables
them
the
for
variables
gave
: T
inside
variables
Local
RT
.
be
local
handle
, the
( created
. POS ) must
manual
that
structure
within
can
: A command
: PO
: D and
Logo
situations
. POS
and
? We
:A
RESTORE
REPEAT
RESTORE
level
value
exist
only
.
you
Are
?
, that
procedure
arguments
the
by
this
the
with
needed
is
of
, again
following
value
variables
the
Notice
The
and
recursion
within
the
point
:
completed
local
starting
10
. POS
getting
same
5
RESTORE
the
we
demands
that
There
,
not
needed
replaced
I have
. As
, and
the
removed
I
the
have
said
I also
wanted
: B with
: AI
previously
to
2 as I did
,
cut
in
I
doesn
found
' t appear
that
down
on
the
the
MF . TREE
in
two
size
number
of
procedure
.
305
Chapter7
Randomized
TO
trees
RAND
;
To
;
with
.
:
(
:
A
:
N
:
L
<
"
[
STOP
.
RR
(
RT
FD
RR
F
:
L
recursive
.
"
D
)
reasons
transparency
.
5
*
(
:
N
:
A
)
.
5
*
[
MAKE
(
:
T
1
:
D
BK
:
D
LT
RR
RAND
.
.
5
)
(
"
FD
RESTORE
:
.
POS
FD
REPEAT
BT
]
POS
state
RECORD
:
branched
components
1
LOCAL
For
T
multiply
randomized
IF
;
TREE
draw
*
:
A
)
1
.
5
*
D
:
RR
T
(
)
.
5
*
:
A
/
2
)
(1 . 5* : A/ 2 )
-
.
TREE
(
:
A
*
:
F
)
: N
: T : BT : F
-
(
.
5
*
:
BT
)
( 1 . 5 * : BT ) ]
POS
END
Again, please notice the use of the LOCAL command in the procedure 's second
line . We must
have a value
for
: POS and
: D for each level
of recursion
. These
variables will not, typically, be the same for each of the branches that make up
the tree. LOCAL tells Logo to keep the variable indicated tied to each level of
recursion
. There
will
be
a different
: POS
for
each
level
, and
there
will
be a
different : D for each level . Logo then uses the proper value for : POS and : D
CD
CD
cn
It
H
according to the turtle 's recursion status. This application of local variables is
extremely important, but not obviously so. How do you feel about it ? Can you set
up an experiment to test out the logic of its use?
You might want to run RAND. TREE with line two removed (the line that
makes : POS and : D local variables ). What happens to the turtle and why ?
00
t-i
I
.....
-
I
Make a print of the result and put it in your notebook .
306
OrganicDesigns
Three series of random component crees
How will the random machinery introduced into the procedure RAND. TREE
actually work ? What will the designs look like ? In order to see the effect of this
randomizing, we must produce a series of designs, with the arguments fixed . The
differences between the individual
designs will be due solely to the random
effects .
This exercise is similar to the random grid work we did in Chapter 5.
Remember the random placement of stars? Go back and take a look .
I've written an EXPLORE-type procedure to produce a series of designs. I
have indicated the arguments used at the start of each of the series.
Recapitulation
What have we done new in this chapter? I believe we have caught some of the
mystery of a living form when we mixed a little randomness into some strict
geometry . What are the implications of these tree machines? Whether or not
you choose to be philosophical about all this, I hope you can extend the image
ideas of this chapter to simulate the shapes of some other organic shapes.
307
Organic Designs
RAND . TREE
series
lb
309
Chapter7
RAND. TREE series 2a
RAND.TREE 30 3 30 30 . 75 5
310
OrganicDesigns
RAND. TREE series 2b
I
311
Chapter 7
RAND. TREE series 3
RAND.TREE 30 3 30 15 . 9 5
312
Organic Designs
RAND. TREES with fruit
I installed a RUN : FRUIT component into RAND. TREE and added a : FRUIT
argument. The following were produced using
FRUITED. RAND. TREE 60 : FRUIT 3 30 30 . 6 4
with : FRUIT set to asterisks, then to circles, and then to squares.
.' :h
OJ
-
; -~~ .
-
J
-
.
~
313
Chapter7
Exercises
Exercise
7,1
Our randomized
trees look
more
like weeds
so thin . In " real " trees, the branches
Design
Make
a Logo
sure that
examples
example
was consciously
produced
by it . The second design
job
illustrate
of changing
as different
trunk
planned
is to design
interesting
from
that
as the level
that
of recursion
by a student
, and you
randomized
thickness
trees . The first
two
designs
to its designer .
or nonrandomized
thickness
.
changes . Here
are given
was " a mistake," according
are
shorter .
exhibit
in nonrandomized
in trunk / branch
the examples
the branches
as they become
branches
thickness
either
variations
thinner
draws
decreases
are two
Your
become
tree procedure
this thickness
than trees because
. Try
trees
that
to do something
as possible .
Exercise
7.2
How
about
and
creating
trees
explored
designing
forest
or
scientist
He
,
;
(
Exercise
see
of
;
the
length
,
the
flower
palms
!
,
even
the
northern
might
tree
"
to
essay
find
done
reminded
sticklike
weeds
European
expect
palm
tree
in
.
in
by
him
terms
segments
of
right
;
and
the
the
trunk
You
the
of
a
Paul
Let
' s
tropical
,
,
try
rain
a
holidays
be
may
the
of
.
notice
number
in
;
number
could
.
of
changed
composition
arguments
' s
far
distinctively
they
palm
length
or
a
So
computer
blue
skies
,
. "
these
left
Paul
to
)
?
you
because
which
. 1
that
is
countries
bend
and
are
Here
palms
at
7
,
314
.
a
rate
,
begun
oasis
exotic
orientation
chapter
"
characterized
the
vegetation
something
selected
to
examples
tropical
this
desert
and
tendency
recursive
leafy
a
Paul
trunk
"
in
.
seas
has
in
a
blue
some
"
as
"
fronds
in
procedure
either
fixed
that
the
curviness
palm
The
size
of
in
trunk
of
the
second
random
the
trunk
tree
' s
and
head
Below
three
their
made
are
of
its
,
was
.
cluster
its
lengthened
structure
or
the
segments
five
trees
OrganicDesigns
Examples for Exercise 7.1
~
315
Chapter7
Paul's palms for Exercise 7.2
316
OrganicDesigns
.
.
317
Chapter 7
Paul then used a random placement of palm trees to simulate oases. The viewer
must be in an airplane .
\,
it;.
;"i'
;1,
~
~,.
-:Ij'
.~('
~I
'r .
' I
],;.:
'y.;:
'f"
I
J'"
';111
':
I
r
~'.
h;..
\
~i'
I!.
f:
,:
' ;'1:.
,
';!;
-j
'I'i
-i \"
'
. . .
318
.. .
'r
! :.
~
1.
..
(',. "\
J..
)'
."."
_ \ ....
j
OrganicDesigns
Exercise
7.3
Design a Logo tree -drawing
procedure
that prints a message on the screen to
indicate the level of recursion currently
being drawn . Make sure that your tree -
drawing
procedure has been slowed down, if necessary, so that the message can
be easily read . You may want to use different
pen colors to indicate the different
levels of recursion .
Produce a complete graphic
recursion ; your
package that visually
package could be an effective
recursion to those with no previous knowledge
teaching
illustrates
one kind of
tool for introducing
of it .
Exercise
7.4
What about leaves? One interesting way to try capturing the color and texture
characteristics of " leafiness" is to design pointillist trees. What are these? The
Penguin Dictionary of Art and"Artists tells us that "According to the color theory
of neo-impressionism, it is possible to obtain brighter secondary colors, such as
green, by making a series of tiny blobs of both primaries (which in the case of
greens would be blue and yellow ) so that the blue and yellow blobs are very
closely intermingled but are not actually mixed . In this way, the colors mix in
the spectator's eye at a certain distance from the picture, giving a much brighter
and clearer green than is possible by actually mixing the pigments on the
palette ."
At least two other sensations are felt by the " spectator" when he or she
looks at a pointillist painting . First, the clouds of dots give the impression that
a surface texture exists; the eyes can feel it . And second, the individual
dots
float in space, giving an illusion of depth . This floating occurs partially because
of the natural tendency of reds and yellows to move forward and blues to recede
from the viewer .
319
Chapter7
Pointillist paintings for Exercise 7.4
320
OrganicDesigns
George Seurat (1859-1891) is the best-known pointillist
neo-impressionists
painter, but other
of the late nineteenth century experimented
technique . Pointillist
paintings
with the
are hard to " read " in black and white
reproductions ; the color mixing and dot floating don't work ! But you can get an
"impression " of the method and the textures produced . I have reproduced here
Seurat's " La Seine a la Grande-Jatte" ; and second, Henry van de Velde 's (18631957) " Faits de Village VII - La ravaudeuse."
One student saw the problem of building a pointillist machine this way :
"OK, let 's use colored dots to represent the flash of color that might be reflected
from the tree's leaves. I will draw the reflected dot -lights and not worry about
drawing the individual leaves. Perhaps I can mix a number of different colored
dots together in the manner of Seurat. I can place the dots randomly, too, to give
a fluffy, organic shape. The randomness may give the tree a feeling of depth as
well . I think I will also try to indicate the direction of the light source - from
the sun; the side of the tree facing the sun should include more red dots, while
the side that would be in the shade could have more blue dots."
Hint : Rework the procedures placed into the : FRUI T list . Make them
capable of randomly placing a certain number of colored or textured dots in the
" vicinity " of the current turtle position . The procedure RRwill be useful for this .
For the selection of colors or textures, you may want to give a probability of
picking one color or texture over another . Look back at the procedure P . GET in
Chapter 5 for some ideas on probabilistically picking things from a list . Don 't
forget to make the : FRUIT list state transparent .
Exercise
7.5
What about curved sterns and branches? The following
illustration
is an
example of Japanesepen-and-ink drawing . Does it suggest Logo procedures that
use arcs to simulate plants? Review the arc procedures you were asked to work on
in the exercise section of Chapter 5.
321
Chapter7
Japanesepen-and-ink trees for Exercise 7.5
322
OrganicDesigns
Exercise
7.6
What about curved roots? Here are two technical line drawings of plants, both
tops and bottoms ! Can you characterize these plants in terms of a few arguments?
How can you design and use arc drawing procedures?
Hint : The procedure RRmight be used to generate random arguments for your
arc drawing commands.
/'
Exercise 7.7
There are dozens of other tree characteristics that you could model . The manner
in which architects draw trees should suggest some of these alternative tree
qualities to you . Architects surround their model buildings with model trees, and
the next several pages show some typical architectural renderings . Note the
different approaches to treeness. Pick one that strikes your fancy and design a
Logo model to do it . These designs are taken from Bob Greenstreet's Graphics
Sourcebook (Englewood Cliffs, NJ: Prentice-Hall, 1984).
Warning : The best illustrations to use for drawing trees are real trees. Go
outside now and look at some.
323
Chapter7
Architects ' trees for Exercise 7.7
:;~.:-:':'.
,
.
,
\ .
"
,
:,'.:' .' .' ..'ff;.;:."':...,::.,'.' .','
.
,
"
"
. '
. .
.
.
~
:~,'.:~...,.:,:.::,:.3}~~~,~~::',::::..' :',
. ',
.
" vl ' ~( .
" "
'
.'
. . '-
... . '. ' " . . " . . ~,.~ .,", .~", 1, ., ',. " ."
[!:"A( .! ....;";";'l "t :!;~ ~,'
-'):.~ ~ ~.:';.: ~>::::::.,\.'.'
,
'
... .tit. ' . '
.
"
"
.
.
.
"
'
',
,
.
'
, . 1:
.
'
,
. -
.-
.,
.
..
'
.
..
~
.,
,
,
,
.t" . " " . " " ~." '(o\ "."' "" ." " ",
" .
"
. ' . .. . "
/ :
" .,' .., ' :
, I "
i "~ .".\" "" '-:....
;;"" ! "" .~
"" .V
o;o':..."
;
324
~
' ~J, ~
.
'
'
; ? '" '
,
. "
.
" " ., "
-,
'.., .,, ' ..
" . ...
~,,","
.<
' --1
.. '':""_
...")o:
" "' ..'~ ...
. ;
Organic Designs
Exercise
7.8
Imagine yourself looking acrossa small lake. A single tree is growing on the
shore just oppositeyou. It is night, but a full moon illuminates the tree and this
image is reflected in the water. A breeze agitates the surface of the water.
Design a Logo model that draws both the tree and its reflection in the lake.
Include an argumentfor the velocity of the breeze.
Exercise
7.9
Former students have done some very interesting " Logo jobs" on fruit and
vegetables. Some vegetables literally cry out for recursive techniques. You don't
believe me? Go look at some artichokes, cauliflower, broccoli, asparagus! Others
scream for the " oid " treatment introduced in Chapter 4 with nephrQi. d.s and
cardiQi.d.s: go look at apples, pineapples, oranges, carrots, bananas, carrots,
radishes, leeks, and turnips .
Design Logo procedures to produce a suite of designs based on the
characteristics of a single favorite (or hated) fruit or vegetable. No visual hints
here: go look at the real thing .
Exercise
7.10
Pick two different fruits, vegetables, or trees. Show how a single Logo procedure
can draw either of the two items, as well as shapes exhibiting characteristics of
both .
For example, suppose you picked a pine tree and a cauliflower . Your Logo
procedures must be capable of drawing both a pine tree and a cauliflower . But
your procedures must also draw figures (" caulipines " ?) that are transitional
between a pine tree and a cauliflower (a pine tree on its way to becoming a
cauliflower ). Or a cauliflower metamorphosing into a pine tree.
325
Chapter7
Pick your two objects and fill several pages of your notebook with sketches
before you do any Logo programming
. Do something
thoroughly
ridiculous, but
correctly so.
Exercise
7.11
What about flowers and gardens and fields of flowers ? As you may have
noticed, I usually suggest two ways to begin Logo projects like this one. First, you
could go out and look at nature. In this case that would be studying " real"
flowers and gardens. Second, you could look at a drawing or painting of flowers
and gardens. Paintings of flowers are, of course, also real and help us to seebetter
the garden behind our house.
Let me suggest one artist who uses flower fields in almost all of his work . As
always, I offer you my own taste in artists . You may see something in these
reproductions that will start you off in some interesting direction . Then again,
you may want to find your own artist to explore.
Gustav Klimt (1862-1918) was an Austrian painter who worked in turn -ofthe-century Vienna . I am sure you have seen paintings like " Poissons rouges" of
1901/ 2, which is reproduced on the next page. Here Klimt contrasts flat
geometric motifs with the molded skin textures of the very human forms . The
contrast, even in this black -and-white reproduction, is striking . Each pattern
type, the human flesh and the geometric forms, is made more vivid by the
presence of the other.
On the page following
is a painting in which Klimt uses only flower
patterns; it is " Rosiers sous les arbres" of 1905. This sort of painting lacks visual
excitement . There is no focus, no contrast. No surprises ! Study this decorative
work, though, to see how the artist has placed his flower patterns on the surface
of the canvas. I would like you to Logo- produce Klimt -like flower fields, but add
a surprising point of contrast . If you use naked ladies, model only a few
characteristics .
326
>
OrganicDesig
:)>
U
Klimt
.~..
-~
n
0
-~
~
U1
-~
.~..
OQ
-r'J
~
=
~
rU1
'J
CoA
)
~
"'..J
~
N
Q
)
Chapter7
A decorative Klimt
Organic Designs
Exercise
7.12
Try modeling
one specific flower . Pick
personality, one that can be easily identified
a
flower
from
sunflowers, hollyhocks, iris, daffodils, tulips,
that
a
distance
daisies
,
has
.
lilies
a
Some
vivid
visual
suggestions
:
.
Exercise
7.13
Surround
your plants with
a few insects . Butterflies, moths, ladybugs,
dragonflies, beetles, and fireflies might be nice.
Exercise
7.14
We 've avoided animals so far . But what about some odd sea creatures ? There is
a snail -like creature
illustrated
among
the imaginary
P IPEGONS of Chapter 2. Find an
text on sea creatures and model something
urchins, or sea anemones . Something living
like squids, jelly fish, sea
inside shells might be a challenge,
too . Keep the modeled sea creature characteristics few in number - at the start .
Exercise
7.15
What could be more organic and more relevant to visual modeling than the
human eyeball? Take a close look at your own eyes in the mirror . Make special
note of the colors and patterns in your irises. Usually, on close inspection, you
will find that your two eyes are different from each other and quite irregular in
themselves. Design a Logo model of your own eyeballs. Generalize it to simulate
a wide range of eyes that include those of your cat and tropical fish .
329
"l W
Chapter7
Exercise
7.16
Recall the FRACTALGONsof Chapter 4. We changed polygons into FRACTALGONs
by changing the nature of their edges. We replaced the polygon 's single,
straight -line edge with an edge composed of four straight -line segments. We
then replaced each of these four straight -line segment with a smaller, four segment edge. And then each of these segments was replaced with smaller, four segment sections. We continued to break down - or fractal- single line segments
into multiple line segments until we arrived at the odd, fuzzy shapes illustrated
under the heading "Some curious FRACTALGONs
" in Chapter 4.
There was nothing special about replacing the straight polygonal edge
with a four -segment shape; we could have used other pattern combinations of
straight -line segments. But no matter what edge shape we selected, we would
have followed
the fractal scheme of replacing the parts of an edge with
miniaturized versions of the overall edge pattern .
Let's experiment with an alternative edge pattern, and let 's also introduce
some randomness into fractal designing . Take a look at the following figures .
Can you guess what is happening before reading the description below ?
2
5
330
8
OrganicDesigns
Start with the large triangle, figure 1. Imagine that a circle is drawn on the
midpoint of each of the three triangle edges (figure 2). Now pick a random point
within
each of these three circles (figure 3), and use these points to break
("fractal " ) the original triangle of figure 1 into the four triangles of figure 4.
Look at each of these four triangles . Imagine that a circle is drawn with its
center placed on the midpoint of each of the edges that define each of these
triangles (figure 5). Now pick a random point within each of these nine circles
(see figure 5), and use these points to fractal the four triangles of figure 4 into the
sixteen triangles of figure 6.
We could continue this fractaling to any level and see what happens. But,
first, what about those circles? How big should they be? The radius of a circle
should be related to the length of the line on whose midpoint it rests. Therefore,
the circles should get smaller as the fractaling
progresses . The specific
relationship of the circle size to the edge length could be given by some factor,
call it F. The larger the value of F, the more deformed the figure could become.
Now suppose we begin with a double triangle, similar to figure 8. What
will the fractaled figure 8 look like ? Here are four examples. The F factor was
kept constant for each. The differences between the figures are due solely to the
random component. Can you guess what level of fractaling was used?
What do these images look like ?
331
Chapter7
Fractallandscapes 1
332
Organic Designs
Fractallandscapes 2
333
Chapter7
Fractallandscape
before and after some rain
Here is one further level of fractaling . I' ve also decided to allow some rain to
fall on the landscape. What is happening ?
334
(..)
(..)
U1
OrganicDesigns
~
,
More rain
Chapter7
What 's going on here? Are these scenesreally mountainous ? The last figure
looks like a scene you might see flying into Hong Kong . Why does the eye read
these figures as three-dimensional ? Where is the eye in relation to these scenes?
How would you color in all those little triangles so that they won 't look so
much like chicken wire ? How many triangles are there, by the way, in those
figures? Recursion is obviously being used; can you give the number of triangles in
terms of recursion level?
Can you put together a plan for experimenting with these visual ideas?
What about a fractal mountain machine; would that be possible? What do you
think the major problems would be? Put together some exploratory building
plans .
336
Chapter 8
Space
"The question [is] whether spaceis real apart from space-filling objects."
W. T. Harris
Reading objects in space
Most of our work so far has been flat and two -dimensional . Our only real
excursion into planning depth characteristics was the overlapping Islamic tile
designs of Chapter 6. But even this was really only two -dimensional motif
manipulation . However, even though we haven't been much concerned with
spatial modeling, some of our line drawings occasionally seemed to float into
three dimensions : recall some of the lacy, random tree shapes of Chapter 7
and- especially- the nephroid designs of Chapter 4.
Take a look at the series of circle-based nephroids below . Even though you
know that these are perfectly flat figures, do you have the impression that they
are also three-dimensional and that one nephroid can actually be placed inside
another? Why is this? Nephroids are ambiguous shapes (flat and rounded ), but
because the brain lives and works in a three- dimensional world, it resolves the
two -dimensional ambiguity of nephroids by placing them fully into 3D space;
nephroids are good examples of the brain adding space in order to read an object
better. Spend some time following the lines of these odd images.
Chapter 8
Intentional depth cues
This chapter will
concentrate
on some of the ways in which
depth
characteristics can be explicitly designed into object scenes. Art students already
know how two -dimensional paper and canvas can be made to simulate space
through a wide variety of methods and systems, many quite arbitrary . They
know this because they have played with alternative spatial systems and
conventions . If you are not an art student, you may be coming upon these ideas
without such first -hand experience. So, before you are ready to incorporate
depth cues into modeled scenes, you need to explore how your eyes read and
interpret different forms of depth information .
We will be looking at several depth cues in this chapter : placement,
shading, size variation, shape overlapping, and vanishing point perspective .
The models of the chapter provide environments in which you can watch
yourself reacting to messagesfrom things in space.
338
Space
Enclosing nephroids
339
Chapter8
Surface shading
The following design element was much used by the Dutch artist and designer,
M . C. Escher. How should the eye read this figure ? Is it a flat design, a box seen
from the outside, or a box seen from the inside? The design is ambiguous, and the
eye switches from one interpretation to another.
The placement of several objects into a scene can sometimes resolve
ambiguity . The Escher box, however, becomes more ambiguous when it is placed
into a composite of similar shapes.
340
C)
CD co
Space
Modeling a shaded Escherbox
Let's write a procedure, E . BOX, to draw an Escher box and then shade it . We
will want the procedure to be general enough to draw different -sized boxes and
to alter the quality of shading on each of the three visible surfaces. The figure
itself is easy enough : a hexagon in which a Y shape is placed . The procedure
E . BOX has two arguments, : SIZE and : SLIST .
: SIZE is the radius of the hexagon that encloses the Y shape; it is also the
length of the three arms of the Y.
: SLI
ST
is a list
that
has
three
elements
, one
for
each
of
the
three
visible
faces of the box. The order of the faces is: top, right, and left . The shading is to
be accomplished by drawing equally spaced parallel lines on each of the faces.
Of course, the number of shading lines can be different for each face. The number
of spacesbetween such lines, one number for each face, is to be placed inside the
: SLI ST. For example, an : SLI ST of [ 1 1 1 ] should draw the unshaded box;
each face will have only one space since an unshaded face has no lines . An
: SLIST of [ 2 2 2] should produce a box with two stripes of space on each face:
If the elements in the list are equal to the : SIZE argument, each of the faces
should be filled completely with the current pen color- black, in my case. Here
is what
E . BOX
50
[ 50
50
50 ] should
look
like .
343
Chapter 8
The Escherbox procedures
TO E . BOX : SIZE : SLIST
; To draw a simple Escher box with parallel
; line shading . : SLIST must be a three - element list
; Each element gives the number of between - line
; stripes
on one face .
LT 60 PD
REPEAT 3 [ SHADE : SIZE (FIRST : SLIST ) -
.
MAKE" SLIST BF : SLIST
RT 120]
RT 60
CNGON6 : SIZE
END
TO SHADE : SIZE : STRIPES
; To shade a single
face
of
an Escher
of
; with parallel
lines . The number
; actually
drawn will
equal : STRIPES
LOCAL liD
MAKE liD : SIZE / : STRIPES
box
lines
.
RECORD
. POS
REPEAT: STRIPES [FD : D RT 120 FD : SIZE BK : SIZE
LT 120]
RESTORE.POS
END
I didn 't go through a turtle walk for the shading, but the method is clear.
Next, let 's put E . BOXsinto a grid . This is similar to work we did in Chapter 6. In
the following diagram the asterisks mark the centers of the E . BOXS. We need to
calculate the appropriate horizontal, vertical, and indent distances between
these asterisks in order to build a demonstration procedure using RIFLAG.
344
Space
Because the E . BOXs are placed at the vertices of an equilateral triangle,
we need to recall the relationship of the height of an equilateral triangle to its
edges: height = edge*cos 30. Go back to Chapter 6 a minute and review the
mechanics of NEST . DEMO, TP . DEMO, and SAW. DEMO. These three procedures
were also based on the equilateral triangle . Verify the calculations used in the
following
TO
;
:
SHADED
To
. DEMO
grid
: SIZE
a series
: COLS
of
( LOCAL
" EDGE
" VERT )
MAKE
" EDGE
2 * : SIZE * COS
-MAKE
" VERT
: EDGE * COS
MAKE
" MOTIF
[ E . BOX
: SLIST
shaded
E . BOXs
30
30
: SIZE
: SLIST
]
GO . PT
RIFLAG
: COLS
( COUNT
: COLS )
: EDGE
: VERT
( LIST
( - 1 * : EDGE / 2 )
0)
END
One final note about my kind of surface shading . I could have used other
conventions. On the next page is one example of an alternative scheme.
345
.
Chapter 8
-
.
-
-
"
~
Placement ambiguity
Look at the following
grid of shaded Escher boxes . The grid is clearly composed
of three rows of boxes, but how are the rows related in space ? Is the top row
floating
in space above the middle row, or is it sitting on a surface and located
behind the middle
row ? And if the three rows are sitting
on a surface, is that
surface flat, inclined, or stepped ? This row placement is clearly ambiguous .
346
Space
C>
e
Size variation
One of the easiest ways to control the illusion of objects in space is through size
variations . An object close to us is bigger than an object farther away . So
differences in size can be read as differences in distance. This works fine for the
space placement of objects of the same diIriensions; but it is more difficult to force
a single space interpretation of objects of different real dimensions, and ambiguity creeps in . For example, try to read the following two scenes. Because the
shading on the boxes is the same, the eye guesses that the boxes have the same
real size. Hence, the size variations are read as cues about the scene's depth, and
the top row becomes the farthest away from us.
But there is an alternative reading . The top row might be small boxes that
are floating above the slightly larger boxes of the middle row that are floating
above the slightly larger boxes of the bottom row . Force your eyes to read the
scenesin these two alternative ways. Which way seems to be the eye's preferred
view ? Why ?
347
Chapter8
~ ~
Multiple motif grids
Can you guess how the last scenes were produced ? I tinkered with the generalized grid machine RIFLAG so that it could draw grids of multiple motifs . I
wanted to have a different motif on each row . Then I could draw rows of
different -sized (or shaded) E . BOXsto explore the illusion of receding objects . . .
or whatever . I include my modified procedure to remind you about the usefulness
of tinkering with the machinery you already possess, to make procedures do
their jobs a little differently .
The modified
machine is called RIM . FLAG for recursive, indented,
multiple -motif flag . It expects a composite motif list that is composed of several
list elements: there must be one motif list for each row . For example, this was
the motif list used for one of the previous scenes.
MAKE" MOTIF [ [E. BOX . 5* : SIZE [ 3 6 9] ]
[E. BOX . 7* : SIZE [ 3 6 9] ]
[E. BOX : SIZE [ 3 6 9] ] ]
Here is RIM . FLAGand its supporting procedures.
348
-
Space
TO RIM . FLAG : COLS : ROWS : CDIST : RDIST : IN
; RIM . FLAG expects
: MOTIF to have multiple
; motif
lists
: one for each row .
IF : ROWS
RIM.ROWER
RIM.RSTEP
RIM.FLAG
END
<
(
1
[
:
CDIST
:
RDIST
ROT
STOP
]
(
:
:
FIRST
:
COLS
)
IN
COLS
)
(
:
ROWS
TO RIM . ROWER: C : N
IF : N < 1 [ STOP]
RUN FIRST : MOTIF
; To handle the multiple
CSTEP : C
RIM . ROWER: C ( : N- l )
END
-
l
)
motifs
: CDIST : RDIST (ROT : IN )
.
TO RIM.RSTEP : R : IN
PU SETX (FIRST :POINT) + (COUNT1 : IN )
RT 180
FD :R LT 180 PD
MAKE" MOTIF ROT : MOTIF
; To place the next motif into position
for RIM.ROWER
.
END
TO CSTEP : c
PO RT 90
FD :C
LT 90 PD
END
Overlapping shapes
Look
at
location
the
the
of
bottom
following
the
row
boxes
.
But
.
how
grid
of
The
top
can
Escher
row
we
draw
boxes
is
clearly
these
.
There is no ambiguity about the
behind and slightly higher than
figures?
349
Chapter 8
The painter's algorithm
What we need is the so- called painter 's algorithm . Why so-called? Because the
method was dreamed up by computer scientists; this is how they think painters
handle overlapping scenes. Hence the algorithm 's instructions for the painter turtle . First, determine which objects are farthest from the viewer and paint
these onto the canvas. Then determine the objects just in front of the painted
objects and paint those onto the canvas. Continue with this layering until you
have included everything in the scene up to the viewer 's nose. Use opaque paint,
though, so that no object appears peeking through a layer of paint . Is this how
human painters really work ? Could they do it this way if they wanted to?
Whether
or not this is the method
real painters
use, let 's build
a visual
model using it and then draw some overlapping shapes. The first problem we
encounter is how to make the turtle paint shapes that are totally opaque. Here
is one way . Select the screen position where you want to draw a shape. Erase
everything within the outline of the shape and then draw the shape onto this
" opaque spot." The following procedures handle these tasks for E . BOXs.
TO
BLACK
;
To
LT
60
. BOX
erase
REPEAT
3
[ NIGHT
RT
RT 60
END
TO
: SIZE
everything
NIGHT
. SHADE
the
: SIZE
outline
of
an
E . BOX .
-
120 ]
. SHADE
RECORD
within
: SIZE
. POS
PENERASE
;
Depending
;
you
;
to
REPEAT
RESTORE
PENPAINT
END
350
on
may
your
have
erase
the
: SIZE
. POS
computer
to
box
[ FD
and
increase
fully
space
1
RT
FD
: SIZE
LT
120
Logo
the
pen
.
120
BK
]
: SIZE
dialect
width
,
you
may
Space
Overlapping grids
Let's organize a three-row, rectangular grid scene according to the following
depth convention : the top row will be the most distant, the middle row will be
in
the
middle
distance
, and
the
bottom
row
will
be
closest
to the
viewer
. Our
grid machine must paint the top and farthest -away row first, and then the
second row of intermediate -distance objects, and lastly the row of nearest objects.
If any objects in the second row overlap objects in the first row, the painter 's
algorithm should take charge and paint one figure over the other . We will need
this help, too, with the third row, in case any third -row objects overlap any
first - or second-row ones. How can we make this happen ? By defining the
: MOTIF list in the following manner:
MAKE
: MOTIF
[ BLACK
. BOX
50
E . BOX
50
[3
6
9] ]
This assures us that if any image falls on top of a previously drawn figure, the
overlapped segment is fully erased before the second object is painted onto the
spot .
Let's try
RIFLAG [ 3 3 3] 3 (lOO* COS 30) 50 [ 0] .
351
Chapter 8
Oops. The figure is interesting but hard to read. Try moving the objects about in
space a little to see if you can eliminate the ambiguities of the first image. See,
for example, if it is easier to read
RIFLAG [ 3 3 2] 3 (10 + 100* COS 30) 50 [- 20 40] .
352
Space
A short box play
353
Chapter8
Ambiguity again
Once all the figures cease to overlap, even the painter 's algorithm fails us.
What is happening below ? It 's hard to say. We need some additional indicator
that says whether all those boxes are sitting on the same surface or whether the
top tier is floating over the bottom tier . What we need is perspective.
(0
lS:J
Perspective
Most of you are already familiar with the jargon of the perspective systems
invented during the European Renaissance. You may have some notion of what
foreshortening means, as well as an idea about vanishing points . But let 's
investigate perspective empirically, with a few experiments .
Find or make a wire frame model of a cube with edges of about 6 inches.
Hold the cube so that you are looking directly at the middle of one of its faces.
354
Space
Make sure that you hold the cube so that your line -of -sight forms a right angle
with the face you are looking at . Hold the cube very near your face and record in
your notebook
what you see. Now hold the cube as far away as possible and
record what you see. Your sketches should look something like these :
0 D
Now, again look directly
at the center of one face held at a right angles to
your line -of -sight . This time, move the box horizontally
to the left . Record your
views .
0
Do the same as above, but with the cube moved to the right .
0
Do the same again, but lower the cube and move it to the left and then to
355
Chapter 8
the right :
0
0
You have just beenwitnessto the operationof one-point perspective
. The
following sketchesindicatethe constructionof a cubedrawn with one-point
perspective
. Whereis the viewerin eachof thesedrawings?
0
356
<
~
0
(D
-
( D
n
~
( D
~
~
.
.
~
~
-
I
0
~
~
0
(D
0
Space
Two -point perspective
Carry out the same experiments again, but rotate the cube so that you are looking
directly
toward
an edge rather
than a face . Keep the edge vertical . The
following
is what happens . Where is the viewer located in this scene?
G
<:)
\
\
' "
.........~/ '
/"
/
50 \.10 Cu BE
Three -point perspective
Finally, carry out the drawing experiments again, but rotate the cube so that no
edges are vertical and no faces are at right angle to the line -of -sight . Yes,
you 've guessed it : three-point perspective. But where are you in this scene? Why
are vanishing points called vanishing points ? Can you generalize the perspective rules of the last several pages?
357
Chapter 8
0
0
~
' "
/ ' "
/
/
SOl-It>CI-\&E:
1
0
~
Modeled one-point perspective (almost)
~
How could we draw a one-point perspective version of a cube? But let's be more
general than that . What about polyhedrons ?
Suppose that a single vanishing point has been defined as a two -element
list . Let's make it a global variable and name it : VP. The two elements will be
the x and y coordinates of the point . Now let's draw a 3D CNGON
. Whenever the
turtle arrives at a vertex of the polygon, it should record its current position and
then point toward the vanishing point . Next, send the turtle forward by an
amount that corresponds to the CNGON
's thickness and then return to the recorded
position . Now go on to the next vertex, and so on. In Logo terms, these rules would
translate into something like the following :
358
space
TO NHEDRON: N : RAD : THICK
; To draw a " kind " of
one - point perspective
; rendering
of a 3D CNGON
.
LOCAL " EDGE MAKE " EDGE 2* : RAD* SIN (180 / : N)
PU FD : RAD
RT 180 - (90* ( :N- 2) / :N) PD
REPEAT:N [FD :EDGERT 360/ :N
RECORD
. POS SETH TOWARDSFIRST : VP LAST :VP
FD : THICK -
RESTORE
.POS
]
LT 180 - (90* ( :N- 2) / :N)
PU BK :RADPD
END
This procedure will draw figures similar to the following :
Drawing the NHEDRON
'S back face
Now, how do we connect the ends of those lines that have been drawn toward
the vanishing point ? If we knew the x-y positions of those ends, we could draw a
line from the first end to the second, from the second to the third, and from the
third back to the first . How ? Maybe we could store these end point locations in a
list . If we could put them all into a list, we could join them all together somehow. The following procedures will let us do precisely this.
359
Chapter8
TO EMPTY
.BAG
; To create a global variable
; sure that it is empty .
MAKE" POINT. BAG [ ]
END
TO ADD. POINT
i To put the
turtle
' s current
named : POINT. BAG and make
x - y location
: into the :POINT. BAG.
MAKE" POINT. BAG (SE : POINT. BAG XCORYCOR
)
END
360
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
TO CONNECT : LIST
; To connect the x - y point
stored
IF EMPTY? : LIST [ STOP]
SETXY (FIRST : LIST ) (LAST : LIST )
PD
CONNECT (BF BF : LIST )
END
in
a list
,-
.
Space
Completed NHEDRON
Let's put the new list apparatus (indicated by <- - - ) into the body of NHEDRON
:
TO NHEDRON
;
To
;
rendering
: N
draw
a
: RAD
"
: THICK
kind
"
of
a
of
3D
LOCAL
" EDGE
MAKE
" EDGE
LOCAL
" POINT
. BAG
< -
-
2
/
EMPTY
. BAG
PU
FD
: RAD
RT
180
-
REPEAT
< -
-
( 90
*
: N
one
CNGON
-
point
perspective
.
2
*
: RAD
*
SIN
( 180
/
: N
)
-
-
(
: N -
[ FD
)
: N
: EDGE
RT
)
PD
360
/
: N
RECORD
. PO.'>
SETH TOWARDSFIRST : VP LAST : VP
FD : THICK ADD. POINT - < - - RESTORE
. POS]
LT 180 - (90* ( : N- 2) / : N)
PU BK : RAD PD
RECORD
. POS
PU CONNECT
< -
SETXY
;
( FIRST
Connect
RESTORE
-
-
: POINT
. BAG
: POINT
last
. POS
end
. BAG
point
< - - )
(FIRST BF : POINT . BAG)
to first
end point .
< - - -
< - - -
END
One
- point
perspective
experiments
The images in the left column of the next page are drawn with a vanishing point
that can be marked on the screen with an asterisk . The vanishing point was
created by MAKE " VP [ 2 0 0 150 ] . The images in the right column are drawn
with a more distant vanishing point that cannot be marked on the screen. It was
created by MAKE " VP [ 800 600 ] .
Explain the differences between these two scene sequences in words . Be
specific .
361
Chapter 8
Near and distanIt vanishing points
~i-
,..;' 1
It :"
?
l~
-:,.~
/
~\-
~
2..~
2. ~
,....;"
~ \*
..;"
4-0:-
362
.f,)
Space
More one -point perspective experiments
Explain the following
in words . How do you interpret
the placement cues? How
were the images created ?
.~
--,, *
l'
[IIJ[] [ ]
[IJ[ ] [I]
[ ] [J][Q
~ *
l'
[]][IJILIJ
[][][]
[ ] [ ] []J]
~*
.,,?I
363
Chapter8
Tumbling NHEDRONs
~ ~ <q] ~
~ ~ ~ ~
~ ~ "'<tl ~
~ ~ ~ ~
~ ~ ~ ~
~ '<2>~ ~
!l:JJtl:ll tl:l; ~
~ !]:J) {t:JJ
lDJ
~ ~ ~
1lJJ
[] Q; ~
~~ ~ ~
~ ~ <cD~
~~~ ~
Q 0 00
a a (2) Q
00c0
0000
0000
364
Space
NHEDRON " mistakes "
NHEDRON doesn 't really
draw
correctly, does it ? The one -point
system that NHEDRON uses is not classical
one -point
lengths aren 't correct, and shapes near the vanishing
But does this matter
deformations
perspective . The line
point are badly deformed .
if you can read the placement
are space data, after all, and rather
perspective
message ? NHEDRON 'S
more expressionistic
than
" correct " foreshortenings .
What is most important
photograph
might
or to express the quality
be understandably
photograph
: to draw a scene exactly as it would
of its space relationships
original ? You know
look on a
in a way that
my answer . If you
want
a
of cubes, that 's OK . If you want to think about cubes in space, then
consider building
a space-cube model with a bizarre perspective system .
Recapitulation
This chapter introduced the idea of adding depth cues to images. We modeled
several varieties of such cues so that you could see how your eyes responded to
them . I hope you were surprised, and pleased, to be able to watch yourself doing
something
modeling
about which
you probably
had little
previous
knowledge . Visual
can be very tricky and very revealing .
And now that you have learned something
about your eye 's conception
of
space, work with your new colleague on the exercises that follow .
365
Chapter8
Exercises
There are ten exercises for this space chapter. Be outlandish, flamboyant, and
singular, but do it all multidimensionally .
Exercise
8 .1
Design an Escher box-like shape that is composed of triangles . What about
pyramids ? A pyramid is any shape that has a polygon for its base and triangles
for its sides. Build a pyramid model that will shade and place your objects in
space. You may want to include the ability to overlap pyramids using the
painter 's algorithm . Use the model to produce a variety of pyramid graphics .
~ fnve to m ~ f<e eaTh ~~elle ~s tl )~~e' te! l\ ' troTh\':ne<Ij& eY~ d ~1>' lf~~}ull'"t:", ~ ' U7{\ "\Jv<t::i \Wf ..
" jrnnossjbIe
..
" ......"
nvramids
.
The real exercise is to explore how we see pyramid -ideas in space, so don 't
forget to comment- in prose - on what you have learned . Does your eye read
pyramid shapes differently from the way it reads the box shapes investigated
in the chapter? Why might this be so?
The following pages suggest one approach to this exercise; in fact, it 's the
way I did it . You might like to review my geometry, but probably you will want
to model pyramids differently .
366
Space
Shaded pyramids in space for Exercise 8.1
~ ~ ~
. ~
~ ~ ~
~~~
~~
(/!}~ ~
367
Chapter 8
Geornetr
~ andtrig forrn~ shaded
~~rarnids
Study the following
figures . Imagine that the pyramid
is hung, like a
Christmas tree ornament, from its apex. Seefigure 1 on the next page. Image the
turtle to be at position (1), pointing downward . If we can tell the turtle how to
draw the leftmost triangular face of the pyramid, it will know how to draw the
remaining ones.
But first, how shall we define the shape characteristics of the pyramid
that we want the turtle to draw ? See figure 2. I have selected the lengths of the
visible edges of the pyramid (the " a" s) and the angles that separate these
edges (the " a" s).
Second, how shall we indicate the kind of shading we want on each face?
See figure 3. I will want shading lines tha t are parallel to the base of each face
(the " c" s), and I will tell the turtle the number of such lines I want per face.
OK, let 's get back to structuring the turtle 's walk through the first face.
Figure 4 shows the bits we need to rela te. We know a, b and a, and we will need
to calculate the rest. The page after next gets on with it . If you can't follow my
method, or if you don 't want to, you are ready to find your own approach . Pick
whatever comes naturally to you, but try to be as simple and straightforward as
possible .
368
Space
Figures for my shaded pyramids
M
b,
b
[ i~I}
[ }I~J
369
Chapter8
Calculation
of theparts
Suppose we know a, b, and a.. We need to calculate~c and ~:
1. h is the height of the triangle . It meets side b at a right angle dividing it into
two segments: bland b2.
2. SIN a = h/ a
- -- > h = a*SIN a.
3. cas a. = bI / a
---> bI = a*CaS a.
4.b = bI + b2
b2=b - b1
- ->
5. TAN<I>= h/ b2
---> 4> = arctangent
6 . The
angles of any triangle sum to 180 degrees
(180- ~ ) = 180
interior
--- >
a.
+
<t> +
--
>
a.
+
<t> - ~
= 0
--- >
~
=
a.
<I>
This
gives
7 . SIN
<t> =
+
us
~
hI
c
--->
c
=
hlSIN
This
gives
us
h / b2
< ----
<t>
c
< ----
Now look back at figure 3. How do we calculate cl and c2? The parallel " c" s
divide the large triangular face into smaller but similar triangles . Remember
the business about parts of similar triangles from geometry ?
Using the idea of similar triangles, we can say that cl is to c as al is to a
(cl / c = al / a). So cl = (al / a)*c.
Finally, note that the turtle (already pointing downward ) must turn right
by the angle e before drawing the "a" edge of the first triangular face.
370
Space
Exercise
8.2
Shading
techniques
light
sources
would
arguments
into
placement
of
light
The
Escher
light
related
within
box
source
a
scene
as
to
well
the
scene
.
model
as
shadows
that
different
Try
to
incorporate
. You
will
need
the
intensity
light
to
and
kinds
think
quality
of
source
about
( color
)
the
of
the
.
8 .3
Escher
alternative
box
motif
ways
visual
idiom
the
be
create
an
produced
Exercise
should
idioms
is
, and
for
only
I
have
representing
one
symbolic
included
cubes
way
one
in
below
space
to
express
a
. Devise
. Design
cube
a
a
. There
number
model
are
of
to
many
different
speak
,
your
.
Exercise
8.4
Cubism was an art movement of the early twentieth century that attempted to
give a visual account of the entire structure of objects in space. In practice this
meant superimposing and combining several views of the object, all within a
space limited by the dimensions of two -dimensional canvas. The goal was to
project the idea of an object in space without being constrained to show it from a
single point of view . Cubist practitioners included Picasso, Braque, and Gris .
371
Chapter8
Find a few postcard reproductions of cubist works that you like and explore the
images with Logo models. Comment on how you have characterized cubist space
in your work .
Exercise
8.5
What is the room that you know best? Perhaps it is your bedroom, workshop, or
study ; but it could also be an outdoor enclosure: a greenhouse, gazebo, or garden
shed. Build a Logo model to document the shape and spatial qualities of this
room . Keep your spatial vocabulary spare but expressive.
Here is the most expressive example of a personal room model that I have
in my postcard collection : Van Gogh's asylum bedroom .
372
Space
Exercise
8 .6
Produce a shaded sphere, cylinder, or prism . Be innovative . Don 't rely on the
shading ideas of the chapter; invent some new ones never seen by Earthlings .
Exercise
8 .7
Produce a landscape of a variety of shapes, all consistently shaded and
perspected. Explain what you mean by consistently, though .
Exercise
8.8
What
Logo
doing
about
?
Can
it
Exercise
How
space
that
impossible
.
two
-
be
done
it
Then
8
about
do
it
three
at
all
- point
with
perspective
Logo
?
?
Try
to
Can
explain
this
be
how
you
done
easily
with
would
go
about
.
.9
designing
your
creations
they
and
by
are
space
"
the
space
Hungarian
impossible
grids
own
?
artist
. "
Compete
On
the
Tamas
with
following
Farkas
Farkas
pages
.
by
Don
you
' t
designing
believe
will
see
some
the
claim
your
own
.
373
Chapter 8
Farkas grids 1
374
Space
Farkas grids 2
375
Chapter8
Farkas grids 3
376
space
Exercise
8.10
We have drawn figures that look as if they have three dimensions . But what
about four (or more ) dimensions ? Let 's review everyday space with a few
drawings . We can start with a single point : see (I ) below . No dimensions in a
single point, right ? If it 's very tiny . Next, draw a horizontal line from it toward
(2). We have a one-dimensional line .
C, )
( 2. )
.
)
Now, pull
toward
the line
is two - dimensional
.
this
line
downward
(4)- (3 ) . Connect
. We could
it 's clearly
two - dimensional
Obviously
, we must
from
two - dimensional
the
eye
dimensions
about
, parallel
the vertices . Now
call it by a fancier
. Next, let 's pull
rely on some drawing
(5 )- ( 6) - (7)- (8) . Connect
this
the
that
name, a plane, but either
way,
plane
into
three
it, parallel
the vertices . We have
dimensions
.
to force three dimensions
of this chapter
plane, ( 1) - (2) - (3 ) - (4 ), " forward
this by pulling
shade,
figure
conventions
to itself, down
a three - dimensional
( \)
<\ >
a window
we have a square
paper . We can use the conventions
this . So, pull
: illustrate
to itself, like
" into
to fool
three
and to the left :
cube .
( 2 )
( ' 2. )
( 5)
( ~ )
( 4- )
.
.
( 4- )
(3)
( 8 )
3)
( ~ )
Now, for the fourth dimension. Of course this can't be done. But let's
diagram the ideaby pulling the three-dimensional shape, the cube, parallel to
377
Chapter 8
itself
,
right
into
another
angles
to
We
Let
's
can
the
the
long
let
' s
pull
stylized
the
eye
the
cube
fourth
four
whatever
only
is
given
I
( 1
) - ( 2
6
each
of
them
fourth
were
,
aren
depth
) -
( 5
Connect
we
cube
' t
cue
so
) - ( 6
) - ( 7
) - ( 8
the
vertices
We
that
the
.
we
OK
be
the
do
all
right
.
to
have
the
this
Why
anything
be
what
is
?
want
read
right
)
.
into
So
the
known
as
2- )
~
( 4 - )
lB
)
"
"
-
Play
scheme
with
for
What
a
shaded
into
about
hyperpyramids
to
wings
378
.
hypercube
looking
hyper
remember
dra
this
convention
four
your
with
space
bit
scenes
,
- NHEDRON
state
- dimensional
a
conventions
Can
,
perspective
invent
hypercylinders
?
in
you
an
alternative
Can
you
?
hyperspheres
nice
.
words
Do
so
?
some
that
4D
people
modeling
can
draw
,
read
.
not
we
can
at
?
represent
drawing
and
and
other
to
can
down
must
to
and
?
)
each
want
down
they
dimension
to
convention
the
) - ( 4
the
.
(
(
as
that
pulling
) - ( 3
.
)
' 5" )
,
some
hypercube
(
Remember
conventions
dimension
- dimensional
.
visual
of
are
as
three
convention
systems
as
other
choose
select
Spatial
dimension
your
but
a
Chapter 9
Closure
"
Purpose
shapes
special
process
purposes
person
.
are
D
.
N
.
years
the
us
in
by
ago
Center
class
.
next
to
and
I
My
results
,
for
the
methods
when
creative
or
She
We
on
ordinary
special
processes
mental
appropriately
'
grimly
to
but
processes
in
unreasonable
determined
spot
something
did
from
,
a
,
of
the
to
find
the
horns
bin
'
accident
report
rue
Lepic
,
fish
and
.
were
on
an
able
intentions
. "
slammed
rushed
a
.
poetry
workshop
There
were
questioned
and
her
we
were
return
and
slavishly
.
And
the
ridiculous
following
feelings
of
teaching
to
structured
by
five
,
her
then
she
tasks
.
gave
the
.
a
local
class
on
,
I
I
overly
vividly
"
,
my
on
for
but
week
vindicate
it
and
woman
they
would
up
Raspail
exercises
poem
"
signed
each
remember
blew
of
the
silly
short
I
boulevard
liked
the
how
I
a
I
found
,
write
afternoon
shopping
I
,
on
exercise
convinced
;
Paris
Artists
.
her
assignment
in
specific
.
show
was
arrived
teacher
solution
were
late
the
a
to
I
I
and
assigned
planned
"
after
plus
our
,
soon
Students
-
read
accident
fallen
occurs
not
intentions
at
my
depends
Perkins
Fifteen
the
Discovery
Creating
marshaled
Unreasonable
"
.
accident
,
I
some
.
returned
to
street
hoping
that
down
my
only
of
I
thought
I
city
around
happen
slip
-
covered
On
the
wandered
to
fish
.
of
would
street
table
,
section
.
something
a
trite
mishap
the
into
How
.
on
And
some
ice
ice
:
,
an
Chapter 9
accidental meeting with fish . That was the title I found on the street. I went
home and got on easily with the exercise.
I am no poet, but
class . The reason
own
form
I wrote
that
intentions
.
Problem
finders
Jacob Getzels
problem
I would
have
and Mihaly
Institute
of Chicago
them ; the
results
were
longitudinal
study
of problem
, these
provided
of the drawings
and structure
after
ever
written
in that
sought
out my
the form
would
were
them
studied
a book
to select
in preparation
with
to track
with
the ways
were
vision : a
from
a number
a still
life . The qualities
the students
used to approach
followed
the students
their
success . The form
of their
what
the authors
their
called
to
York, 1976 ). For
a set of objects
the methods
assigned
The creative
Wiley, New
for drawing
unreasonable
male art students
that
called
in art (John
asked
it . Very
the problems
in
finding
I found
for seven years
success, or lack
" problem
finding
of it,
styles "
in art school . Can you guess the results ?
Getzels
working
and
found
a relationship
and
both
the
success
seven
years
later . The most
and later - came
most
draw . They
in fact, they
from
students
time arranging
began
organizational
the objects
Csikszentmihalyi
procedures
professional
380
before
the exercise . The researchers
was then compared
spent
I have
I wasn 't sure what
explored
were compared
graduation
while
to explore
published
students
and arrange
. Although
Csikszentmihalyi
at the Art
example
that
for my success was, I think, that I passionately
for each given
be, I knew
the best poetry
their
structure
seemed
and
selected
and manipulating
work
without
they wanted
to discover
moving
who
quality
them
of
any
that
specific
they
drawings
's
and
his
work - in art school
unusual
in their
a student
work
objects
these objects before
to capture
about . As their
student
effective
the most
having
a structure
his
between
and who
they started
conception
to
of the
arrangement
of objects ;
liked
through
handling
progressed
, the more
Closure
imaginative students tended to rearrange their objects, to introduce new elements
or to eliminate others . They changed paper, switched drawing media, and
changed their drawing position more often than their less successful classmates.
And when they were finished, these students said that elements in their final
drawings still might be changed without destroying its character.
In addition to working styles, these researchers found that a concern for
fundamentals also affected creative production . The effective problem findersGetzels and Csikszentmihalyi 's label for those students who found and
structured their own problems - tended to describe their work as being based on
matters of deep personal concern to them, even when these themes were not
visually present . It seemed as if the energy for the realization of the problem
finders ' exploratory style was funded by their passions.
Exploratory facility
I wrote this book with the conviction that a personal problem -finding ability is
necessary for real creativity . But how can this ability be encouraged in the
realm of visual problems when most students suffer from a lack of exploratory
facility ? They may have the passions, but they lack a sufficient
visual
vocabulary and the most basic artistic skills and will that could have helped
them start fashioning a personal vision language. I am convinced tha t visual
modeling can substitute for these lacks. How ?
Visual modeling is an environment in which you can offer yourself the gift
of seeing on your own terms. The attendant luxuries - design skills, rich visual
word -images and metaphors - are all there, inside that space. The substance of
this book is to offer you sight of this kind of environment . But you must not stop
here. You must extend modeling into your own worlds .
381
Chapter9
Premature closure
We haven't spoken of closure since Chapter 2. As a design spreads itself onto the
surface of your screen, it may eventually repeat itself or close on top of itself .
Closure may come very soon, or only after many " rotations " of your visual
machinery . Be on your guard, though . Premature closure, like death and entropy,
must be fought . Change your arguments, or change the models, or find another
problem . But always look through closed figures ; there may be others, just
behind them, that are far more intriguing .
All the images in this book are now closed, or are they?
A final illustration
I
wanted
to end with the same simple polygons we have labored with
throughout this book but in a design that did not, and would not, close. It is a
nonperiodic tile pattern .
Reading list
I am sure that the character of this book would not be changed if I, like Getzels
and Csikszentmihalyi 's problem -finders, changed some of its elements. I feel
the same about the following list of books. I present a relatively short selection
382
Closure
of
some
of
the
differently
it
is
about
a
gra
my
that
mind
,
-
in
of
the
Abelson
extended
and
Logo
the
, you
third
Harold
for
if
should
book
Brian
Harvey
Seymour
Papert
Read
book
a
useless
for
that
the
books
I
. There
are
three
quite
different
explore
me
I
have
to
think
offered
mentioned
in
you
the
have
never
read
the
in
,
this
the
book
word
.
ideas
are
be
Logo
of
about
from
,
could
your
study
read
reasons
and
while
exceptions
mathematics
-
careful
Andrea
diSessa
, The
, Computer
, 1985
Ps ~ cholog
diSessa
mathematics
, New
encouraged
else
mathematics
exercises
and
Cambridge
Books
them
,
text
.
the
The
of
computer
not
easy
by
's
philosophy
Seymour
science
.
.
,
the
Both
However
,
reading
would
be
.
behind
Papert
second
selected
books
the
the
style
Harvey
,
uses
reads
aided
however
first
while
programming
Brian
,
the
inventor
invention
himself
,
in
.
Abelson
exploring
of
repeated
programming
by
you
everything
to
the
enriched
,
each
with
and
Finally
of
-
on
Like
are
Logo
work
Each
language
familiarity
your
.
not
geometry
require
most
have
books
through
useful
.
Logo
Logo
turtle
investigates
I
wonderful
of
books
the
most
found
modeling
.
and
quite
notion
I
selection
~ hics
are
that
visual
personal
Turtle
To
books
, 1986
MIT
, 1980
geometry
, Cambridge
Logo
style
,
3
: the
computer
, 1981
.
volumes
,
The
computers
and
powerful
is a short
selection
as a medium
MIT
Press
,
.
, Mindstorms
York
Press
science
, 1987
, Turtle
;
children
,
ideas
,
Basic
.
)::
anything
by
Rudolf
Arnheim
. Here
:
Visual thinking, University of California Press, Berkeley and Los Angeles, 1969.
383
Chapter9
Entropy and art, University of California Press, Berkeley and Los Angeles, 1971.
Art and visual perception: a psychology of the creative eye, University
of
California Press, Berkeley and Los Angeles, 1974.
The power of the center: a study of composition in the visual arts, University
of
California Press, Berkeley and Los Angeles, 1982.
New essayson the psychology of art, University
of California
Press, Berkeley
and LosAngeles, 1986.
Next, a hodgepodge of titles that I found of interest . They will lead you to other
sources.
Carl Jung, editor, Man and his symbols, Doubleday & Company, New York, 1964.
E .
H .
Gombrich
representation
,
Art
and
, Princeton
University
Press
, Princeton
, Cambridge
the
psychology
of
, New
Jersey
, 1960
.
of graphic production processes
, Cambridge University Press, Cambridge,
cognition
:
, 1981
pictorial
van
and
Press
in
Peter
Drawing
MIT
study
studies
,
, The
a
Block
Sommers
, Imagery
:
Ned
1984
, editor
illusion
descriptive
.
and experimental
.
D. N . Perkins, The mind 's best work: a new psychology of creative thinking,
Harvard University Press, Cambridge, 1981.
Ellen Winner, Invented worlds: the psychology of the arts, Harvard
University
Press,Cambridge, 1982.
William J. J. Gordon, Synectics
: the development of creative capacity, Harper &
Row, New York, 1961.
384
Closure
Liam Hudson, Contrary imaginations: a psychological study of the English
schoolboy, Methuen, London, 1966.
Mildred
L. G. Shaw, On becoming a personal scientist: interactive computer
elicitation of personal modelsof the world, Academic Press, London, 1980.
Other design books I like :
Peter S. Stevens, Handbook of regular patterns: an introduction
to symmetry in
two dimensions, The MIT Press, Cambridge, 1984.
385
Chapter 9
Charles Bouleau, The painter 's secret geometry: a study of composition in art,
Harcourt, Brace & World, New York, 1963.
Magnus J. Wenninger, Polyhedron models, Cambridge
University
Press,
University
Press,
Cambridge, 1971.
Magnus J. Wenninger, Spherical models, Cambridge
Cambridge, 1979.
D 'Arcy Wentworth
Thompson, On growth and form, Cambridge University
Press, Cambridge, 1961.
Dover press publications
are a treasure trove of design ideas . They are located at
180Varick Street, New York, NY 10014.Write them for their catalogue.
Finally, find a library that takes the following journal . It is quirky and quite
wonderful : Leonardo: journal of the international society for the arts, sciences,
and technology.
Art
his t ! : X
Go to museums and galleries and buy lots of postcard reproductions .
A mixed bag of things
Judith Wechsler, editor, On aestheticsin science, The MIT Press, Cambridge,
1978 .
Benoit
Mandelbrot, The fractal geometry of nature, W . H . Freeman and
Company, San Francisco, 1977.
Douglas R. Hofstadter, Cadel, Escher, Bach, Basic Books, New York, 1979.
386
Closure
Douglas R. Hofstadter, Metamagical themas: questing for the essenceof mind
and pattern, Basic Books, New York, 1985.
Rudy Rucker, The fourth dimension, and how to get there, Rider and Company,
London, 1985.
William Poundstone, The recursive universe: cosmic complexity and the limits of
scientific knowledge, William Morrow and Company, New York, 1985.
Istvan Hargittai, editor, Symmetry: unifying human understanding, Pergamon
Press, Oxford, 1986.
Edward R. Tufte, The visual display of quantitative information, Graphics
Press, Cheshire, Connecticut, 1983.
Christopher
Alexander, Sara Ishikawa, and Murray
Silverstein, A pattern
language: towns, building, and construction, Oxford University Press, New York,
1977.
387
Index
ADD.POINT, 360
copying, 4
A. PIPEGON
, 49
crescent
machine
, 68
CROSS, 126
Csikszentmihalyi, Mihaly, 380
CSTEP, 174
cubist
space, 371
Delaunay, Robert, 83
Delaunay experiments, 89
Delaunay machine, 83
depth cues, 156, 338
dialects of Logo, 6
DOUBLE
. RINGS
, 85
E . BOX, 344
emotion grid, 234
EMPTY
. BAG, 360
enclosing nephroids, 339
equipment, 5
Escher
, M . C ., 340
Escher
box, 340, 343, 366
EVAL, 239
exploratory facility, 381
EXPLORE
, 73
eye's conception of space, 366
Farkas
, Tamas
, 373
Index
FIVE . TARGET
, 88
hyperpyramid, 378
FLAG, 174, 175
hypersphere, 378
flag modeling, 212
FLASH, 51
focusingrandomgrids, 196
FOUR.TARGET
, 88
fractal, 144, 146
imaginary machines, 54
impossible space grids, 373
INGON, 121
IRSTEP
, 239
Islamic
art, 216, 235
FRACTALGON
, 146, 330
fractal landscapes
, 330-336
Japanese pen -and -ink trees, 321
fractal mountain machine, 336
Kandinsky, Wassily, 193
FRUIT, 294
Kandinsky grids, 193
FRUIT. LIST . TREE,295
Kelly, George, 58
generalize, 164, 212
Klimt
generalizedGothicstonemason
LAY, 180
mark, 133-135, 160
, Gustav
, 326
LAY . HEX . TILES
, 82
generalizednephroids, 150
LAY . SQ . TILES
, 79
generalizing, 12, 16, 69, 133, 184, 188
LAY . TR . TILES
, 81
Getzels,Jacob, 380
light source arguments, 371
GIVE. MOTIF, 173
lists, 165 - 169, 172 - 173, 189, 236 - 237,
GIVE. PT, 166
295, 321, 359 - 361
global variables, 140
local
G.MARK
, 134
log grids, 230
GO. PT, 168
Logo mechanics, 2
GO. RANDOM
. SCREEN
, 186
L . PIPEGON
grid machine, 237
grid of stylized faces, 213
variables
mandalas
, 140
, 51
, 158
MARK . 13, 132
Hackney, David, 231
MARK . 16, 133
hypercube, 378
mason mark designs, 128
hypercylinder, 378
Mayan -inspired grid, 179
390
Index
M.BOX,201
PIP, 243
M.EXPLORE
, l34
PIPEGON
MF. TREE, 294
placement (as perspective device),
minimal designelements,241
, 46, 47
163
modeledone-point perspective,358
placement ambiguity, 346
modeling, 115
pointillist
models, 34
pool -light grids, 231
Mondrian, Piet, 162, 199, 214
premature closure, 382
motif, 164
probabilistic grids, 205
MOTIFlist, 172
probabilistic selection, 201
M. TREE,294
problem finders, 380
NARROW
. SPLINES, 86
problem -solving style, 64
NEPHROID
, 150
procedure presentation style, 22
nephroids, 148
NEST. DEMO
, 244
trees, 319
procedures, 10
programming as craft, 3
NGON
, 17, 47
pyramid graphics, 366
NHEDRON
, 359, 361
quality of edges, 255
NIGHT. SHADE
, 350
quality of polygon lines, 136
one-point perspective, 356
random components, 182
one-point perspectiveexperiments,
361
randomized
trees, 306
randomness
- within
ONE.TARGET
, 87
RANDOM . NUMBER, 183
overlapping designs, 264
random
overlapping grids, 351
RANDOM . PLACER
, 187, 188
overlapping shapes, 349
RANDOM . PLACER
. X, 191
painter's algorithm, 350
personalmark, 111-114
perspective, 354
P. GET,203
numbers
- a - structure
, 286
, 182
random rectangular grid, 182
random
screen
locations
, 183
RAND. TREE, 3q6
reading objects in space, 337
391
Index
RECGON
, 94, 96
RECORD
. Pos, 178
size variation
(as perspective
device ), 347
rectangulargrids, 169
stone mason marks, 107 - 110, 117
recursingpolygons, 94
SPIN, 70
recursingsquares
, 125
SPIN . CONGON, 70
recursingtrees, 287
recursion, 20, 92, 97, 119, 124, 144,
SPINGON, 20
288
S . PIPEGON, 50
SPIRAL, 180
recursiondiagram, 99-101, 124-125
SQ, 139
recursivedesignfeatures, 119
SQ . EXPLORE, 125
RESTORE
.POS,179
SQUARES, 124, 125
RIFLAG, 238
star and saw blade, 257
RIM. FLAG,349
STAREDGE, 140
RIM. ROWER
, 349
STARGON, 140
RIM. RSTEP
, 349
STAR . NEPHROID, 152
RING. DEMO
, 269
stars, 137
RINGS,269, 270
state transparency
ROT,237
, 65, 70, 175 - 179,
287, 291
ROWER
, 238
stopping
RR, 185, 304
story boards, 169 - 171
RSTEP
, 174
S . TREE, 288
rug designs
, 277
STRIPES, 131
SAW
. DEMO
, 261
surface
shading, 340
SAWGON
, 260
symmetry
, 163 - 164
SEED
, 300
tarot
Seurat, George, 321
TEEPEE, 177
SHADE
, 344
teepee sha pe, 177
SHADED
. DEMO
, 345
Terrapin
shadedpyramids, 366
three - point
shadingschemes
, 340
tile design, 240
392
recursive
procedures
deck, 159 - 160
MacLogo
,6
perspective
, 357
, 22
Index
zodiac, 159
tiling spinning : shapes, 78
tinkering, 4
TIPGON, 127
TIP
. STARGON
, 152
TP1, 178
TP2, 179
TP . DEMO, 257
TPGON, 252, 253
tree experiments, 288-290
turtle
reference
commands
turtle
space, 7
turtle
walk
, 8
, 25, 41 - 46, 122 - 124, 138,
149, 169
TV test pattern, 213
two- point perspective, 357
TWO . TARGET
, 87
unreasonable
intentions
, 379
van de Velde, Henry, 321
vanishing points, 361
VERIFY
, 204
visual experiments, 72-73
visual sensitivity analysis, 75
Warhol, Andy, 213
weed
model
, 299
WIDE
. SPLINES
, 86
windowing, 188-189
WING, 269
ZIP, 162
ZIPM, 162
393
The MIT Press, with Peter Denning, general consulting editor, and
Brian Randell, European consulting editor, publishes computer science books in the following series:
ACM Doctoral Dissertation Award and DistinguishedDissertation Series
Artificial Intelligence, Patrick Winston and Michael Brady, editors
Charles Babbage Institute Reprint Seriesfor the History of Computing,
Martin Campbell-Kelly, editor
Computer Systems, Herb Schwetman, editor
Exploring with Logo, E . Paul Goldenberg, editor
Foundations of Computing, Michael Garey, editor
History of Computing, I . Bernard Cohen and William Aspray, editors
Information Systems, Michael Lesk, editor
Logic Programming, Ehud Shapiro, editor ; Fernando Pereira, Koichi
Furukawa, and D . H . D . Warren, associate editors
The MIT Electrical Engineering and Computer ScienceSeries
Scientific Computation, Dennis Gannon, editor