Upload
drago
View
36
Download
2
Embed Size (px)
DESCRIPTION
Lecture 37 of 42. Intro to Fractals and L-Systems. Monday, 28 April 2008 William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/Courses/CIS636 - PowerPoint PPT Presentation
Citation preview
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Lecture 37 of 42
Monday, 28 April 2008
William H. Hsu
Department of Computing and Information Sciences, KSU
KSOL course pages: http://snipurl.com/1y5gc
Course web site: http://www.kddresearch.org/Courses/CIS636
Instructor home page: http://www.cis.ksu.edu/~bhsu
Readings:
Handouts from Barnsley
Intro to Fractals and L-Systems
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Computer Graphics 11:3D Object Representations –
Octrees & Fractals
Computer Graphics 11:3D Object Representations –
Octrees & Fractals
Course Website: http://www.comp.dit.ie/bmacnamee
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
FractalsFractals
All of the modelling techniques covered so far use Euclidean geometry methods Objects were described using equations
This is fine for manufactured objects But what about natural objects that have irregular or fragmented
features? Mountains, clouds, coral…
“Clouds are not spheres, mountains are not cones, coastlines are not circles and bark is not smooth, nor does lightning travel in a straight line.”
Benoit Mandelbrot
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Fractal Geometry Methods & Procedural Modelling
Fractal Geometry Methods & Procedural Modelling
Natural objects can be realistically described using fractal geometry methods
Fractal methods use procedures rather than equations to model objects - procedural modelling
The major characteristic of any procedural model is that the model is not based on data, but rather on the implementation of a procedure following a particular set of rules
Modelling On The Fly!
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
FractalsFractals
A fractal object has two basic characteristics: Infinite detail at every point A certain self similarity between object parts and the overall features
of the object
The Koch CurveMandelbrot Set Video From:
http://www.fractal-animation.net/ufvp.htm
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Generating FractalsGenerating Fractals
A fractal object is generated by repeatedly applying a specified transform function to points in a region of space
If P0 = (x0, y0, z0) is a selected initial position, each iteration of a transformation function F generates successive levels of detail with the calculations:
In general the transformation is applied to a specified point set, or to a set of primitives (e.g. lines, curves, surfaces)
... , , , 231201 PFPPFPPFP
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Generating Fractals (cont…)Generating Fractals (cont…)
Although fractal objects, by definition have infinite detail, we only apply the transformation a finite number of times
Obviously objects we display have finite dimension – they fit on a page or a screen
A procedural representation approaches a true representation as we increase the number of iterations
The amount of detail is limited by the resolution of the display device, but we can always zoom in for further detail
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Example: The Koch SnowflakeExample: The Koch Snowflake
Imag
es t
aken
fro
m H
earn
& B
aker
, “C
ompu
ter
Gra
phic
s w
ith O
penG
L” (
2004
)
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Example: FernsExample: Ferns
Very similar techniques can be used to generate vegetation
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Fractal DimensionFractal Dimension
The amount of variation in the structure of a fractal object is
described as the fractal dimension, D More jagged looking objects have larger fractal dimensions
Calculating the fractal dimension can be difficult, especially for particularly complex fractals
We won’t look at the details of these calculations
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Types Of FractalsTypes Of Fractals
Fractals can be classified into three groups Self similar fractals
These have parts that are scaled down versions of the entire objectCommonly used to model trees, shrubs etc
Self affine fractalsHave parts that are formed with different scaling parameters in each
dimensionTypically used for terrain, water and clouds
Invariant fractal setsFractals formed with non-linear transformationsMandelbrot set, Julia set – generally not so useful
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Random Midpoint Displacement Methods For Topography
Random Midpoint Displacement Methods For Topography
One of the most successful uses of fractal techniques in graphics is the generation of landscapes
One efficient method for doing this is random midpoint displacement
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Random Midpoint Displacement Methods For Topography (cont…)
Random Midpoint Displacement Methods For Topography (cont…)
Easy to do in two dimensions Easily expanded to three dimensions to generate terrain
Can introduce a roughness factor H to control terrain appearance Control surfaces can be used to start with a general terrain shape
Terrain generation demo:http://world.std.com/~bgw/applets/1.02/MtFractal/MtFractal.html
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Fractals In Film Special EffectsFractals In Film Special Effects
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
CS G140Graduate Computer Graphics
CS G140Graduate Computer Graphics
Prof. Harriet FellSpring 2007
Lecture 9 – March 26, 2007
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
FractalsFractals
The term fractal was coined in 1975 by Benoît Mandelbrot, from the Latin fractus, meaning "broken" or "fractured".
(colloquial) a shape that is recursively constructed or self-similar, that is, a shape that appears similar at all scales of magnification.
(mathematics) a geometric object that has a Hausdorff dimension greater than its topological dimension.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Mandelbrot SetMandelbrot Set
Mandelbrotset, rendered with Evercat's program.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Mandelbrot SetMandelbrot Set
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
What is the Mandelbrot Set?What is the Mandelbrot Set?
2
:cf
z z c
0
where is the -fold composition of with itself.
nc
nc c
f
f n f
We start with a quadratic function on the complex numbers.
The Mandelbrot Set is the set of complex c such that
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
ExampleExample
2
2
2
2 2
1
0 1 0 1 1 1 0
1 odd0
0 even
2 4 1 3 2 3 9 1 8
2 tend to as tends to .
1 2 2 4 1 3
tend to as tends to .
n
n
n
f z z
f f f
nf
n
f f f
f n
f i i f i f
f i n
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
(Filled-in) Julia Sets(Filled-in) Julia Sets
2
:cf
z z c
The Julia Set of fc is the set of points with 'chaotic' behavior under iteration.The filled-in Julia set (or Prisoner Set), is the set of all z whos orbits do not tend towards infinity. The "normal" Julia set is the boundary of the filled-in Julia set.
c = –1 c = –.5 +.5i c = – 5 +.5i
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Julia Sets and the Mandelbrot SetJulia Sets and the Mandelbrot Set
Some Julia sets are connected others are not.
The Mandelbrot set is the set of c for which the Julia set of fc(z) = z2 + c is connected.
Map of 121 Julia sets in position over the Mandelbrot set (wikipedia)
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
A fractal is formed when pulling apart two glue-covered acrylic sheets.A fractal is formed when pulling apart two glue-covered acrylic sheets.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Fractal Form of a Romanesco Broccoli
photo by Jon Sullivan Fractal Form of a Romanesco Broccoli
photo by Jon Sullivan
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Time for a BreakTime for a Break
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
L-SystemsL-Systems
An L-system or Lindenmayer system, after Aristid Lindenmayer (1925–1989), is a formal grammar (a set of rules and symbols) most famously used to model the growth processes of plant development, though able to model the morphology of a variety of organisms.
L-systems can also be used to generate self-similar fractals such as iterated function systems.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
L-System ReferencesL-System References
Przemyslaw Prusinkiewicz & Aristid Lindenmayer, “The Algorithmic Beauty of Plants,” Springer, 1996.
http://en.wikipedia.org/wiki/L-System
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
L-System GrammarL-System Grammar
G = {V, S, ω, P}, where V (the alphabet) is a set of variables S is a set of constant symbols ω (start, axiom or initiator) is a string of symbols from V defining the initial
state of the system P is a set of rules or productions defining the way variables can be replaced
with combinations of constants and other variables. A production consists of two strings - the predecessor and the successor.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
L-System ExamplesL-System Examples
Koch curve (from wikipedia) A variant which uses only right-angles.
variables : F constants : + − start : F rules : (F → F+F−F−F+F)
Here, F means "draw forward", + means "turn left 90°", and - means "turn right 90°" (see turtle graphics).
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Turtle GraphicsTurtle Graphics
class Turtle { double angle; // direction of turtle motion in degrees double X; // current x position double Y; // current y position double step; // step size of turtle motion boolean pen; // true if the pen is down
public void forward(Graphics g) // moves turtle forward distance step in direction angle
public void turn(double ang)// sets angle = angle + ang;
public void penDown(), public void penUp()// set pen to true or false}
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
My L-System Data FilesMy L-System Data Files
Koch Triangle Form // title4 // number of levels to iterate90 // angle to turnF // starting shapeF:F+F-F-F+F // a rule
F F+F-F-F+F F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
Go to Eclipse
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
More VariablesMore Variables
Dragon When drawing, treat L and R just like F.1090LL:L+R+R:-L-R
L L+R+ L+R+ + -L-R + L+R+ + -L-R + + - L+R+ - -L-R +
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
A Different AngleA Different Angle
Sierpinski Gasket660RL:R+L+RR:L-R-L
R L-R-L R+L+R- L-R-L -R+L+R
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Moving with Pen UpMoving with Pen Up
Islands and Lakes290F+F+F+FF:F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFFf:ffffff // f means move forward with the pen up
F+F+F+F
next slide
F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Islands and LakesOne Side of the BoxIslands and Lakes
One Side of the Box
F+f-FF+F+FF+Ff+FF-f+FF-F-FF-Ff-FFF
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
FF-[-F+F+F]+[+F-F-F]
Using a Stack to Make TreesUsing a Stack to Make Trees
Tree1 [ push the turtle state onto the stack4 ] pop the turtle state from the stack22.5FF:FF-[-F+F+F]+[+F-F-F]
and I add leaves here
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Stochastic L-Systemshttp://algorithmicbotany.org/lstudio/CPFGman.pdf
Stochastic L-Systemshttp://algorithmicbotany.org/lstudio/CPFGman.pdf
seed: 2454 // different seeds for different treesderivation length: 3axiom: FF--> F[+F]F[-F]F : 1/3F--> F[+F]F : 1/3F--> F[-F]F : 1/3
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
3D Turtle Rotations3D Turtle Rotations
Heading, Left, or, Up vector tell turtle direction.+(θ) Turn left by angle θ◦ around the U axis.−(θ) Turn right by angle θ◦ around the U axis.&(θ) Pitch down by angle θ◦ around the L axis.∧(θ) Pitch up by angle θ◦ around the L axis.\(θ) Rollleftbyangleθ◦ around the H axis./(θ) Roll right by angle θ◦ around the H axis.| Turn around 180◦ around the U axis. @v Roll the turtle around the H axis so that H and U lie in a common vertical plane with U closest to up.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
A Mint http://algorithmicbotany.org/papers/
A Mint http://algorithmicbotany.org/papers/
A model of a member of the mint family that exhibits a basipetalflowering sequence.
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Myles Akeem SingletonCentral Illinois Chapter
Myles Akeem SingletonCentral Illinois Chapter
National BDPA Technology Conference 2006Los-Angeles, CA
Examining the World of FractalsExamining the World of Fractals
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Content of presentationContent of presentation
Introduction to fractals L-systems/Production rules Plant images Turtle geometry Conclusion
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Introduction to fractalsIntroduction to fractals
Fractal Geometric Self-similar Has fractional dimension
Categorized under chaos science - fractal geometry 1975 - Benoît Mandelbrot defined the term fractal from the Latin
fractus, “broken” or “fractured”
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Example of self-similarityExample of self-similarity
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Koch Snowflake iterationsKoch Snowflake iterations
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Julia set graphicJulia set graphic
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Introduction to L-systemsIntroduction to L-systems
Fibonacci Thu-Morse Paperfolding Dragon curve Turtle graphics Branching Bracketed Several biological forms are branched, fragmented, or cellular in
appearance and growth Example where a trunk emerges from a branch:
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Production rulesProduction rules
1968 - biologist Aristid Lindenmayer invents the L-system formula Used as a grammar to model the growth pattern of a type of
algae Set of production rules:
Rule 1: a → ab
Rule 2: b → a
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Deterministic, context-free Lindenmayer system (D0L system)
Deterministic, context-free Lindenmayer system (D0L system)
Rule 1: a → ab
Rule 2: b → a
b → a a → ab ab → aba aba → abaab abaab → abaababa
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Ben Hesper and Pauline HogewegBen Hesper and Pauline Hogeweg
Two of Lindenmayer’s graduate students Tested to see if L - systems could resemble botanic forms Images controlled by special characters would draw an image onto a screen
F → move forward one, drawingf → move forward one, without drawing+ → rotate clockwise by a given angle- → rotate counterclockwise by a given angle[ → push into stack] → pop from stack
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Koch Island example“F → F + F - F - FF + F + F - F”
Koch Island example“F → F + F - F - FF + F + F - F”
F → move forward one, drawing
+ → rotate clockwise by a given angle
- → rotate counterclockwise by a given angle
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Plant imagesPlant images
Adding a cursor stack system branching is gained Allows for the creation of plant-
like images
Mimics the structure of trees, bushes and ferns
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Push/pop operations at workPush/pop operations at work
Angle 45
Axiom F
F = F [ + F ] F
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Variables, constants, start words, and rulesVariables, constants, start words, and rules
Variables - symbols denoting replaceable elements Constants - symbols denoting fixed elements Start words - define how the system begins Rules - define how to replace variables with other variables or
constants
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Turtle geometryTurtle geometry
Form of Logo programming Created 1967 at BBN, a Cambridge research firm, by Wally Feurzeig and
Seymour Papert
Grammar:nF - “n” steps forwardnB - “n” steps backaR - turn a degrees rightaL - turn a degrees leftConstants = {nF, nB, aR, aL, Stop}Variables = {, , , ...}Start = (none)
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
Turtle path exampleTurtle path example
<Path> → 5F 90R <Path><Path> → 5F 90R <Path><Path> → 5F 90R <Path><Path> → 5F 90R <Path><Path> → 5f <Path><Path> → 5F 90R <Path><Path> → 5F 90R <Path><Path> → 5F STOP
Production rules:F → move forward, drawingF → move forward, without drawingnF → “n” steps forwardnB → “n” steps backaR → turn “a” degrees rightaL → turn “a” degrees left <Path> denotes the part of the turtle's trail that is not specified Moves are represented by the transactions
Turtle graphic generated
Computing & Information SciencesKansas State University
Lecture 37 of 42CIS 636/736: (Introduction to) Computer Graphics
ConclusionConclusion
Fractal uses Model many different objects and shapes Scientific modeling Creating graphic designs for clothes Multimedia 3-D artwork
Music pioneers of this research are learning how to apply the application of fractals to create new styles of music Uses a recursive process Algorithm is applied multiple times to process its previous output Provides very abstract musical results Becoming one of the most exciting fields of new music research
The limits of fractal will continue to stretch