The Fractal Geometry of Nature Its Mathematical Basis and Application To Computer Graphics
The Fractal Geometry of Nature Its Mathematical Basis and Application To Computer Graphics
The Fractal Geometry of Nature Its Mathematical Basis and Application To Computer Graphics
MIAR209MB
Michael E. Gaddis
Michael J. Zyda
C-2
,Jantuary 1986
Prepared for;
Arlington, VA 22217
86 3 19 06c"
NAVAL POSTGRADUATE SCHOOL
Monterey, California
The work reported herein was supported in part by the Foundation Research
Program of the Naval Postgraduate School with funds provided by the Clief of
Naval Research.
Mlichael J y
Assistant Professor
CompuLer Science
1A
UNCLASSIFIED
SECURITY CLASSIFICATION Of THIS PAGE (ften DoE. Entoted)________________
AGEREAD
REPOT DCUMNTATON INSTRUCTIONS
DCUMNTATON
_______REPOT AGEBEFORE COMPLETING FORM
1. REPRT NUMEK 12;GOVT ACCESSION 3. RECIPICNT'S CATALOG NUMIIER
NPS52-86-OOC
4. TITLE (and Sublifti) 5. TYPE OF REPORT & PERIOD COVERED
Michael E. Gaddis
Michael J. Zyda ______________
Mnavaly
PotgAdut School0 61152N; 1ROO0-01-MP
MontreyCA
9943-100N0001485WR41005
OS.TRiDUTION STATEMENT
01 W 00A deeW *DE0ufat
mEtoro# ta st'Ch30 to 6"e *006s)
18 SUPOLEMCNtANY NOTES
~istK
14V90301 tcCoJS 00040#4 eld. Its-*4ve."p od Id.4omo Iy Woe$' atw"E)
to transform initiating objects. The fractal objects that we create with this
process often resemble natural phenomenon. The purpose of this work is to
present fractal geometry to the graphics programmer as a simple workable tech-
nique. We hope to demystify the concepts of fractal geometry and make it
available to all who are interested.
SeA"CUIM~"O V "tl a
;•"•¢::~ 'iCL.AS
S IFIED
The Fractal Geometry of Nature: Its Mathematical
Basis and Application to Computer Graphics
Michael E. Gaddi. and Michael J. Zyda
Naval Postgraduate School,
Code 52, Dept. of Computer Science,
Monterey, California 93943
ABSTRACT
n1s CRAW
,~~) raa- 0n
OTIC TAB E
3 Thbw voeb ku tme asvpned by the NPS VowdeaFa Uk,.wO VtwptActi __" v'. i$--=...
SAvad andlo&
TABLE OF CONTENTS
D. IMPLEMENTATION - ~~ .......
.~ ............ I.....5-5
.4.-.- -.----
VI. SHORT CUTS TO MOUNTAIN SHAPES ......................................... 87
7
IS *LANK
is a synthesis of many of the concepts which developed from the mathematical
schism of the 19th century, most notably set theory and topology.
2. What is a Mathematical Model
"4 Reference 2 defines a mathematical model in the following fashion [Ref.
. 2:pp 1-3]:
This research will take the later approachl. It is designed to investigate the
mathematics of fractal geometry and to show its application to computer
graphics I hope to be able to tome the subject of fractal geometry by waking it%
oathematics and technique accessible to the average computer scientist.
m9
*1
U. THE MATHEMATICAL BASIS OF FRACTAL GEOMETRY
A. PRELIMINARIES
A complete definition of fractals is given later in this chapter but before we
can understand that definition, we must establish a foundation in set theory.
Fractals were discovered in set theory and topology. They can be considered as
an outgrowth of investigations into these related fields.
1. What is a Set
A set is defined in IRef $:pp. II1 in the following fashion:
A set is fored bv the grouping .t..oether of single objects into a whole. A set is
a plurality thoujlzt of as a unit. We can consider thes-e as r
as teference to a primitive Clrnept, familiar to us all, whose resolu ion into
-re fundamental conrepts would perhaps be neither competent nor nee, y,
will content ourwlves with this construction and will assume a. an axiom
that anibject M inherently determines otrtain other obifets o, 4,c, ..- in sOn
undefined way, and vic versa. We eptmhs relation by the worda Thea t M
consists of QZýOd d,6, C
othi
This definition is intentionally vague to allow the set to become the bask
building block for all mathematical consumas.
,: ,. 2. Some Set Theoretic Concepts
"Thi section prewets some backrnd definitios ror rocepts used in
the body of this chapter. The reader is directed to the references for a detailed
explanation or proof (Ref. 2:Chap 51.
I. Cardluality
Two sets S and T ae said to have the sanm number of rkrnwtntl. or to have the
same wdimraws, if there is a on"" frutioa I from S to T.
V•. 10
lFhmt. ana Infixite Sets
A Set Sis eald to be•fi.*e iftS hs the samne cardinality as #,or if there is.po-
uitive ipte•re n such that S has the same cardinality as (1, ,SD,$...n ) Other-
wise S i swid to be imn, ile.
Countabilty
A set S is ieid to be cowstaikf S has the same crdinality as a subset of N, the
set of positive integem. Otherwise, S is said to be
Metric Space
Ar ,e -14 #Pistt is a set in which we have a r e of 1he doseness oW proximity
o two elements of thf set, that is, we have a distance defined op t4e .et For ex-
ample, a moeic on R? wo*4d be the pytbusor•a metric:
CovrIng a S-4
Let X be a totpogira $wae- atad S a subsoetof X. A c~ d the W S is ex•tly
what its naqw- i=pis coludetao of subsets of X whbcb corer S. tWa Lk, w7os
., What is a Function
A function ia defined in Ref. 2:pp. 103-191] as
leI A and I be se. A 1xvitiOc (Ic mop. .or Up*&fot*oioa) I from A to 1),
denoted VA - B, is aretatin From A to B such tell.am
for every e which 6 an
Ielem, t of A thee exists uaique in Buuch thm <*,*- is au
neeat ofJ.
We write fYuJ - 4.
If f is function from A to1 B, then A is called the domain of the function f and B
iscalled the codomain of f
To completely define a function we must specify the domain, the codomain, and
the value 1(x) for each possible argument z.
b. Bijectivity
It is often useful to know to what extent a function maps from the
uomain to the codomain. If a function is not a partial function and every point of
12
the domain maps to a point in the codomain then we want to know if all points
of the domain A in the mapping /(A) mar to distinct points in the codomain B.
We may also want to know to what extent the mapping 1(A) covers the set B.
The definition of bijective, surjective end irijective functions is from [Ref 2:pp.
2041.
6. Functions From RN -* RN
A point in RN space is specified by an n-tuple of the form
(z'z
(Z 24z 31...... Zn). To completely specify a function from RN -_ RN each point in
tY, d-'-main must map to a point in the codomain. An example is:
2 2
:R-,R
2
f ((Z1, 2)) (Z, 2 )
This function is well defined. For each point in the domain of the function we
have specified a unique point in the codomain.
Most of the functions that are covered in this study are mappings within
R2 or R3. Fractal sets exist in all finite dimensions but it is impractical at this
point to use fractal functions beyond the fourth dimension in view of the graphics
display medium's limitation to two dimensions. The use of fractal functions
whose dimension is between 3 and 4 is currently being investigated by allowing
the function to roam the fourth dimension and then taking time slices which
yield three dimension approximations of the seut [Ref. 4J.
"7. Inductive Definitions of Sets
Functional constructs do not always provide a convenient we.ans of
charactering an infinite set. It is sometimes more eloquent and powerful to use
the inductive method to characterize a set.
13
:4
Our definition of inductive definitions of sets is from [Ref. 2:pp. 199201J.
14
B. DIMENSION
The classification of fractal sets from non-fractal sets is based on the
dimensional qualities of the set. To understand fractals you must have an
* appreciation for these differences.
The concept of dimension is one rife with difficulties. Many of the great
mathematicians have attempted to define dimension as a rigorous concept
consistent with the known mathematical systems. For each of their attempts
however, the concept becomes more prone to contradiction and paradoxes.
There currently exist five definitions of dimension that date back to the late
1800's 3. The classification of Fractal sets into a class of sets is the result of the
discovery of functions that created sets which did not fit comfortably into the
topological definition of dimension (which was the accepted definition at the
* ti-.e). Fractal sets are rigorously classified as those sets that demonstrate a
difference between the Hausdorff-Besicovitch dimension and the standard
topclogical dimension.
1. An Inaiitive Apprcach to Dimension
Dimension is a concept that seems intuitive when it is first introduced in
Euclidean geometrv ai the standard three dimensions. Long after Euclid made
the first attempts at defining dimension and concurrent with the discovery of
atomic particle pbysi:s the concept of dimension was rethought by the prominent
mathematicians of the umsn 1 his was necessary to realign the mathematical
model for the geoiet'ry of objicts with the new view of what those objects were
made ul. Our increasing -bility to focus on We nature of matter inevitably
causes the models we use to change.
The dilemma that arose from the new concepts of dimension quickly
developed into a theoretiý 4 debate that left intuition behind. When human
untuition fails, we must rely upon well founded models that are based on axioms
of basic mathematical truth. It is only through the rigorous ipvestigation of our
"V mathematical models that allows us to gn beyond ir•uitioa and investigate the
'11. Cattow and Minkowski; 2). Bouligean ane, Minkowski; 3). Pontraigin, Schnirehrnan and
Kolomozorov, Tihornirov; 4). Hausdorff-Pekitovitch and 5). the topological dimension (there are
others). Most of these definitions ,Ptconcerned with the moat efficient method of covering a set
(i.e. am topological Coae"%".
true physical nature of the objects we model. The debate still rages today and
borders on the philosophical. Two examples should suffice to demonstrate the
complexity and possible paradoxes that can arise from dimension theory.
The first is from [Ref. 5:pp. 323-344].
Consider the wa, in which we define the densityof air at a given point and at a
Eiven moment. We picture a sphere of volume V centered at that point and in-
luding the mass M. The quotient M/V is the mean density within the sphere,
and by the true density we denote some limiting value of this quotient. This no-
tion, however, implies that at the given moment the mean density is practically
constant for spheres below a certain volume. This mean density may be notably
different for spheres containing 1,000 cubic meters and 1 cubic centimeter
respectively.
Suppose the volume becomes continually smaller. Instead of becoming less and
less important, these fluctuations come to increase. For scales at which the
brownian motion shows great activity fluctuations may attain I part in 1,8O0
and they become of the order of I part in 5 when the radius of the hypothetical
spherule becomes of the order of a hundredth of a micron.
One steri further and our spherule becomes of the order of *a molecule radius. I~n
a gas it will generally lie in intermolecular space, where its mean density will
henceforth vanish. At our point the true density will also vanish. But about
once in a thousand times that point will lie within a molecule, and the mean
density will be a thousand times higher than the value we usually take to be
the true density of the gas.
Let our spherule grow steadily smaller. Soon, except under exceptional cir-
cumstances, it will become empty and remain so henceforth owing to the intra-
atomic space; the true density vanishes almost everywhere, except at an infinite
number of isolated points, where it reaches an infinite value.
116
only for a mathematical continuum and as such lacks application to the physical
universe as we currently know it 4 .
The two properties (continuity and dimension) cannot be separated.
Before the advent of atomic theory, matter was viewed as continuous and
composed of basic elements that were indivisible. While the debate raged over the
practical and philosophkal aspects of the nature of matter it became apparent
that the mathematical models which represent matter would have to change. It is
not practical to represent objects by representing each atom and its position
relative to the entire set. The power of modeling would thus be lost; that is, the
ability to model complex objects and their interaction by relatively simple
constructs. Thus the fact is reinforced that models can only represent objects
through gross approximations and that the model is only effective for a restricted
frame of reference. Without this realization, dimension would have very little
application.
2. Topological Dimension
a. An Intuitive Approach
The concept of dimension is very old. It is based on the algebraic
concepts of Euclidean n space and the notion that a set has dimension n if the
least number of real parameters needed to describe its points was n. This fuzzy
definition was accepted for a very long time until the advent of Cantor and set
theory. Cantor showed that dimension can be changed by a 1-1 tranformation
from an interval to a planar object. The fuzzy notin of dimension, as defined,
was challenged and required rethinking,
The mathematicians who did not accept many of the findings of set
theory at the time (but who could not disregard Cantors findings) began to
consider ways of explicitly defining dimension. The new definition would have to
be applicable to the bizarre functions of Cantor, Koch and Peano as well as the
The set theoretical concepts of finitenes, countably infinite and uncountably infinite (con.
tinuotus) sets carry with them very ptofound implications. It is premature to view matter as mere-
ly collcthions of finite atoms. Science may yet find true continuity (in the mathematical sense) in
atomic matter and the universe. For now, matter is what it is and ouw proau•ciatiom. upon it will
not change its true texture.
17
:-6
relatively simple objects that had previously fit into the old definition without
contradiction.
There was one crucial problem that Cantor's findings raised
(Ref. 6:pp. 4-6]:
An extremely important question was left opn: Is it possible to establish a
correspondence bitween Euclidean n space and Euclidean m space combinin the
features of both Cantor's and Peano's constructions, i.e. a correspondence which
is both 1:1 and continuous? The question is crucial since the existence of a
transformation~ of the stated type b~*ween Euclidean n sace and* Euclidean m
space would signify that dimension tin the natural sense that Euclidean n space
has dimension n ) has no topological meaning whatsoever.
Roozhly speaking, we may say that a space has dimension < n if an arbitrarily
small piece or the sa ce surrunding each point moy be delimited by subsets of
dimension 4 n - 1. his meth of definition is inductiv, and an eleant start-
:pg point for the induction is given by prescibig the null set as the (-I) dimeo.
Miond space.
The empty set and only the empty st has dirension -L.
A space X has dimension <, n ( n ;t 0) at a point p it p ha~s arbitratily small
neig borhoods whose boundaries have dimenmion i a -
X has dimension 4 it, dim X .ý i, if X has dimension i n at each of its points.
X h*s dim nsion n at poinip if it is true that X has dimension ( n at p and it is
false that rhas dimenaion a - I at p.
X ha- dimension n ifdim X 4 n is true and dim X• n - I is (alse.
X has diimeniom oc if dim X, a is fase for each a.
18
The topological dimension is rigorous and consistent for all sets that
exist within a metric space. The problem that arises with fractal sets and its
topological dimension is not that the topological dimension is wrong. Fractal sets
like all sets in a metric space exhibit a topological dimension. The question is
then, is the topological dimension an accurate description of the dimension of the
set or can we find a better way to characterize the dimensional qualities of the
set? This question can be extended; is the topological definition of dimension
useful and consistent with the iw;ý&n of dimension and space? Can we devise a
better concept which can further refine dimension and make it more useful'.
3. The Hausdorff-Besicovitch Dimension
This section is intentionally brief due to the subject's complexity and to
the lack of practical technique that it yields. The Hausdorff measure of a set is a
complex characterization of a method for covering a set. Hausdorff's theorem is
proved using the ezistential qualities of infinite sets in a metric space 0. While
the theorem may be important to mathematical theory, it proves unfortunate
that there is no straightforward practical method for determining the Hausdorff
measure of a set.
a. An Intuitive Approach to the Hausdorff Dimension
The acceptance of the Hausdorff method for covering a set as a
measute of dimension is not universal [Ref. 6:pp. 102] and [Ref. l:pp. 363.365I.
The debate is between the dieciplines of topology and metrics and is not wholly
germane to this study. It is beneficial to divorce ourselves from the debate and
consider both the topological dimension DT and the Haundorff-Besicovitch
dimension (HB) as merely measures of 4psaesii of a set's structure. Certainly
sets exist that have a topological dimension equal to I but in no way resemble a
simple Euclidean curve If the Hausdorff dimension yields a better measure of a
set's structure that provides a mathematical and intuitive difference that is useful
to us, it would be beneficial for us to investigate it.
'Try not to tsribe grandiote implications to a set's dimension (the fourth dimension as time
or some such) as this is premature at best. lather, view a set's dimension au merely descriptive
terminology much like the terminology of bijectivity describes a function's characteristics. The
problem most people have with this mental abstrattion is the visual reinforcement that they re.
ceived from the notion of te standard tL'ee dimenasios.
*V!
The Hausdorff measure of a set was developed during the same
period that the new topological dimension was invented to solve the paradoxes of
Cantor. The topological dimension was based on the idea of a neighborhood of a
point within a Euclidean space of RN. The connection to metric spaces and the
idea of measure is obvious when you consider that the Hausdorff measure of a set
is also based on this notion of a spherical neighborhood and what Hausdorff calls
A the test jundiom of a set. The test function of a set denoted h(p ) is a function
that characterizes the "Ust " method of covering a point with the spherical ball
of radius p that covers points of the set, which in their union, cover the entire
set.
Consider for example the test function for a surface within R 2. A
surface can be covered by discs (circles). The formula for the area of a circle
becomes the test function for the surface. The formula for the area of a circle
always contains the constant factor ir multiplied by the square of the radius r.
This radius is the measure p as above. This leaves us with a test function for a
planar shape in Rofh(p) = rp 2 .
You might expect that the test function for a spherical neighborhood
in a Euclidean space above IR3 would be very difficult to imagine, and indeed it
is. Hausdorff further complicated the idea of test functions (even within the lower
dimensions) by allowing a test function to assume a non-integer parameter d so
that the test function h(p) - *(d)p d could have a real-valued parameter d.
"Thisfurther refinement of the test function allowed Hausdorff to make assertions
about how this test function h(p) behaved when the parameters p and d were
allowed to vary.
SHausdorff imagined the parameter p reducing in size until it
approached zero. The effect of this on our disc example is increasingly smaller
and smaller discs around points of the planar set. As the disc size is decreased,
fewer points of the set are contained in each disc neighborhood. ThLs requires
more discs to cover the set. As the parameter p becomes infinitely small the
number of discs required to cover the planar set approaches oM. We allow the
parameter to grow arbitrarily small. It is interesting to study the test function
20
and see what happens to the total area when the areas of the collection of discs
which cover the planar set are summed.
Let's reflect upon the mathematical process that we are developing.
When we attempt to approximate the area of the planar s-t by the union of the
discs which make up its cover, we are essentialiy observing small patches of the
surface and approximating the area of the set by making assertions about the
intrinsic qualities of the patch. The notion that this mieaure is merely an
approximation is important. As the size of our patch grows intrensingly small, we
can expect that we will get a better fit with our patches and hence a better
approximation of the area. The notions of approximation and fit become
increasingly helpful when you consider functions which describe sets of infinitely
rough tezdure as we find in fractal sets.
The importance of Hausdorff's discovery lies in the fact that for a
test function of a set, the parameter d is special. As p-*O he discovered that
there existed a unique real number d such that for d*<d, the infuium 6 defined
by the test function using d* approaches oo (for any countably infinite set). And
for a d'>d the corresponding infinum approaches zero. This means that e-•
set has a parameter which can be associated with it that is closely relate, .hm,
f
amount of spate that it occupies. This number is the Hausdorff-Besicovi,ýh
dimension (measure) of the set.
These results only tell us that a number and function exist. They do
not tell us how to compute them in the general case. This gives us the quandary
of dealing with the HO dimension as a known concept that we can make
allusions to, but can rarely compute (at least at the present time).
b. Definition of the Hausdorff Dimension
The formal definition of the Hausdor•f dimension requires that we
formalize the intuitive discussion above, We first define what a p-measure of a set
is (analogous to the disc above) jRef. 6:pp. 102-1031.
SP-dinmen!siontJ measure for each non-negative real number p w&s defined by
ausdorfl for arbitrary metric soace, This measure is a meltal concept, whire
dimension is purely lopolofw•f. Nevertheless there is a strong connection
between the two concept&. tr it turns out that a sp fe(topdo oicgi dimen-
sion a must have positive .iumioital nmeasure (Wh a-o. me~asre).
SFor our exaple this would be the sum of the ares of the discs.
4 21
"'Let X be a space and p an arbitrary real number, 0 Ep <oo. Given E >0 let
If p <q then n, (X) >, mf (X); in fart p <9 and in (X) <oo imply m, (X) = 0.
Conversely, if p> then nieX) < out(X); and if p>9 and
np (X) <00 implie•e P( = 00.
22
4. Why Cc:-sider Dimension
For the purpose of this study, it is not important that a rigorous feel for
the mathematical properties of dimension theovy be grasped. In fact one needs no
knowledge of dimension to use fractal tech,•ques in the generation ot computer
graphics terrain. The literature is rife with articles about fractal objects in
computer graphics and it seems de rigue,'r to include an approximate fractal
dimension as put of its description. The techniques used to approximate
dimension as presented ia' [Ref. 1:pp. 5&-471 are mathematically unproven7 . More
importantly, the dimension yields little intuitive insight; one is hard pressed to
describe the differences between an object with an approximate dimension of 2.37
and another with a dimension of 2.45. The pictures are much more descriptive.
One use of approximate fractal dimension is to describe an object's
relative roughness. It is beneficial to view a fractal dimension as degrees of
roughness between the standard three dimensions. If the dimension is between 1
and 2 then the object should be a very irregular curve. If the dimension of that
curve approaches 1 then the curve is probably not very rough and would lack any
interesting diversion from an ordinary plane curve. If the dimension of the curve
approaches 2 then the curve becomes like . plane or filled polygon and again
lacks appeal. The most interesting fractal curves axe those which demonstrate
dimensioa never the center of the scale between the standrxd Euclidean
dimensions. A similar argument cau be made for #oisd objects with di
between 2 and I.
This i'* not to say that fractal geometry is not a powerful tool for the
graphics programmer. The evidence of the power of fractals to model objects of
considerable complexity is clearly demonstrated. To date, this power has not
been matched by other standard methods.
The graphics prorammer should not concern himself grerdy with the
dimension that is demonstrated at different levels of object construction. He must
concern himself with the techiaiques of construction and the realism that is
achieved.
7 At.i ft's method tos estimating the I&c.-tff.Ik ,itoc dimentaio for nonAftdQM
set built thwoIt self sisilar dwpes will be iuatduced in sectiou C afler the Koch tw, is
des-'bed.
23
C. FRACTAL CURVES AND SETS
1. Definition of Fractal Sets
We take our definition of fractal sets from (Ref 1:Chap 3 and pp. 361].
A fr.au set is a set for which the HEcu wtBcsi&.uitc dimension strictly
exceeds the .P--: u dimunsion.
4 A woqhing modal or eqtatiou whm you Lm only co.weemd abo th.w behavior and tat tke
exact amtheauaical pike.i
24
transformations upon all current initiators (suppose there are m such initiaor8)
in the construction by applying the generator to all initiators. This creates a new
construction that consists of - x r (where r is the number of distinct parts of the
generator) sides where each side is a shape that is similar to the initiator. The
next step is to again apply the generator to all initiators.
This recursive definition has no terminating event but is continued ad
infinitum. This functional process is well suited for recursion because the
•¶ 3 application of the generator to the initiator is constant with respect to method
and varies only to scale. It is also well suited for parallel processing (in the
computer science sense) because each application of a generator on all current
initiators is independent.
These concepts are probably confusing at this point and were especially
difficult to visualize when they were first envisioned because the authors had few
tools beyond mental imagery to convey their point. This is probably why they
were largely ignored for 70 years. It is much easier to visualize these functions
when they are shown on a computer graphics display.
3. The Koch curve.
The mathematicians Koch and Cantor developed functions which
attempted to challenge the mathematical models of continuity and
"differentiability. These equations were developed during the great debate on set
theory and were used by Cantor in arguing for his theory. These functions were
"like none before, using constructions which played upon natural geonaetric
€onstrucs but when combined with the power of infinite recursion becasue sets
which defied intuition. It was not until much later that mathematicians wvere able
to reconcile these functions with algebra and set theory. The function to be
introduced has been proven to have a Hausdorlf-D.eicotCtc dimension which
exceeds its topotogical diaesion'9.
The Koch curie is a very beautiful curve that at firt gives the observer
: ,,the impression of a snowflake or a coattline (Fig 2.1). Mandelbrot uses this type
of construction (with variation - i.e. randoomwe or less behaved generators) to
draw coastlines that look very realistic. To understand this consttuction is to
VS 25
understari one method of obtaining a fractal set from a well defined non-fractal
set (R 2 ) using non-random techniques. This method of construction (in the
general sense) is very powerful and is used throughout this thesis.
To construct the Koch curve, we use three initiators (line segments) of
equal length and join them to form an equilateral triangle 10 . To construct the
generator we use four line segments that are each 1 the length of the initiators
3
and apply these to each initiator (Fig 2.1). This yields a new geometric figure
with 12 sides versus the original 3 and a total perimeter length of 4 units of
length versus the original 3 units.
Figure 2.1 demonstrates the first and second recursive iterations of
building the Koch curve. Observe how the progression develops to yield the final
figurn. in Figure 2.1. Imagine this progression occurring indefinitely.
The length of the curve begins to increase without bound even though the
length of the initiator decreases to an infinitely small length. Hence the
curve's length is unbounded with no point intersecting but yet is contained
in a small bounded two dimensional area.
- The points of the curve are by construction only the end-points of each
initiator and each point is clearly distinct from the other ( no two points are
connected).
-Although each point is distinct at any one level of the curve construction, it
can be proven that the curve when viewed in the limit is continuous at every
point.
- That due to the above qualities the curve is not differentiable at ANY point.
•1 It is important to realize that the endpoints of the lines (initiators) are the only
points of the curve. The line only serves as a vehicle by which the points may be
easily determined. The exact same set could be built using 180 arcs as initiators.
An algorithm and computer graphics program for the construction of the
Koch curve is presented in Chapter 4 and Appendix A.
10 The choice of an equilateral triangle was arbitrary. We could have chosen any shape as
long as it was made up of Initiators a.:d avoided intersecting lines during recursion.
26
NZ
SINITIATOR
GENERATORA N =4
1 Initiating
r3 Structure
st
I" Recursive2n Re u s v
i
Iteration
Ierton•
27
==-%
4. Mandelbrot's Dimension Approximation Function
In the above section, one functional construction technique for building a
fractal set has been introduced. It is possible to approximate the dimension of a
fractal curve that is built using these constructs. In [Ref. 1:pp 56-57], Mandelbrot
introduces a function that is based on the similarity properties of the above
technique. This function has a real exponent D that is t11 approximate
dimension of the fractal set"1 .
Consider a method of paving (covering?) a Euclidean shape. Divide a line
segment into N segments with each segment a part of the original segment such
that the sum of the lengths of the N segments equals the length of the original
segment. It follows then, that the sum of the ratios of the divided segments
SDivided~na segment ms
equal 1.
N
Er.= I
-1I
We know that the dimension of a line is equal to 1. If we raise each of the above
ratios to the power D (where D = 1) the equivalence still holds.
w ~N
6-1
Let's allow the Koch function to assume a similar dimensional relationship but
treat D as a real valued unknown. Refer once again to Figure 2.1. Notice that
the length of the four line segments that make up the generator have a length
ratio of -to the initiator. Call this ratio P.. Notice that the generator is made
3
up of four initiator shapes. Call this number N.
'~ (r.)' 1
.M11
' CAUTION: This technique does not mwccuwtp apply to other frutal functional
methods,
"28
Substituting and Solving for D:
4 ( =)
log3
12
Which is equal to the Hausdorff-Besicovitch dimension of the Koch curve .
This is not a proof of a general equation for the fractal (Hausdorff)
dimension of a self similar fractal set but implies that a general dimension
generating function is possible:
r D -
G(D) = r
rn-1
Mandelbrot claims that experimental evidence suggests that this equation holds
whenever this functional method is used.
When each segment of the generator is a fixed ratio to the initiator (as is
the case with the Koch curve) then the solution to this equation is trivial:
!og(N)
log(.--)
'mm
29
exccept in a verbose and non-rigorous manner. It can be insightful however, to
diasect the beaut (oneel) and hopefully gain further intuitive insight.
To simplify the process, we define a Koch half-line as in the above fractal
but with a single line segment as the Initiator (versus the equilaterai '.iaugk1.
We consider the line interval of [(0,0),(1,0)] within the set R 2 . This restricts the
fractal shape that is drawn to a partial function on: [0,1] X (0,1] -+ [0,11 X [0,1].
Using the inductive process to define the essence of the fractal
sequencing, we have the following definition:
(Eaaae)
Step 0
110 = {(o.0'0.0),(I.o,0.o))
(Induction)
Step k
Label the ordered set of 2-tuple points from Step k-1 as:
Ilk-1 ff Pk-11,Pk-" 2,Pk-1V,..'Pk-l• }
where
n ; 4 (0-) + I
filk={ p P ,P3,
3 ...-,P* )
where
m =4- +1
where pk-1
Pk =
pts p -2
ks= P 12
ph 9 = ph-I 3
"II:e.= i
30
S
where
(Pkm-, p -3 in
m ,P-2
k _) =f p k-1n [.-iRn ]pk-1n
and where the relation [,... Rj] is the geometrical relationship between the two
end points of the initiator line segment from step k-1 and the five points of the
* generator that compose the ordered subset for step k as above. For purposes of
brevity, the full functional definition for this geometrical relationship is explained
in detail in Chapter 4.
(Ezitemaal)
No point is an element of fl unless it can be shown to be so in a finite
number of applications of clauses I and 2 above.
It is thus possible (but tedious) to rigorously characterize the Koch
fractal set within the well defined constructs of induction and the functional
technique.
6. Anether Fractal Set, Cantor's Dust
Cantor developed a function' 3 which used the same functional technique
as the Koch curve but with a reverse twist. Cantor "s function takes an initiator
(the unit interval 10,11) and dissolvee it into a discontinuous set which is as rich
in points as the interval 10,11 but contains no interval itself (Ref. 6:pp. 22-231.
The points of the set are all distinct but the set has the same cardinality as the
4 •!unit interval. The best description for this set is that it resembles a dust.
"31
Cantor's Dust is difficult to demonstrate on a graphics display because it
quickly dissolves below the resolution of the display. Refer to Figure 2.2 to
visualize the initiator and the generator. The initiator is a line interval [a , b I
1
where 0 ( a < b < 1 and the generator is t.wvo intevals each I the leagth of
3
the initiator such that interval 1 is [a, a + ((b-a) x 3 J] and interval 2 is
[b- (b-a) xlb]. After the initial application of the generator to the unit
interval there will be two intervals in the current construction [0,11 and 13,1].
3
The second iteration of the recursive routine will yield four intervals
1,1, 12,1] and I ,J].
10I]
-INITIATOR 2
CANTOR'S DUST
I, ~T ~ Initiating Structure: D
___________
The Interval (0,13) B= 60
"!I
e;awns a convergent sequence toward its endpoints. But for each initiator there
are also two spawned sequences toward the center. It is possible to imagine this
as an infinitely dividing organism which leaves behind four points (eggs) each
time it divides and then each egg itself replicates ... ad infinitum.
This functional method of diaslving a line is very powerful as a tool in
computer graphics because it can be used to cause many special effects from
ordinary objects. Mandelbrot has used variations of this method to create images
of star systems for example.
The topological dimension of Cantor's dust is 0 and by Mandelbrot's
dimension generating function we have the fractal (Hausdorff) dimension equal
to:
D)
G N Ir.)D
Where N = 2
Where R..
Al ()D
D = log 2 : .6309
log 3
Cantor's dust was proven to have a Hausdorff-Besicovitch dimension of
log 2 .', .6309 (Ref. 1:pp. 77-78].
log 3
7. A Note on the Concept of Similarity and Fractals Sets
The use of the mathematical concept of similarity continually shows up
in the investigation of fractal functions. This can be expected because of the type
of functional building tools that are used for most of these sets. The relationship
of the generator to the initiator has similarity built in. Thus Mandelbrot is able
to use similarity properties in formulating a dimension generating function and in
making claims about the set's inherent structure.
•3
I•.
The functional method invented by Koch and Cantor is but one method
of determining r, fractal set. Similarity fractals may eventually be grouped into a
class of fractals (impeortant but restricted). This type of functional method
provides a vehicle for the creation of disciplined fractal sets but makes you
wonder about the rest of the space that fills the gaps between the standard
Euclidean shapes' 4, the self-similar fractals and the infinitude of RN.
4>
, Much like the rIte4MJCftd&tle numbers (* and o ra example ) in all their uncoun•ably rich
expn I gap
M the P betwe the failar (and well behaved) sets in R.
3
III. THE IMPLEMENTATION OF FRACTALS IN COMPUTER GRAPHICS
Functionally in the serm that the problem mwl be decidable but the solution *Wecs is so
large &adundefined that it could not be determined in'
to aabaonae amount of time.
35
SWhy should you try 'The recumisje pan of fricts.s fucio is the r uteaically beau-
tiful aspect which mtakes them so eloquent and powtiful.
'~This.could be the r'ecursive temitnaaiozn event if you amc nok careful, It might be a good
idea to try tibs experimentally on your computer to determia, &his maxiimum mreusive descent
distaure.
.46
3. The Computer Graphics Set Paradigm
The paradigm that is used for displaying objects on the raster graphics
screen is inherently discrete and two-dimensional. A typical system consites of
prim'ifive that allow the user a view of his modeling world as a largely
unrestricted three dimensional space. These primitives are limited in their power
and are usually bused on the Euclidean geometry (lines, points, polygons etc.).
The user is required to supply viewing puranclars that def'me a limited three
dimensional viewing space. These commands are processed by the graphics
system which proj.ct., the objects contained in the viewing space onto a two-
dimensional space th-.t is the display screen. The display screen can be divided
into discrete entities called pizda, each of which represents one point on the
screen. The number of pixels defines the resolution of the screen.
Given the graphics paradigm, it is natural to model objects that are
* defimed on the display as a collection of discrete points. When viewed on the
screen, these pictures can accurately model objects of considerable complexity
[Ref. I]. This view is a departure from the normal view of the graphics
application programmer. The application programmer views the objects he
creates through a collection of Euclidean geometric primitives (lines polygons
etc.) that are abstracted from the actual display". Both views are useful models
in describing objects but for the fractal graphics programmer the furmer is the
more powerful because it neatly maps to the fractal method of object
construction.
lFor this study, we view the world and the objects it contains as
collections (sets) of discrete three dimensional points. When an object is built
through fractal techniques, the length of the pixel is a natural termination point
for the fractal recursive process. This yields an attractive bijective mapping from
our object to the display screen.
' All computer Craphics to an bistraction; realism is achieved through deception ot the eye
by a very small colltetioa of colored points. Our goal then, is to fiad the most eflicitt method of
dtfiams tho. powoi.
~' %~,37
A
4. Summary
From our previous discussion, it should be obvious that fractal sets do
not exist in our computer. The sets that we create are finite approximations of
the actual set. The same is true of the fractal pictures that we create and to
which we ascribe fractal dimensions. It is an illusion of the eye that we create by
taking the fractal computations below the resolution of the screen.
'nla fact. this is the way the Eldi'e" grapbhk ab.tutt sath ua a w am mapped to the
scrs. At some poa•t in thk display peam t"is mappme mugt Lae Place.
58
pixel is a cubic space which clumps together the infinite fractal space into a
discrete number of cubic spaces equal to the number of pixels in the pixel set.
The fractal programmer should choose his viewport and window carefully
so as to elicit the most attractive mapping possible between his object and the
screen. The viewport (SCR) rectangle should be defined such that the ratio of
the X distance (horizontal) to the Y distance (vertical) is equal to the ratio of the
X-Y distances of his (real-valued) window. The Z-distance (front and back
clipping plane distance) should be equal to the distance in the window
coordinates that defines the length of the pixel multiplied by the desired Z-depth.
Figure 3.2. Formally:
XSCR XWLD
Ysca Y WLo
I
Z•IbI
I.'
nori'Ctefor L*04t Zo Loop rho Pis*e Wr* Wsppcd To
rhn Tno PZJU• $X[S, ,Sa $*P 7%i r C'orrewpandisS Powaicioa
s30
o
Terminh,i pal IThe Pixel Set]
lrw ------
9 .U.er Defined Viewport
SCR.
S~-"
X Distance
WZVD
-- Xs PIXEL SIZE
40
If the above relationship holds then the 8ize of the pixel in world coordinates is
equal to the X (or Y) world distance divided by the number of pixels, Figure 3.2.
XWLD
PIX SIZE = -
XSCR
The front and back Z-clipping planes should be established such that the distance
from front to back is equal to the desired Z depth (expressed in pixels) multiplied
by the pixel size (in world coordinates), Figure 3.2.
If the above viewing relationships hold, then the inclusion of a simple
check:
41
U- A__
--%
inductive nature of the fractal method provides data independence so that the
programmer does not have to have available to his subroutine all points
computed thus fur.
b. Memory Requirements for the Fractal Set Paradigm
If the programmer requires a more sophisticated display that includes
a requirement for hidden surface removal and (or) lighting enhancement then the
fractal method becomes juat a part of the overall display process. The
programmer has the fractal process compute the points of the picture and these
points are stored in a memory structure. This structure is processed by a hidden
surface algorithm and a lighting algorithm and is then projected onto the screen.
The ideal Fractal computer would have an exhaustive memory and
unlimited romputing power to be able to allow us to store the entire pixel set in
memory. This however, can stretch the capabilities of most present day
computers. For example; if the pixel set is defined such that its dimensions are
100Oxl00Ox1000 (which is certainly reasonable), the amount of storage required
would be an array of II? x 24 bits20 or 24 billion bits.
Current techniques exist where this storage can be minimized. A Z-
buffer array can be used to store the current Z coordinate of the forward most
displayed pixel. By using this method the fractal computation can be made and
then a hidden surface computation can be immediately invoked to check the
tdiibility of the point by checking it against any other point in the same position
on the X-Y plane. This technique reduces the above space requirements to
106 x 24 bits + (Z- buffer = 106 x 32 bits)2 1 or 56 million bits.
A fractal programmer must manage his memory resources carefully
in order to maximize the computational resources available to him. This usually
requires a tradeoff between efficiency, realism and the memory space utilized.
The algorithms for hidden surface and lighting are well covered Iin the literature
and although they are integral aspects of the fractal realism issue they are not
germane to this study. Throughout the remainder of this study, we are not
0 24 bits for a machine ausuming the RGB color system with 24 bit planes. •ach color; red.
green and blue would then have 8 bits of precision.
I' Assuming the Z coordinate is stored as a 32 bit floatina point number; this number can be
further reduced if we frtrict the Z precision.
42
concerned with the methods of minimizing the the pixel set. We assume that we
have the full three dimensional set.
3. Concurrency
"Aquestion arises, is it possible to generate fractals in Red Time 22? We
have enough knowledge at this juncture to discuss the possibility for concurrent
operations during the fractal recursive descent. There are two basic strategies
that can used if concurrent operations are available on the computer. We could
*: assign a process to each of the initial Initiators and process each to its desired
*
-- precision. We could also allow the imagined processor to have a means by which
at any level of the recursive descent, we could spawn a process to apply the
2
generator to the local initiator 3.
The local data independence of the fractal recursive function allows such
a spawning because the application of the generator to an initiator is local to the
initiator. This application is a result of the inductive process of the K-i steps
that led up to the Kth step. The mathematical process of applying the generator
at the K'h level needs only the initiator data from the K-I" step and requires no
knowledge of the entire fractal set. The power of induction is then
computationally realized. The number of calculations before the entire pixel set is
determined is not greater than the number of computations required to apply a
generator times the maximum recursive descent distance from any initiator to the
recursive termination event. A short algorithm describing the processing aspects
of the second method is shown in Figure 3.3.
"* . u To beat the human eye and achieve the ultimate graphics illusion, typically by completing
all computations and screen I/0 prior to the -.Leo. refresh rate (for a 30HZ display) of most
raster graphics displays.
"This of course would require an enormous computational power that does not currently ex-
uit, so in reality the spawning would have to be bounded in some way.
S '.43
-4
concurrent;
generate(INITIATOR 1);
generate(INITIATOR 2);
generate(INITIATOR 3);
generate(INITIATOR n);
end concurrent;
end main;
generate(INITIATOR I)
concurrent;
generate(INITIATOR 1);
generate(INITIATOR 2);
generate(INITIATOR 3);
generate(INITIATOR m);
end concurrent;
end generate;
44
2
IV. FRACTAL COMPUTATION IN R
The geometric relationship between the Koch curve initiator and generator
can be described through a very simple set of data that captures the essence of
the Koch curve. The method introduced also allows us to vary the data which
defines the generator and compute many different fractal shapes2 4 .
The general strategy for computing generator points from a set of initiator
points is to determine two lines that intersect at an unknown generator point,
Figure 4.1.a. The unknown generator point is defined by constant relationships
r between the initiator and generator. The first line is the perpendicular from the
generator point to the initiator line. The second line is formed between the first
point of the initiator and the unknown generator point. All data to compute the
line equations are derivable from the two endpoints of the initiator or from
constant initiator/generator ratios. For simplkity~s sake, we ignore the divide.by.
zero problems that are encountered when any of the lines are parallel to the X or
Y axis. These situations only simplify the computations and their solution is
demonstrated in Appendix A.
If we label the endpoints of the initiator as P1 =(X1 ,Y1 ) and P2 =(X2 ,Y2 )
(Figure 4.l.a) then the slope of the initiator line is:
Y2 - Y,
Slope.hiat = X2- Al
• We must be ca'reful in our terminoloay because the relationship described can draw shapes
that do not avoid self interection sad thus must be coatidered quui-ractal.
- -V•
The slope of the perpendicular intercept line is the negative inverse of the
slope of the initiator, hence the slope of this linm is:
Slope.perp -1
Flope.init
x Y,)
Y~per Y + (Generator.vatio.•onstant
1 + Gcnerator.ratio.constant
Y = (Slope.perp x X) + Y.intercept.perp
To detea .irme the generator line equation for the line segment which connects
the first point of the initiator and the unknown generator point, we need
constant information about the angle between the initiator and this line. This
&ngle is always constant with respect to the initiator and like the ratio
information above, it is recorded as a constant at run time (see Figure 4.1.c),
note that the angle may be positive or negative.
40
A
2*
0(
son,
Y -- Unknown
0• " Generator Point
Generator Line--
'
., G, pa
dist. a .. i dist. b
Ratio-constant - =
G, pa b
s# 0 "',
-:, II7
Fig 4.1.c. The AngleO ",Go
V
We record the data about the angle 9 as the tangent of the angle. With this
information, the slope of the generator line can be determined with the following
equation:
Y = (Slope.gen x X) + Y.intercept.gen
The Cartesian points of the unknown generator point can now be determined
by intersecting the two line equations and solving for X... (Figure 4.1.a) then
0 substituting Xse2 into one of the line equations and solving for Y ...
3 The
equations follow:
Xgn=Y.intercept.perp - Y.intercept.gen
Slope.gen - Slope.perp
The constant data for the Koch curve that corresponds to this geometric
method is illustrated in Figure 4.2.
There are many different ways to build a generator given an initiator using
standard geometric constructs but the method introduced allows experimentation
with the Koch function to diecovcr new shapes. By varying the tangent of 0 and
the rixed ratio of Figure 4.1 we can describe new generator constructions. These
new constructions can be used in the same algorithms that compute the Koch
curve. We Initiate the recursion on a generating structure built of line segment
initiators and allow the recursion to progress until a terminating event~s, creating
many diverse shapes. Figures 4.8 through 4.9 demonstrate some of these shapes.
48
The Koch Generator 1
2 1 .
Ratio - 0.5 Ratio - 1.0 Ratio - 2.0
49
The Midpoint Displacement
A. Technique
so
. ;ýI V w.
-* The inversion of the direction of the mid-point application (in Figure 4.3.&
the displacement is above the initial initiator where in Figure 4.3.b it is below)
can be accomplished with a single computational procedure. We only need to
invert the position of point I and point 2 in the parameters of that procedure.
The parameter inversion changes the orientation of the initiator in space with
respect to the computation cf the midpoint displacement. The procedure blindly
computes the wid-point displacement relative to a fixed relationship to the
initiator input points. This operation implicitly defines the orientation of the
generator in space.
The geometry for computing the midpoint given two initiator points can be
computed in precisely the same manner as the intersecting line algorithm (The
Koch midpoint ratios are 1.0 and the angle 9 is .437 radians). An alternative
method is to use the equations of a line (or a plane) normal. The second method
(utilizing the normal) provides a geometric relationship which is intuitively
appealing. Its appeal comes from the desire to modify the length of the
displacement relative to the initiator with a random scaling factor.
The mid-point displacement technique has some advantages over -the line
intereection algorithm. Random modification of the length of the displacement
along the normal (from the computed generator point to the initiator using the
line intersection algorithm) is not intuitively appealing. It requires a translation
of the desired displacement into an angle (the angle 0 (Figure 4.1.c) between the
initiator line and the unknown generator intercept line). The control of that
angle is less intuitive than the control of a displacement length. The geometry
for mid-point displacement using the initiator normal is introduced in Chapter 5.
main()
4 generate(X(I)Y
1 (1)( 1,X(1) 2 ,Y(1)2 )
S~)
452
1
11jj
Load Initiator Coordinates;
Load Generator Relationship Values;
geneWate(X 3 X1X
1 2 ty2)
Getterator-XINurogeatrpns + 1
Gecrator.YfNuwieroL~enerator.poinbs + 1I YI
generate(Generator.X(KJGenerator.YIKI,
Generator.X[K+I],Generator.YfK+1l);
/} End Generate
54
- --- =
D. IMPLEMENTATION STRATEGIES
There are numerous ways to display the fractal shapes that the above
algorithm is capable of computing. The graphics primitives required are limited
to the standard initiation and termination commands coupled with the ability to
plot a point (or alternatively a line). Any raster graphics system, plotter or
similar technology suffices.
The algorithm can be extended to include:
E. SUMMARY
The line intersection algorithm as it stands is not very useful for the
production of graphics images of realistically textured terrain. Its importance
results from its encapsulation of the eatence of the non-random inductive fractal
method. This algorithm demonstrates the idea sad intent of fractal functions and
their implementation within computer graphics. The potential fractal
programmer must throughly understand the salient parts of this chapter before
successfully attempting fractal image. in three dimensions (i.e. before climbing the
mouvntin Chapter 5).
' 55
A Cloud-like Shape
,nitisatin Structures
"lot •teration * ,
S........o.....
GBNERATOR DATA
Number of pointa& =
PaIntl t
Angle 0.4M23 reds.
Ratio = 3.4223 2ad Zteration
.ecursive
Termination
At 0.01 Inch
- L•~~. .*~*
DAN
... •*,--•.~. *- 'VA ~ \ ~*
Boxes Ad Infinitum
Initiating Structures
I.teration lot
~I~i'i1 Iteation
GENERATOR DATA
Number of points = 3
Pointi *
Angle = 0. 0000 rade
Ratio = 1.0000
Pointa:
. _Angle =- 0.
Ratio 1.0000
7854 rd 2nd Ztertion .... ..
•ARecul ve
",Terminaaiom
0.075 inch
67
'.l
U=
An Exaggerated Koch Curve
rimitiatime Structure:
GS RIATOR 5quilato~ rigl
lot Xteration
GBNERATOR DATA 3
Number of points
,~.B
V3
t'
:68
UN
A Plane Filling Curve
This plane filling curve requires
a slight modification to the dir-
ection of the generator applica-
tion. This reversal is explained
on the next pa*e.
INIT. GENERATOR
GENERATOR DATA
Number of point-s -
Pointl1
An&le = 1.0535 radi
Ratio = 0.a000
Poin t2
Aaple - 1.0535 rads
Ratio - 0.5000
Poin t4a
Angle 0.7092 rade
Ratio 3.0000
-aontlnuod-
.... -
Figure 4-9. A Plane Filling Ct~rve.J
.. . .. - *
5o0
Orientation
of points After Second Iteration
P1 o P2
Angle.s neg
Orientation Orientation
of point& of points
P.1 -4PP2 Pi go P2
PoeAngle.
Angles neg
80
V. FRACTAL GEOMETRY FOR GRAPHICS TERRAIN
One of the most widely recognized fractal images found in the literature is of
the mountain scene. This type of terrain modeling is perfectly attuned to the
fractal technique. The reason for this is that mountains are highly irregular
shapes, with a rough but consistent texture when viewed from a distant vantage
point. It is appropriate then, to introduce graphics terrain simulation techniques
through this model.
This chapter describes the theory and techniques of simulating mountainous
terrain with computer graphics. It provides the blueprint for fractal graphics
programming within R 3 by providing general tools and a methodology that is
easily adapted to many other modeling needs.
predicated by the type of look that he wants to achieve. The chicken wire
081
S
provides an inexpensive and disguised method to quickly build the mountainous
shape and structure. This method minimizes the cost and time to build up the
clay.
The artist continues the modeling process after the development of the
basic mountain shape to achieve hues and contrast in the coloration. He might
achieve this by the use of natural lighting to cast shadows or by a careful
painting of prominent features.
2. The Fractal Programmer's Model
There is very little in science that is truly new or innovative. We borrow
the essence of the above idea to guide us in developing a model for the discrete
computation of our two dimensional picture of the mountain. This section
describes the process intuitively and leaves the implementation details to later
sections.
a. The Lattice Control Structure
The pixel space that we developed in previous chapters can be
divided into discrete cubic units by use of a concept from mathematics called a
latUiee (in our case we can view it as three dimensional graph paper). This lattice
serves as our controlling structure, the equivalent of the chicken wire structure
above. It is beneficial to build the lattice as a structure with well-formed
relationships, where the number of lines evenly divides the boundaries of the pixel
space and each line is a constant distance from its neighbors. By this method, we
do not have to store the lattice but can express it as a mathematical function of
the pixel space.
The lattice can be very useful in developing a rough approximation
of the mountain that we wish to model. This can be done in many different ways
but should resuit in a sick frame model of the mountain (a connected polygon
nmesh like that of Figure 5.1).
The frame can be developed through an online graphics interface
that allows the prograinuer to select a ground ietd plane of the lattice and
provide a means to visually select points for the rough outline (eusentially draw
the framework). This approach 6-useful when a particular shape is desired.
02
,Y.
A frame can also be developed using fractal functions to pervert the
lattice into a controlled random shape from a given plane of the lattice. This is a
powerful method that can be controlled via bounds on the random tools,
heuristics or discrete functional bounding of the fractal function. This approach is
most useful when a class of mountain shapes are required but no particular
mountain needs to be modeled, i.e. when random landscapes suffice.
Alternatively, the stick frame of the w'-untain can be determined via manual
(hand computation) means. This approach is tedious and limited in its flexibility,
and is not recommended.
b. Surface Texture via Fractal Functions
The next step in the creation of a mountain is to provide the
gr..p ua day to cover our stick frame model. This clay is a fractal function which
closes the polygons of the frame model with an inductive process that provides a
continuous pixel surface for the entire structure of the mountain.
The initiator/generator paradigm is used. The initial set of initiators
is the frame described above and the generator is a similar geometrical shape that
reduces in size continually until it becomes the size of a pixel and is mapped.
After the stick frame of the mountain is developed, this texturizing of
the surface becomes an automatic process that terminates when each geometrical
shape that makes up the framework is reduced to a continuous set of pixels in the
pixel set. At this point, the mountain exists in the pixel set (memory) but must
be provided color and light to bring it to life.
c. Hidden Surface Eliwination
The pixel set has the entire structure of the mountain in memory,
but we can project only a two dimensional image of one phlae onto the screen.
The fractal function which texturizes the surface does not concern itself with
local computations so many overlapping pixels are mapped to the pixel set.
"There are two reasons then, why we need hidden surface removal (in this case
better referred to as hidden pixel elimination). First we have to eliminate the
back or hidden sides of the mountain by projecting only those pixels which are
visible along the axis of sight to the perpendicular planar surface of the display
screen. The second kind of hidden pixel removal is caused by mapped pixels
3 -
V! Ii tR
which were covered up by other recursive fractal descents either before or after
the pixel was mapped.
The removal of hidden pixels is greatly facilitated by the use of the
concept of the pixel set. In standard computer graphics hidden surface
elimination, the programmer is confronted with graphics primitives which are
functionaUll continuous Euclidean shapes. To effectively remove the hidden parts
of these shapes is in general very tedious and mathematically complicated. Since
the graphics programmer is shielded from the primitive -, pixel mapping, he is
functionally denied access past the simplifying abstraction 26 of graphics Euclidean
primitives. The fractal programmer must have access to this level of the graphics
mapping and thus can use simple techniques to determine if a pixel is hidden or
visible.
The simplest and most economical means available to provide hidden
pixel elimination is through the use of Z-bvfer algorithms. With this method, the
"determination of whether a pixel is hidden can be appended to the pixel set
mapping process. The Z coordinate of a pixel that is to be mapped is checked
against the Z coordinate of the pixel currently in the pixel set at the same row
and column of the three dimensional array used to store the pixel set. If the pixel
is closev to the planar surface of the display screen, then the Z coordinate is
changed to reflect the position of the newly mapped pixel.
The Z-buffer approach, while powerful, does limit the fractal
programmer's flexibility. The axis of sight toward the mountain must be
determined prior to the fractal recursive procesm so that the determination of the
line through the (now two dimensional) pixel set is known. The Z-buffer becomes
an adjacency matrix to the pixel set and can retain information about forwardly
displayed pixels only. All information is lost about other pixels that were
computed in the fractal proces. If another view of the mountain is required thent
the entire pixel set has to be re'couiputed with a new axis of sight. If the fractal
function uses (oon-tabular) random tecuiiques then the mountain varies with
each view.
• The abutraction protvid( by"Euclidean pimitives is a powerful one whtn the alternative od
pixel rnappitng is onsidetred. Without roite powerful mapping tool (such as fraital funct.44"), the
pixel te%-*I modeliag proctS i to graftal vety ddiicult.
64
Most fractal pictures consume such vast computing resources that
only one view is computed for a given picture. As more requirements for graphics
terrain are determined, a more powerful method has to be used to retain all of
the computed pixels in the three dimensional pixel set. This method requires
that all pixels be stored in the three dimensional array previously described. The
hidden surface calculation can then be performed during the pixel mapping
operation or as a separate calculation that is performed after all fractal recursion
has terminated.
As specified in Chapter 3, the full array approach requires large
amounts of memory. This method, however, allows the computed fractal
mountain to become an entity that can be manipulated versus an instance of the
fractal mountain as above.
Both methods are viable but the latter approach provides more
flexibility for the programmer whereas the first approach is a response to the
economies of scale of data processing. As new architectures are developed27 with
capacities geared toward fractal image computatit- the first method can be
eliminated.
d. Illuminating the Mountain
If you stood on the dark side of the moon without illumination, the
•'S. mountains and craters of the moon would not be visible. They still exist however,
just as our imaginary mountain exists in memory. In order to visualize them, we
must illuminate them.
x Illumination in computer graphics is achieved by varying the light
intevisities of pixels displayed on the screen. The color mixture of these discrete
points determines the lighting effect that a viewer perceives. This perception 's
not reality but another deception caused by scale and composition. A lighting
11o0del then, is one which is able to abstract the csesuce of color from a real world
- An Ideal athartur# is one with a largt main memory and pa•allel pwoeuins capabilti"
*a% K ptoceuinag tiwuats (wmhmt K is gmtcth aa the matrmum itcursite descent dattnce).
object and transform that essence into a set of color values (intensities) that
accurately deceive the human eye via the graphics medium.
The literature on computer graphics contains many lighting models
with diverse approaches to the same problem. Many of these models (like those of
hidden surface) concern themselves with illumination of continuous Euclidean
surfaces and as such, are not directly germane to our studyzs.
An object i4 space is a composition of basic elements. These elements
interact with the physics of light reflection to create the spectrum of light that
our eyes decode. In a graphics image, this process has to be simulated with
discrete lighting intensity values for each pixel. Thus, the illumination of the
mountain is a two step process; the fractal entities that are mapped to the pixel
set must be provided with a basic color, and these colors have to be highlighted
and dimmed by the lighting algorithm.
The basicS.color can be determined during the pixel mapping event of
the fractal recursion process or as a separate process prior to or in conjunction
with the lighting algorithm. This color can add realism to the picture through
heuristics which the programmer defines. Most mountains are composed of
different types of rocks and flora and these elements change at different altitudes.
This type of heuristic combined with some random control structure (i.e. to vary
the snow peak) can provide for improved realism (versus umaking the whole
mountain brown). The process of dettrmining the basic color must be
accomplished prior to applying the lighting algorithm since the lighting algorithm
can only vary the intensities of an existing color". Developing the process rif
basic color determination is best accomplished through trial and error. It is the
artistic aspect of developing fractal mountains.
The general process of computer graphics illumination concerns itself
with casting Aadowis from one object to another given a direction from an
imaginary light source and willh higllighting surfaces which are directly expmsed
to the source. A surface is highlighted relative to the angle at which the Igght
~W,,
source's rays strike the surface. This poses special problems for fractal surfaces
due to their discontinuity at every point.
The process of illuminating a fractal surface is best aided by
divorcing the lighting process from the fractal computation process (except as
noted above). It is beneficial to view the pixel set as a collection of pebbles which
have size and position. This abstraction allows us to view the pixel as a
continuous space that can block light (cast shadows) and for which an angle of
illumination can be determined (usually in conjunction with neighboring pixels).
A well formed fractal mountain surface is completely connected (no
space between adjacent pixels in the pixel set). Thus the surface can also be
viewed as a continuous (while very rough) surface where reflected light can be
cast from or to adjacent pixels.
One lighting model which fits the fractal process is the Towrwnm
Sparrow model [Ref. 8:pp. 578-579j.
This model views an obiect as collection of fqcets which is each a perfect reflec-
tor (i.e. does not absoi.b light). The orientation of each facet is given by the
Gaussian probability distri ution functior (i.e. the smoolh surfaie of -;%e Eu-
clidean object is roughed by the Gaussian relationship). The geometry of the
facet and the dirtr.ti6rp of light (assumed to be from an infinitely distant source,
so all rays are parallel) determines the intensity and direction of specular reflec-
tion as a function of Ihe light source intepsity, the normal to the average sur-
face, the direction to the light source and the dirct1ion to the viewpoint.
67
e. Summary of the Fractal Mountain Paradigm
To summarize the methodology we can view the process as a five
step process:
of the initial color of a mapped pixel is usually a controlled raindom piocess, one
of the primary mi...hods of control being the lattice or some derivative thereof. As
68
the height of the mountain increases (lattice level), it becomes increasingly more
likely that it will transition to another texture. This can be controlled by adding
the lattice level as a factor to the rule that decides color.
An example of a potential lattice equation and how it might relate to the
pixel space is demonstrated in Figure 5.1. The actual lattice has been extended
from the pixel space in order to visually demonstrate how it relates to the pixel
set. In actuality, this is not the case. The lattice coincides with the boundaries of
the pixel space. Although the lattice can have a one-to-one relationship with the
pixel space, this defeats the purpose of the lattice (macro control). By grouping
cubic sets of pixels into a well-formed relationship, we can better implement
heuristics and bounding functions.
As a lattice example, consider a pixel space that is created by abstracting
the real world coordinate space for our mountain as described below. We desire a
real world space to be a cubic area established by the box 20,000 ft.
(z coordinate) by 15,000 ft. (y) by 20,000 ft. (z) This can be seetioned into a
lattice by establishing the increment of distance between adjacent lattice points
to be 1000 ft. and establishing the corner lattice point as (0,0,0)30.
The mapping function between the lattice and pixel space is then
straightforward. The size of the pixel (recall equation from Chapter 3) is
20,000 ft. =20 ft. and the lattice cubic sections contain 108 cubic feet or
1,000 ft.
equivalently 75,000 cubic pixels.
The ground level car&then be identified as the 20b0 foot level and the
bounding height can be assigned a level of 10500 feet. If we wish, we can make
the bounding heuristic more realistic by sectioning the lattice into mountainous
areas, each having different bounding levels.
J1.
-- 3:
LATTICE
FRACTAL lIDUNTAIN STRUCTURE
PIMk SET
Z4 70
2. A Fractal Function for Contouring Mountains
The usual method for contouring mountains uses a randomized variation
of the mid-point displacement method introduced in Chapter 4. The planar
the triangle31 imbedded in R 3 . The basic methodology is
is typicallySstructure
demonstrated in Figure 5.2. Figure 5.2.a shows a triangle with its first iteration of
mid-point displacement. This process continues until all triangles have reached
the desir,-d level of precision. One completed structure is demonstrated in Figure
5.2.b. TL, precision is typically lower (pixel level) than that demonstrated in
Figure 5.2.b but it was terminated at a higher level to better demonstrate the
idea. Random techniques (described below) are used to produce the relatively
accurate picture of a mountain frame as depicted in Figure 5.2.c.
In praitice, the random techniques are implemented with the mid-point
displacement function during the fractal recursive descent. The random
* techniques provide local disorder to the fractal function which provides the
computationk, structure. Results have shown that very little randomness needs to
be applied to the regular structure of Figure 5.2.b to achieve satisfactory results.
The mountains created for the film Star Trek: The Search For Spock used a
limited random number look-up table consisting of fewer than 300 entries [Ref.
71.
3. The Geom Zry for Mid-Point Displacement
The general approach to building a fractal shape as illustrated in Figure
5.2.c is to use the algorithm of midpoint triangle displacement combined with a
randomized displacement along the normal to the X-Z plane of a cartesian three
space coordinate system. A recursive procedure which computes this relationship
requires as inputs the points of the triangle. It comnputes the midpoints of each
line of the triangle wad inscribes a triangle inside of the initiating triangle by
connecting each midpoint, Figure 5.3.a. This process yieds four triangles
coincident with the plane of the initiating trisngle. When we fix the X-Z normal
at any of the midpoints, we can displace the midpoint by a discrete distance
""Anyregular structure sufficts; the triangle is emy to use aad yields veqr s&isfactory
mutts.
71
4W...* N -TtT
The Triangular Midpoint
Displacement Technique
-S~ .72
.I ,
along the normal and determine a point, Figure 5.3.b. Since the normal is to the
X-Z plane, it is sufficient to simply modify the Y coordinate according to a
'positive or negative value. This is equivalent to displacing the midpoint along the
X-Z normal up or down. We perform this displacement to each midpoint normal
and replace the midpoint with these new points. This yields a new structure that
still consists of four triangles but with each coincident with a different plane,
Figure 5.3.c.
3
a. Midpoint of a Line in R
The determination of the midpoints of the lines of the initiating
triangle is a simple process that uses the equation of Chapter 4, and fixes the
generator ratio constant at 1. This simplifies the general equation of:
Xi + (Generator.ratio.constant x X2 )
Xmld =,
1 + Generator.ratio.constant
~Znid ZI .+ Z2
2
• 2
The above equations completely determine the midpoints of the lines formed by
each endpoint of the initiating triangle.
b. Displacement along the X ýZ Normal
The process of displacing the midpoint along the X-Z normal is a
simple one. We need a factor such that the displacement can obtain a varied
magnitude. This is best aided by the inclusion of a random variable as a multiple
of sonie scaling factor that is added to the Y coordinate of each computed
midpoint. This process is demonstratcd in the following code seguient:
Randvar getrand(Seod);
Pointl~y] Poiatily] + (Scale° Randvar);
44 '73
P3
are
Four Triangles &
3
for each
created
M Ma
triangle initiator m
P, Uj Pa
y axisComputed isplaceAent
... . . . .. . . . . .
Figure
3 c cmplete Rando placneTiage
7'
A valid question is, why the normal to the X-Z plane? There are
three good answers to this question. Using the normal to a fixed plane simplifies
the computation (eliminates the need to perform planar computations at each
recursive division). It also is generally the direction that we want the mountain
to grow. The most important reason however, is related to the gapping problem
(described below). With a fixed direction for displacement, there is no need to
communicate the direction of displacement along the, normal between adjacent
side computations. The recursive levels that compute adjacent sides are
functionally discordant. It is demonstrated below that the solution to the gapping
problem (inconsistent random numbers) which creates the need to communicate
along discordant recursive levels is algorithmically difficult to solve and thus
should be avoided.
c. The Gapping Problem
One problem exists for the midpoint displacement procedure which
utilizes a random displacement along the X-Z normal line. It is indirectly caused
by the data locality aspect of the inductive process of the recursive fractal
descent. The problem exists when two adjacent sides of two adjacent triangles are
not displaced with the same value. Each side is computed during independent
levels of the recursive descent so there is no practical method to communicate the
random numbers for the displacement.
The gapping problem is illustrated in Figure 5.4. For the two
triangles that are extrapolated from the structure, there is an unknown
relationship that is the random variable used to displace the coniuon midpoint.
If triangle A uses Rand - 0.3 and triangle D uses Rand = -1.07, then the
displacement for each adjacent midpoint (whirh are at the start coincident) is
a -,skewed in the opposite d'rection. This creates a pp in the fractal landscape that
will (in all likelyhood) not be filled by other fractal shapes front neighboring
triangles. We need an algorithm which can insure that each midpoint (which is
always sharted by two triangles) has the saame displacement along the normal to
the plane.
i75
N
d. Solving the Gapping Problem via Random Tables
The solution to the gapping problem is straightforward if the
programmer adopts the random number table as his random function
implenentation. The goal is to match adjacent triangles with a seed or
displacement within the random table so that the random number returned is
equivalent for each coincident midpoint.
There exists a symmetry within the triangle of Figure 5.5.a that
allows such an approach. Ideally we want the point Ma to be displaced by the
same magnitude when triangles T 2 and T 4 (highlighted by textures) compute
their random numbers for M.. This can be facilitated by the inclusion of a table
seed for each recursive call to the midpoint displacement routine and by rotating
the orientation of the midpoint triangle (the triangle created by the three
computed midpoints) labeled T 4 in Figure 5.5.a. This rotation is performed in
- relation to the random table and not in relation to the Cartesian space. It is
accomplished by adjusting the order of the points in the recursive call.
To
The Gapping Problem
Generated random structure
Ini ri1t
Sh common midpoiant
S77
*L
V
. Shred c a midpoint
Figure 5.5. a
p1 P2 PP
£
2 P2
"-i- Given that the input to the random tebJi io seedai
A Figure 5.5.d
ti
.3 Figure 5.5.e
78
Wi7
LOAD THE INITIATING TRIANGLE
Seed = 1;
frac. trlangle(P3 ,P
2,P3,Seed)
f
DETERMINE DISTANCE BETWEEN ENDPOINTS OF AN INITIATOR
@1 PlotypixeIO;,
return;
/* Triangle T, '
frac triangkv(M,,P2,Mj.Sccd)
P* Trimigle T2
fractrian lc(NIM,3MP 3 .Seed)
/* Tris.igl T:,~
frac triwirlv(P 1 .M,,M3,,Sccd)
/* Triazigle T,4 /
frat-triazagk(NI2,M 3 ,M1,SeCd)
natural event. The symmetry that was observed fron error measurement and
"sanpling svgeated that there was a natural order to such observations. These
Cetpirical results spurred natural scientists and watheinaticiims to try to fit a
curve to the observed graph that behavec as probability requires (i.e. the sum of
the area under the curve equals unity). Many of the early scientists
- Often referd to " the CGattutan doinbutooa. the aoamal d-trinbt.t60 W tke st4.drd b1*0
curve to whidh every utudeat tis &cUOM@ad
80
so.-.. . ,
V~****
referred to the normal distribution as the law of error ia deference to its roots in
experimental natural .,ience.
Many functional charactvrl - s6 of the normal distribution were
developed33, but credit is usually attriwuted to Carl Frederic Gauss (Ref. 9:pp. 1-
11i who formulated a least squars approach, published in 1809 in Theona Motua
Corporum Coelestium. The form of the normal distribution was not finalized
until the early 20 'h century.
We take our definition of the normal distribution from [Ref. 9:pp 181.
refer to Figure 5.7.
Definition:
The probability density function of a normal random variable X is given by:
Sis the mean, a is the standard deviation
and 03 is the variance.
ex4 tx-012
cPV21 2oz
tAhere co<x< c -oo< p <c andv>0
SCALBE
'hors kSer.t /
pL-o ,p jp4
Many tthfotl~tlt caq lay daiem 10 Fourw tht ial datonbut, moo n~oiblb. P1.
trt S4mat de Lapl"@ and Abralam 4e Mosvre R#( 9pp I I
':' 81
B• * This definition is the general case of the normal distribution. We are
interested in the behavior of the function and need a practical way to deter-nine
a random number that we car use in the parameter of the normal to the plane in
the geometrical relationship described above. To facilitate this, we simplify the
general normal distribution to the well known standard normal distribution,
illustrated in Figure 5.8. The standard normal distribution function is the special
case where # = 0 and or I. This reduces the general equation to the simplified
equation:
f8(x) - exp 21
SThe Standard
.Normal (Gau.sian)
SCALE: Distribution
01* 1 horz a 5vert
-
0
0.0
c=-1.02
- 0.
N
N.(x) 2
' -3 -3 -1 0 1 3 3
j- 09. 37X-
82
b. Standard Computer Random Functions
Some computer systems provide a random number generating
function which observes the normal distribution. If this is provided, then it can
be used directly (after scaling) as a parameter to displace the Y coordinate in the
geometry of the normal to the midpoint displacement as described above.
Many computer systems only provide a random number generating
function which is uniformly distributed over an interval of integers. This is a
p8cudo-random number. Such a function, when given a seed, will produce a
sequence of numbers distributed over the fixed interval defined by that system.
The interval is typically proportional to the maximum integer defined in the
compilers of the system. A normal distribution routine must then be defined that
transforms the uniform random numbers into random numbers which behave
according to the standard ncrmal distributLon function.
mapped into the interval [0,11 and then transformed by the normal
approximating function.
To transform a uniform random variable distributed over an interval
r1 [O,maz int] while maintaining the distribution density, requires the following step:
UNF 0,mazjnt I
*UNF 1 0, = maz int
"34 This is how most standard system provided computer subroutines perform the operation.
: -S." 83
- -. .
Appendix B contains a C UNIX routine that implements an algorithm to
compute the uniform[O,1] -- normal [-oo,+oo] transformation.
A programmer must be very careful when dealing with random
number generators from standard system subroutines. These routines vary widely
and can provide good to barely adequate results. When the normal
transformation routine is written, the programmer must verify experimentally
that his function adequately models the normal distribution. This process is
illustrated by Figure 5.9. Appendix B also contains experimental results which
verify the transformation.
The purist may not accept the results displayed in Figure 5.9 as an
accurate transformation (there appears to be a skew to the negative direction).
We must remind ourselves that we are trying to approximate the roughness of
nature and minor random skewness will not deter us. If the programmer demands
a better approximation, it is a simple process to expand the sample space of the
0,L test and build a tablk with exact proportions by selective deletion of skew
density.
c. Random Functions versus Table Driven Methods
The application of a random modifier in the midpoint displacement
technique can be achieved via two methods.
The choice of which method to use depends on the programmer's application but
"each has its ramifications.
In general, the table lookup operation is considerably faster than the
functional method but must by its definition limit the amount of randomness it
contains. The major issue however is the need to reproduce a figure under some
requirement for fixed terrain. This issue was the driving force for Loren Carpenter
from Lucas Film in determining that he needed to use a table driven method to
produce the planet images for the film Star Trek: The Search for Spock [Ref. 7J.
He had to be able to fix a space where the images of the actors could be imposed
84
Experimental Results for the
Computer Generated Normal
Distribution
Sample Space:
.500 Random Events,22
IxPerimentsl Results
With a Normalised
Transformation Equations Uniform Distribution
Over [0.0,1.0]
From Uniform Distribution
Over [0,I] to the Normal88 8
Distr~ibution Over -w(x(~~~w.:
. 8.. ...
Sace
202
-3.0 0 03.
~ ~ Exe.ena.esl.
Figure ~ ~ ~~.. ... fo. omue
generated norma
~ ...
d .trbuio ~
ove..
..85..
. .
onto the fractal images and coul)d not allow the fixed space to change with each
frame computed. This is the major advantage of the table method. By retaining
a 8eCd to a table of random numbers, you can reproduce the sequence of
displacements along thew normal during the fractal recursive descent.
When you consider the existential quahi4ies of randomness you are
cowEfronted with basic questions about determinisip antt order in the universe. It
i: not. at all clear which rulec chance. IV siijr rse, we can deceive perception
with a relatively small table of random numnicrs.
The question of how much rantdzm,-.,ewz is enough to provide for a
visually appealing texture is not completely clear, In [Ref. 71 Smith demonstrates
a variety uf shapes computed with the same algorithm of Figure 5.6 using
random n;xmbei, tables of different oizes. He demonstrated that as few as five
numboers can &uffice to provide enough local disorder to give the viewer the
acceptable textthr of a mountain. If the mountain segments are viewed at the
correct perspective .si thig perception is clearly felt.
scaje, A trained
aiatheinatician would find the five element mountain siatistically unappealing
however. A true st-,wlhatic consi•,u-tion requires a continuous random function
irather than a discrete table method. As wiog as the goal of our computations is
mnerely to deceive ihe graphies viewer, it suticka to use the random number table.
The table must be large enough ,'Zprovide for an appealing textlural perception.
A complete C program that c'omputes a triangular mountain segment uisip. the
random displacement midpoint technique is contained in appendix C.
86
VI. SHORT CUTS TO MOUNTAIN SHAPES
Since the fractal mountain computation (the full approach with hidden
surfaces etc.) is so costly in terms of resources, it is important for us to consider
shortcuts that can lessen this burden. This is best realized by utilizing the hidden
surface and curve fitting capabilities that are provided on some advanced
graphics systems.
Our goal is to match the well known bicubic surface procedures with the
structure computed by the simple fractal algorithms. This is best accomplished
by modifying the triangular midpoint displacement technique and using a
rectangle 35 as the basic geometric building block. Most of the cubic surface
algorithms use the rectangular structure as their basis, so it is easier to adapt
them to our fractal structure.
When the fractal algorithm of Figure 6.2 has its computations terminated
before reaching the level of pixel size, it yields a connected rectangle structure
like the one shown in "tiguwe 6.3. This structure is a connected Euclidean
structtore that can be used & a Dse on which other algorithms can be applied.
Cubic equations cati fill the polygons to an arbitrary precision and standard
hidden stvirfate aOorithms caa eliminate the hidden sides of the computed
surfaces Simple lighting algorlZ'Ims can be applied to the computed surface to
achieve f realsl.ic iitiyig effect'. This is holw Voo and Carpenter created their
fracwal ,urfac'es in IRJES. 7).
35 We actually uxqe a non-plantar fgo gided polygm.- We refer to the basic structure as a rec-
tigle Lo sittplify the termimiogy8
"36Gourau%,. shading fo~r exatuple.
rectangles, as demonstrated in Figure 6.1. The five shared midpoints of the
generated rectangles are then displaced along the normal to the X-Z plane
according to a random Gaussian value. This process is exactly the same as for the
triangular algorithm of chapter 5. The gapping problem still exists and this
requires an algorithm to rotate the rectangle relative to the random number table
and the starting seed to insure that adjacent midpoints are displaced relative to
the same random number. The basic methodology is displayed in Figure 6.1, the
algorithm is contained in Figure 6.2 with sample results in Figure 6.3.
IN
88
Computed
Four Rectangles Midpoints
are created for
each rectangu-
lar initiator.
Computed displacement
Y axist
a x a..x.......
Y.
v ......
... .. . ..
l.. .......
.. .....
.
..
.. .
...
Main()
{
LOAD THE INITIATING RECTANGLE
Seed = 1;
,S•ed =Seed+5;
/* Rectangle R, '/
frac rectangle(P,,M 1 ,McNM 41 Seed)
/* Rectangle R2 VI
frac rectangle(M 2 ,MCM 1 ,P2,Seed)
/* Rectangl R3 R/
frac rectangle(M 2,MCM 3,P 3,Seed)
/* Rectangle R4 V/
frac rectangle(POM 31,MCM 4 Seed)
14
4rNgo
Rectangular Mountain Fractal
CenrTz rectce~a2
A.9
B. PARAMETRIC CUBIC SURFACES
A complete description of parametric cubic surfaces is too involved to be
'I described in * study. The theoretical basis of cubic curves is not directly
applicable to &;'.ýctal geometry. For a complete description refer to [Ref. 8:pp.
S514-536]. If the reader is already familiar with cubic curves and their derivations,
he can skip by the section on cubic curves to the section that details the
application of cJ-)ic surfaces. For apy reader who has not been exposed to the
derivations of -a'anmetric equations which yields cubic curve computational
engines, it is recommended that he read the following section so that he may gain
insight into the mathematics of cubic surfaces. Detailed knowledge of cubic
curves is not a prerequisite to the successful use of cubic surface fitting engines
with respect to fractal surfaces. It is helpful, however, to understand the
underlying mathemnatics whenever conned equations are used.
1. Cubic Curves
The general method of cubic curves has as its basis that any continuous
curve in R 3 can be expressed in parametric form. This form relates the points
z,y,: with a parameter t such that as I varies within some range of values 37 the
equations solve for unique points on the curve. Specifying two endpoints and two
control points of a segment of the curve allows us to define certain constraints to
be applied to the parametric equations. These constraints allow us to mlauipi4mte
the parametric form of"the equations to yidd a simple vector produc't definition
of that segment. Once this vector product is established, we caan solve for points
on the curve by picking discrete values of I and solving for z-,z in turn. This
yields a discrete approximation of the curve that can bW as prtcise as needed.
a. Parametric Cubic Equatimis of a Curve
A parametric cubic curve is one for which the points in R 3 (x ,y.:)
are each represented as a third-order (cubic) polynomial of NoGIV paraWeter t.
IBecause we deal with a finite swgiznt of a curve, we limit the range of the
49 02
e.l
parameter t to the range, 0 •<, <*1. This yields the equations:
ax
bx
x(t) = It 3 tl t 1] C
This vector product separates the distinct parameters of the parametric equation
into the unknown coefficients of x(t); faxb~cd, and the parameter t that we
wish to manipulate. Through this separation, we are able to manipulate them as
algebraic entities. If you multiply the vector product out, you find that the
vector product is equivalent to the parametric equation that precedes it. Denote
this product as x(t) = TC,, where
T ! 3 t3
t ' t ii
aMid
ia|-x
dx
93
and since the first derivative of x(t) is:
x'(t) = 3t 2 2t I O]Cx = T'Cx
We now have four equations that can be grouped into a vector product:
x(o) 1 0 01
x (1) 1 1 1 1
x'(o) = 00 1 X
x'(1) 3 2 1 0
We recognize that x(0) and x(l) are lihe endpoints of the curve
segment and x'(0) and x'(1) are componeints of the tangent vector at the
endpoints (y'(t) and 2 (t) are the other components). With this knowledge we
are able to solve the left hand side of the equation above. These points (that we
call P, through P4 ) are the control points that we establish for curve fitting'.
For a given curve segment the control points are fixed. We rewrite the equations
above with respect to these known control points:
P , 10 0 0 1
P2• I I 1 1
IP31
P. 1 000 0 1 0 1 'X
P4 3210
SGz M.MCx
The matrix (GO% is often rteerred to as the geomwtry of the cubic curve and M as
the b~s
This equation hex the 4 by I tow vector Ca a the only unkilown.
The eliment,% of thi( CS vector are the pranwtkrs ('fbg~c,,dx) from the
V%
~9
parametric equations. We can solve this equation for these parameters and
establish the parametric equations with the only unknown being the parameter t.
The parameter t can be discretely varied over its range of 0 < t < 1, providing a
set of points on the curve. It is through these constraints that the control points
conlrol the parametric equations and produce an equation thrt can produce a
discretely sainpleable curve segment in three space. Solving the equation for C. is
straightforward:
Cx = M-'Gx
x(t) = TM'-'(;
y(t) TM- Gy
Z~t) Im c
I05
b. An Example: Bezier Cubic Curves
We consider the model called Bezier [Ref. 8:pp. 514-536]. The Bezier
model defines the position of the curve's endpoints and uses two other points (not
on the curve) which define tangents at the curve's endpoints (by the line segment
joining the tangent points to the endpoints).
The matrix M is derived by setting the following constraints (see
Figure 6.4). One endpoint of the segment is located at PI:
x(0)= P1
x(M)= P 4
The line segment from P, to Pý defines a tangent at P1 such that x'(0) relates
to the points PP: as below:
x'(0) = 3(P2-Pl)
x'(1) - 3(P 4 -P 3 )
|ii Solving for C. in terms of Mb yields the cubic Bezier niatrix as:
- CX - 33 -63 3 00 GX
()
Hec h orxt s -1to 3 3
1 0 0 0
-1 3 -31
Hence th~e equation for x(t) is:
- 3 -3 1 IP
3 -6 3 0 [P,
xt)[, t €zj_3 3 0 0 IP31
1 0 0 0 p4
100
Bezier Curve
.rqent,defined by
P1 P 2 •line segment. /12
SP4
at defimed by
PP3. saeat
gie
4 07
A',
parameter t in cubic curves. The connection between cubic curves and surfaces
can be made by fixing one parameter and varying the other over its range. This
yields a cubic curve. The equation is of the form x(s,t) and is written as:
2 3
x(s,t) = allS3 t 3 + a 12 s3t + al 3s t + a14s3
+ a 4 1 t 3 + a 4 2t 2 + a 43 t + a44
x(s,t) = SCxTt
where S = [s3,s 2,s,11, T = [t3 ,t 2 ,t,l] and TV is the transpose of the matrix T.
The complete alge'braic manipulation of the equation to arrive at the
equation below is similar to the curve process as described in the previous
section. Its details are covered in [Ref. 8:pp. 524-536]. The equation for a Bezier
surface patch is:
X(Gt) = SMbQMb t T t
where Mb is the same matrix as in the curve equation, Mbt is its transpose and
Q. is the x component of sixteen control points of a surface patch. Bezier
surfaces are intuitive in their appeal and serve the fractal rectangular mountain
well. To apply the technique to the motmntain of Figure 6.3 requires the
application of a routine that takes the non-planer four sided shape of a computed
iaitiato*- and develops a connected sixteen point figure as illustrated in Figure 6.5.
The inclusion of a l1ezier subroutine at the recursive termination event after this
figure is developed matches the sixteen point figure with a smooth cur've. To
achieve ,Age continuity requires that adjacent tides have the saute four points in
proper juxtal"oition in the sixteen point matrix. This is also denmonstrated in
Figure 6.5. I1czier surfaces guarantee such continiity.
' P
U
Bezier Surface Patches
I B . . .. . .. ,
SB , B9 2•
"A.
R,ltIfor
= B. Bii B9 B1--0E
P 3 B, Bl: P,
P.P , H- P 83
Buu B
H. 4 U, B8
QforR,= Btu 3. B1
. P3 B11 nil P,
00
"4'
VII. CONCLUSIONS
100
3. Fractal Music
In [Ref. 71 Voss demonstrates the application of fractal recursive
1
techniques to I- noise and has produced interesting if not pleasing tonal results.
imprecise and unworkable current definition of fractal sets 42 . That definition uses
competing definitions of dimension, each of which is somewhat difficult. A new
,••
Sadl.y. tbert ha bftn lnitle attention from the mathemnaticl• Community, although tbat is
-bansiamg It is with grtt ttmidity that one &ec" fractal gCOmetr, without such scrutiay.
101
B. CONCLUSIONS
FractaJ geometry is an old idea that has found a new application with the
advent of computer imaging techniques. Its acceptance, has spawned a great deal
of research and has provided a new tool to observe nature through a different
perspective. We must be careful to insure that our findings are in fact valid. We
also must begin the coalescence of the many techniques that have been developed
in order to control the growth of this concept and to attain true scientific
acceptance. Without this acceptance the theory will be criticized (validly) as an
imprecise and unproven idea 43 . This would be an Unfortunate occurrence because
of the potential that fractal geometry possesses.
It is the hope of the author that this work has illuminated the subject of
fractal geometry and that it will aid others in their research. The purpose and
essence of fractal geometry is based on simple concepts. The reader must not be
overawed by the current literature and should retain his perspective with a mild
dose of skepticism. He must not be blinded by skepticism though as the potential
of fractal geometry has not yet been realized. In the final analysis, we expect
that even the skeptical reader will discover the mathematical beauty and
applicative power that fractal geometry possesses.
: • 102
2
APPENDIX A: FRACTAL COMPUTATION IN R
The first routine is the main routine which initializes the data for the Koch curve
generator and initiates the recursive process on each side of the initiator triangle.
The second routine is the recursive subroutine which performs the generator
replacement until the recursive termination event is reached. The termination
event is defined by the precision of the desired output medium.
KOCH.C
1*
This is the main program which controls the initialization of
the koch generator parameters and initiates recursive operations
on each side of the initiator triangle.
'/
* include <iuath.h> /" Standard UNIX inluce file for math library "/
#derine x 0
#define y I
105
/* BEGIN MAIN PROGRAM /
mnain()
{
/* Local variables /
int I;
Curointloljx] = 4.0;
Curypoint[0[y] = 3.0 + sqrt(3.0);
Curjyoint[l][x] = 5.0;
Cur.joint[lilyj - 3.0;
Cur7_oint[2(xl = 3.0;
Cur_.point[2][yI = 3.0;
Cur_.pointI3I[xI = 4.0;
"Cur-point(311yj = 3.0 + sqrt(3.0);
Objectjpnts nmb = 3;
Generatorjoiit.s - 3;
Gensangletil - U.0;
Gen angle[21 - 0.4712M88;
Gen s 0gle31 - 0.0;
/* Ratio of dli•tance between initjyoint! and gen poiat(i) and
distauce between geanpoint(i) and iaitypoint2 "/
10.
/* Tangent of angle between initjpointl and ge__point(i) si
for (1=1; I <= Generatorpoints; I++)
{
- )Tan thedallj = tan(Gen ang•eill);
q++.
4++.*.-
.4-'
GENERATE.C
/.
This subroutine computes the generator from a given set
of points in R 2 that define a line segment which is the
initiator. The routine is recursive and terainates at a predefined
precision that is input to the subroutine.
/ • Parai•,et~'r vaviabls */
doube XL.YIX2.Y2,pcision;
/* Local var..... "I
long N,
double P*frrfavJ312-
double GxiwI•ItOf120J.DIST;
dotil Soe nh , lr k n
diabte X jp.Yj~rpjkrp~b enTP;
Sdouble ton thowmad~one.ia-o•wiuone;
tva
en tt u . 100U),O.0; otoe
-'and j.0; zero 0.0,
0. minus one - -1.0;
10
U,- It
/* The Koch curve is defined in the infinite but our recursion
will terminate after the distance between points becomes less
then the length of a pixel. */
/* Put INITIATOR points one and two into the first and last
points of the GENERATOR points array as they are always
part of the generated structure
• €:G•pont~lli~ll = XI;
-3m[enrtr•o G4 + ,]1 2
il " " -"+ 21['21 Y2;
,•*s
*llI
V107
/* Determine the slope of the line formed by the init_pointl
and init.point2. This is the slope of the INITIATOR
if (X2 != Xl)
{
if (Y2 != YI)
{
Slopeinit = (Y2 - Y1)/(X2 - XI);
}
else
{
Slope init = 0.0;
I
else
/* For each GENERATOR point (except end points as they are equal
to the INITIATOR end points) find the X,Y values. This is
accomplished by using the data from the global external variables.
The constant data about the ratios and angles between the
INITIATOR and GENERATOR remain the same regardless of the
INITIATORS length or position in EUCLIDIAN space */
l0
108
/* If the ar-ge of the INITIATOR point 1 and the GENERATOR
Zpoint in question is zero the:L the GENERATOR point is
coincident with the INITIATOR line and no further
calculations are necessary *1
if ( Gen angle[I] == .ero )
G pit[I-4l][1'_oi
, I _perp;
G_point[I-+ 1[212 Yperp;
else
/ STATE I
4:
if (Slopeinit == ten thousand)
{
/* STATE 1 condition 1; INITIATOR is parallel
to the Y axis */
G_point[I+1J[1] = X.perp;
G.point[I+1]•J[ - Slope.gen
G.point[I+l1]l] + bSen;
}
}/* END STATE 1 /
else
/* STATE 3 #/
110
else
/* STATE 2 *
Slope~perp = (minus one)/Slope init;
b~perp YYyerp - (slopeer Xpp)
if (Slope~gen == one)
Gypoint[l+i]f1] = xi;
G~point[I+11[2) = Slopeyerp *G~point[I+iJ[1J
+ byperp;
else
Cpointjl+11j2J = YI;
GQpointll+l~t1] = (G~pointjl+iJ[2] - byperp)/
Slope~perp;
}/* END IF *
}/* END FOR ~
P* Start recursion on each line formed by the generator fromi
right to left
RAND OM.TABLE.GENERATOR.C
/,
This subroutine will build a table in memory that contains 500 random
numbers that observe the period of a standard normal variable
,/
rand tablegen()
/ Local Variables ,I
int lA
double UNFI, UNF2;
double rangepi;
int factor;
pi 3.1415926535;
112
Sq
/* Determine the range for the random numbers of UNIX UCB */
range = 2;
for (J=l; J<=30; J++)
{
range = range * 2;
range = range- 1;
/* Set the random number generator seed */
srandom(475836);
/" Mold the uniform random variable into the approximate normal
•
-. 4 distribution */
factor = 1.0;
if (log(UNFI) < 0.0) factor = -1.0;
RAND(I] = sqrt(factor * (2.0 * log(UNFI)))
cos ((2'pi'UNF2));
SRAND[11 = RANDII) ' factor;
factor = 1.0;
if (Iog(UNF2) < 0.0) factor = -1.0;
RAND(I+ij - sqrt(factor ' (2.0 log(UNFI)))
,-0 sin ((2"pi*UNF2));
RANDjI+1j RAND(1+i] factor;
return;
113
VERIFYING STATISTICS
The UNIX UCB operating system's uniform distribution random number
generating function spans the interval defined by its integer range. For a VAX
11/780 implementation this is equivalent to 23 - 1 or [0,21474836471.
The random number seed was assigned the value of 475836. The UNIX UCB
random number generator with a fixed seed yields a fixed sequence of numbers
returned from the function, uniformly distributed over the range. This yields a
valuable function if the table needs to be reproduced with the same sequence
after transformation.
The table below shows the results of the uniform distribution sequence after
it was sapezeud into the interval 10,1]. These results show that the uniform
distribution has an acceptable distribution over its range. The transformation
Sinto 10,1] preserves the distribution from the original range ([0,231 - 1]).
S0.0 0.1 = 52
0.1 - 0.2 = 47
0.2 -. 0.3 = 44
0.3 - 0.4 = 49
0.4 0.5 = 49
0.5-. 0.6 = 47
0.6 0.7 = 51
0.7 0.8 = 57
0.8 -. 0.9 = 48
0.9 -. 1.0 56
The table below shows the distribution after the
t•uniform distribution O,11 standard normal j-oo,aco transformation given the
numbers asmdescribed in the above table. This is the data which was used to
build Figure 5.9. The transformation is acceptable for the purpose intended, that
J..: is., to simulate nature's perceived disorder in a fractal function.
114
aI
Analysis of the normal (Gaussian) random numbers
X <= -2.75= 5
-2.75 < X <= -2.25 = 8
-2.25 < X <= -1.75 16
-1.75 < X <= -1.25 29
-1.25 < X <= -0.75 = 56
-0.75 < X <= -0.25 = 88
-0.25 < X <= 0.25 = 115
0.25 < X <= 0.75 = 87
0.75< X <= 1.25=59
,-< X <= 1.75 = 21
1.75 < X <= 2.25 = 12
2.25< X<= 2.75=4
2.75< X =0
115
APPENDIX C: THE TRIANGULAR MOUNTAIN
The first routine is the main routine which initializes the generator data for
the initiating triangle and initiates the recursive process. The second routine is
the recursive subroutine which performs the generator replacement until the
recursive termination event is reached, which is defined by the precision
parameter.
MOUNTAIN.C
/,
This is the main program that controls the initialization of the triangle
initiating structure and initiates the recursion on that triangle. The
recursion will proceed until the recursive termination event (defined
by the precision global parameter)
'/
idefine x 0
#define y I
#define z 2
N
/* BEGIN MAIN PROGRAM */
inain()
f
/* Local Variables */
int I,J,K;
double PI[31,P2[3],P313];
int Seed;
/* Create the initiating triangle structure /
Plx) = 4.5;
Pl[y] = 3.25;
Plz) = 0.0;
P2[x) = 7.0;
P2(y- = 3.25;
P2[z] - 0.0;
P3(x] = 5.75;
P3fy) = 3.25 + sqrt(((2.5 2.5) - (1.25 1.25)));
P3(z] = 0.0;
ui ountain_rienerate(P lP2,P3,Seed);
* 117
44•
GENERATE.MOUNTAIN.C
/,
This is the subroutine that computes the four generated triangles fromn
an initiating triangle. The routine is recursivc and terminates at a
predefined precision defined in the global parameter Precision
/P
#include <math.h> /* Standard math include file for UNIX lib /
#define x 0
#define y I
#define z?
/* Global Structures /
mountain_..enerate(PIP2,P3,Seed)
P Parameter variables */
double P1131,P2131,P314];
int Seed;
/* Local variables /
int IAJ;
double Pgen 1[3j,Pgen2j3jPgen3j3j;
".4•:• double Pwid1131, Pmid2(3J,Pxuid3(3I;
double TEMP,DIST,TWO;
TWO - 2.0;
118
/4 Determine distance between point I and point 2 */
vv
iAl
/* Adjust the Y coordinate => normal from Z-X plane /
~ I
V.
0120
APPENDIX D: THE RECTANGULAR MOUNTAIN
The first routine is the main routine which initializes the generator data for
the initiating rectangular shape and initiates the recursive process. The second
routine is the recursive subroutine which performs the generator replacement
*.until the recursive termination event is reached, which is defined by the precision
parameter.
RECTANGULAR.MOUNTAIN.C
i.This is the main program that controls the initialization of the rectangular
initiating structure and initiates the recursion on that rectangle. The
recursion will proceed until the recursive termination event (defined-
by the precision global parameter)
4../
finclude <math~h> /' Standard UNIX include file for math library /
*'Global Defines /
idefine x 0
#define Z
/ Global Tables /
double RANDI500);
double P-ecision;
double c*ale;
121
/* BEGIN MAIN PROGRAM */
mnaiL()
/* Local Variables */
int I,J,K;
double P1l3],P2[3],P3[3],F413];
int Seed;
/* Create the four sided polygon initiating structure */
P1[x] = 2.0;
Pi[y] = 5.0;
P1[z] = 1.0;
P2[x] = 6.0;
P2[y] = 5.0;
P2[z] = 1.0;
P3[xJ = 7.5;
P3[y] = 6.5;
P3[z] = 3.0;
P4[x] = 3.5;
P4[y] = 6.5;
P4[z] = 3.0;
mountaingenerate(PI,P2,P3,P4,Seed);
/* END MAIN */
}
122
A"~ 1
RECTANGULAR.GENERATE.MOUNTAIN.C
This is the subroutine that computes the four generated rettangles from
an initiating rectangle. The routine is recursive Rnd terminates at a
predefined precision defined in the global parameter Precision
/* Global Structures *1
*
-- 1
/* BEGIN RECURSIVE PROCESS */
mountaingenerate(PI,P2,P3,P4,Seed)
/* Parameter variables *l
double P1[3],P2[3],P313j,P413];
jut Sced;
123
•• 124
/* The four sided polygon is non-planar to average the xyz-displacement
for a best fit approach */
for (1=0; I<=2; I++) /* 0 thru 2 => x,y,z */
{
Center[I] = (P3[I] + PI[I] + P4[I] + P2[1]) / FOUR;
}
/* Adjust the Y coordinate => normal from Z-X plane */
Pmidl[y] = (Scale * RAND[Seed]) + Pmidl[y];
Pmid2[y] = (Scale * RAND[Seed+1]) + Pmid2[y];
Pmid3[y] = (Scale * RAND[Seed+2J) + Pmid3[y];
Prnid4[y] = (Scale * RAND[Seed+3]) + Pmid4[y];
Center[y] (Scale * RAND[Seed+4J) + Center[y];
Seed = Seed + 4;
/* END generate */
1
•"•)•125
4g,-'
'c
APPENDIX E: GEOMETRIC SUPPORT
Many fractal applications and computer graphics models use the normal to a
plane as a computational reference point. For this reason, this appendix is
devoted to two tools for determining the plane equation of a polygon and the
equation of the normal to the computed plane.
Determinant Approach to the Planar Equation
One of the most common forms of a planar equation is the general form. This
form uniquely describes a plane through four coefficients A,B,C and D:
Az +By +Cz = D
With three points on a plane, you can determine the planar equation by
computing the coefficients. This approach utilizes the determinant form of the
planar equation. Given the points P1 = (zi,yU,zi), P 2 = (z 2 ,Y2 ,z 2 ) and
P3 = (z 3 ,y 3 ,z 3) such that P 1 o P 2 # P 3, these points determine a unique plane
in space through the determinant equation:
X2 -X 1 Y2 -Y Z2 =1 0
x2 - XI Y2
Y - YI Z2 Z1 1
Cix X2 - XI
C2= x 3 - xI
Cly x2 - Y1
CZ,1 X - Y-
cis x2 - Zt
C22 X3 - ZI
120
Evaluating the determinant using the diagonal approach yields:
[(x-
x)C1C2,- (x - xi)C15 C2y1 +
[(y - yl)C1.C2. - (y - yl)Cl.C2,] +
Rz - z,)C11C2y - (z - zd)ClC21 ] = 0
Solving the equations for x,y and z in terms of the constant expressions:
A= ClYC22 - CIC2y
B = C1IC2x- ClXC23
C = ClXC2, - C1YC2X
D= -[Ax +By, +Cz1 J
Once the parameters A,B and C have been determined, the solution of the
linear equation for any normal to the plane is straightforward. Using the plane
parameters in the parametric equation for the normal line to the plane and using
any known point on the plane (xkwn,ykwzkwn) (the midpoint of the fractal
triangle for example) determines a normal line as:
I X = xkw + cA
V.• Y = Yk + eB
•X•Z Z= k.,n + CC
127
LIST OF REFERENCES
128
-. L.t S
DistributionList for Papers Written by Michael J. Zyda
- Bill Atkinson.
Apple Computer.
20525 Mariani Ave.
Culwrtino. CA 95014
OI
-2-
Dr. Ed Wegman,
Division Head,
Mathematical Sciences Division,
Office of Naval Research,
800 N. Quincy Street.
Arlington, VA 22217-5000
Edward R. McCracken,
Silicon Graphics, Inc.
2011 Stierlin Road.
Mountain View, CA 94043
Shinji Tomita,
Dept. of Information Science,
Kyoto University,
Sakyo-ku. Kyoto, 606, Japan
Hiroshi Hagiwara,
Dept. of Information Science,
Kyoto University,
Sakyo-ku, Kyoto, 606, Japan
:-•, ~k .....
-4.
Carl Machover,
Machover Associates,
199 Main Street,
White Plains. New York 10601
Robert Luni.
Silicon Graphics. Inc.
2011 Stierlin Road.
Mountain View. CA 94043
Jeff Hausch.
Silicon Graphics. Inc.
2011 Stierlin Road.
Mountain View, CA 94043
Robert A. Walker.
7657 Northern Oaks Court,
Springfield. VA 22153
Dr. Barry L. Kalman.
Washington V'niversity.
Departnient of Computer Science.
iPox 1045.
St. Louis, Missouri 63130
A
Dr. Brankf. J. Gerovac.
Digital Equipment Corporation,
150 Locke Drive LMO4/H4, Box 1015
Marlboro, Massachusetts 01752-9115
Rober! A. Schumacker,
Evans and Sutherland,
PO Box 8700,
580 Arapeen Drive.
Salt Lake City, Utah 84108
R. A. Dammkoeh!er,
Washington Unitet•.,ty,
Department of Computer Science.
Box 1045.
St. Louis, Missouri 03130
Dr. Lynn Ten Eyck.
Interface Software.
79521 Highway 99N.
Cottage Grove. Oregon 97424
Toshiaki Yoshinaga.
Hitachi Works. Hitachi Ltd.
1-1. Saiwaicho 3 Choine.
Hitachi-shi. lbaraki-ken.
317 Japan
Takatoshi Kodaira.
Omika Works. Hitachi Ltd.
2-1. Omika-cho 5-chotwe.
Hitachi-shi. Ibaraki-ken.
319-12 Japan
Atu,%hi Suzuki.
Hit•chi Engineering. Co. Ltd.
2-1. saiwai-cho 3-Chionle.
Hitachi-shi. Ibaraki-ken.
317 Japan
Toshiro Nisirnura.
Hitiachi Engineering. Co. Ltd.
2.1.',iwa-rho 3-Chn-
317 Japan
D)r. John :tandliamrnir.
-* " Dept. of Ehlerical Enginetring.
t'viversi.t of Florida.
(Gain','ilte. Florida 32611
zt
Ir
Dr. Lewis E. Hitchner.
Computer and Information Science Dept.
237 Applied Science Building,
University of California at Santa Cruz,
Santa Cruz. California 95064
Peter Broadwell.
Silicon Graphics, Inc.
2011 Stierlin Road.
Mcuntain View, CA 94043
"Norm Miller.
"Silicon ;raphirs. Inc.
2011 Stierlin Road,
Mountain View. CA 94043
Tony%LowI'.
S•.,, Silicon rp hir•I .
• + 1901 A\'entu of the Starn.
*+ ,%uit, 1774.
Los Angeles. CA %000-
Kevij Uatnmon5.
NASA AME -DDrden Flight RCfearch Facility.
PO Box 273.
Mail Stop O(I.
Edward%. California 93523
-7-
Sherman Gee.
Code 221,
Office of Naval Technology.
800 N. Quincy St.
Arlington, VA 22217
LT Mark W. Hartorag.
900 Cambridge Dr 17.
Bkenicia, CA 94510
Ca.pt. Mike Gaddis.
DCA /JDSSC/C720.
1860 \Vichle Ave
Rcstou. VA 22090
P0 Box 200W.
Sanl Rafarl, CA 9491-
4l
-8-
Dr. S. Ganapathy,
Ultrasonic Imaging Laboratory,
Dept. of Electrical and Computer Engineering.
University of Michigan.
Ann Arbor, MI 48109