> 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.
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 comesfrom simply playing, on your own terms, with a miniaturized piece of the world.
I believe that this kind of play, because it encourages us to look more closely at our world, is very useful enjoyment.
In addition, I am convinced that the clarity of vision developed by such play is best pursued by involving ourselves, not in just the manipulation of models but in their design and construction as well.
Chapter 1 will let you compare your current knowledge of Logo mechanics with what you will need to build the visual model described in the next section.
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 tightly into two corresponding holes.
Dowels are used by cabinetmakers 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.
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 ground.
Now, hold one of the dowel-rollers parallel to the length of the pipe and place it on top of the pipe.
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 difficult, certainly more complicated than the centered polygon problem discussed in Chapter 1.
But, if we could just break this problem down into smaller, more manageable parts, as we broke the polygon problem down, some of the complexity might vanish.
If we know how many times we want to photograph the roller on its way around the pipe, we can calculate θ, the degree distance between stoppings, by dividing 360 by the number of stoppings.
And knowing the radius of the pipe and of the roller, we can use the tidy expression above to calculate φ, the relative rotation of the roller from one stopping point to the next.
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.
Draw a circle around point (1) with radius R<sub>p</sub>.
This will be easyto do using `cngon`.
(This procedure is listed below, but see Chapter1 for a full description of it.
Think of it as a black-box procedure
DIAGRAMS A through H: Turtle walk sketches of the roller-pipe machine.
that draws regular polygons around a central point.
`cngon` takes two arguments: `n`, the number of sides of the polygon to be drawn, and `rad`, the radius of the circle that circumscribes the polygon. For example, `cngon (20, 60)` would draw a circle--a 20-sided polygon--of radius 60.
The turtle's current position defines the _center_ around which the polygon would be drawn.)
#### Diagram B: Drawing the roller in its first position on the top of the pipe
Next, pick up the pen and move to position (2), the center of the roller.
This distance is R<sub>p</sub> + R<sub>r</sub>.
Now draw a circle of radius R<sub>r</sub> centered on position (2) to illustrate the roller.
#### Diagram C: Orienting the roller in preparation for drawing the arrow
Since the roller has not yet moved from the starting position, it hasn't done any rolling.
Hence, the arrow can be drawn poiunting straight up, and that is the direction in which you are facing.
Draw the arrow starting from position (2) and get back to this position when you are finished.
#### Diagram D: Getting back to the center of the pipe
Pick up the pen and move back to the center of the pipe, position (1).
#### Diagram E: Getting to the next stopping position of the roller
Turn left by angle θ, and go forward to position (3).
At point (3) you must correctly orient the roller before drawing the arrow.
Because the roller has now rolled a bit to the left of its starting position at point (2), the arrow will no longer point in the same direction as the line: (1) to (3).
It will be turned some amount to the left of it.
What must you take into account to calculate the rotation amount?
#### Diagram F: Orienting the roller and drawing the arrow
That's OK as long as your energy is up to fixing them.
```
fn pipegon! (pipe_rad
roll_rad
theta
total_angle
n) -> {
if lt? (n, 1) then cngon! (20, pipe_rad)
else {
penup! ()
forward! (add (pipe_rad, roll_rad))
pendown! ()
left! (mult (total_angle, div (pipe_rad, roll_rad)))
arrow! (mult (1.5, roll_rad))
cngon! (20, roll_rad)
rt! (mult (total_angle, div (pipe_rad, roll_rad)))
penup! ()
back! (add (pipe_rad, roll_rad))
left! (theta)
pipegon! (pipe_rad
roll_rad
theta
add (total_angle
theta)
dec (n))
}
}
```
### Supporting procedures
```
fn ngon! (n, edge) -> {
& To draw an `n`-sided polygon. The first *edge* will be
& drawn *from* the turtle's current position, and its length
& is given by `edge`.
repeat n {
forward! (edge)
right! (inv (n))
}
}
fn cngon! (n, radius) -> {
& To draw an `n`-sided polygon *centered* on the turtle's
& current position. `radius` is the radius of the circle that
& would pass through all of the polygon's vertices.
& See Chapter 1 for a full description of `cngon!`.
let angle = add (inv (4), inv (mult (2, n)))
let edge = mult (2, radius, sin (inv (mult (2, n))))
penup! ()
forward! (radius)
right! (angle)
pendown! ()
ngon! (n, edge)
left! (angle)
penup! ()
back! (radius)
pendown! ()
}
```
### Some `pipegon!` productions
I typed `pipegon! (60, 30, inv (6), 0, 6)`. This models, in a visual way, the rolling of a roller of radius 30 around the circumference of a 60 radius pipe.
The roller stops along the circumference every sixth turn, and 6 rollers will be drawn.
The argument `total_angle` is given an initial value of 0.
What is `total_angle` being used for?
What happens if you begin with some other value, say 0.12?
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?
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.
##### FIGURE 20.1-7: A slowly closing `pipegon!` (no code)
### 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 machines that aren't so real.
I started with this particular machine because I was interested in it.
I could have used any number of alternative illustrations, but this was my own direction.
I will show you, in the chapters to come, dozens of other examples that illustrate the ways in which visual modeling encourages the modeler to look at the world differently.
All of the exercises are based on my own interests and the interests of my students.
However, the ordering of these exercises in this book is _not_ arbitrary.
I have carefully placed my exercises within specific chapters and I have ordered and introduced these chapters in a very structured fashion.
Recall that the subtitle of the book is _A structured approach to seeing_.
My intention is to show you, very precisely, one approach to visual modeling and graphics.
I hope that the usefulness of this will be so obvious you will be encouraged to find your own approach, through your own examples.
In effect, I want you to write an alternative to this book.
### People as scientists: the work of George Kelly
Having admitted that this book is a very personal document, let me go further by introducing to you the work of an American psychologist who has greatly influenced my own thinking about model builting.
George Kelly, born in Kansas in 1905, was trained in mathematics, physics, sociology, and psychology.
Kelly's claim to fame comes from his view that each person tries to make sense of his world using techniques that are similar to those used by scientists.
In fact, Kelly viewed all people as scientists.
"Man looks at his world through transparent patterns or templets which he creates and then attempts to fit over the realities of which the world is composed.
The fit is not always very good.
Yet without such patterns the world appears to be such an undifferentiated homogeneity that man is unable to make any sense of it.
Even a poor fit is more helpful than nothing at all."
Kelly gives the name _constructs_ to the patterns that people try on for size.
He could just as well have called these patterns _models_.
These constructs--or models--"are ways of construing the world.
They are what enables man, and the lower animals too, to chart a course of behavior, explicitly formulated or implicitly acted out, verbally expressed or utterly inarticulate, consisten with 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 methodin making sense of a particular environment.
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.
Whether you feel successful in this activity or not, find the following book in your local library: E. H. Lockwood, _A Book of Curves_ (Cambridge University Press, Cambridge, 1963).
Design some _imaginary_ carnival rides and give your machines imaginative names.
Draw big sketches of 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 _before_ they climb aboard.
You had better show them some pictures of the trip as well.
Why not use Logo to generate these scenes?
#### 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).