33
Dragon Curve Drawn in Project 4… How to generate the string of drawing commands? How does the dragon curve come about? 1

Dragon Curve Drawn in Project 4… How to generate the string of drawing commands? How does the dragon curve come about? 1

Embed Size (px)

Citation preview

1

Dragon CurveDrawn in Project 4…

How to generate the string of drawing commands?

How does the dragon curve come about?

2

Startup: 1 fold

R

3

2nd Fold

R

R R L

4

3rd Fold

R

R R L

R R L R R L L

5

4th Fold

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

6

Patterns

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

R

R R L

L

R L L

7

Patterns

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

R

R R L

L

R L L

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

8

Patterns

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

R

R R L

L

R L L

R

R R L

R R L R R L L

RRL R RLL R RRL L RLL

T(f+1,R) = T(f,R)+R+T(f,L)

T(f+1,L) = T(f,R)+L+T(f,L)

T(1,R) = R

T(1,L) = L

9

Resulting Code

def dragon(fold, root):

if fold == 1:

return root

return dragon(fold-1,'R')+root+dragon(fold-1,'L')

T(f+1,'R') = T(f,'R')+'R'+T(f,'L')

T(f+1,'L') = T(f,'R')+'L'+T(f,'L')

10

RL → NSEWDone to simplify project 4

Conversion:Head north by one lengthThen execute the turn instructions writing the resulting

heading

Example: RRL1. N

2. E

3. S

4. E

So the result is NESE

11

Lindenmayer SystemsHow to model biological tree growth and plant

architecture?Our trees are constructed node-by-node, seriallyNature’s trees grow in parallel

Parallel rewrite systems

12

Lindenmayer SystemsTextually – the dragon curve does this:

R => RRLR => RL => RLLL => L

This is a parallel rewriting system

RRLRRLL => RRLRRLLRRRLLRLL

13

Simple Rewriting Loop1. Start with a string w

2. Replace each character c in w with a string s(c) according to the rules stipulated

3. Repeat

R => RRLL => RLLR => RL => L

R => RRLRRL => RRLRRLLRRLRRLL => RRLRRLLRRRLLRLL

14

Q: String length for n Folds is:

R => RRLL => RLLR => RL => L

15

Drawing the stringInterpret each character in the string as doing

some drawing operation, exactly as in Project 4

For the L-R string of the dragon curve:Make turn, draw a single line (fixed length)

R L

16

2 PartsPart 1: string rewriting system defined

Need start string w Need substitution rules

Part 2: string mapped to a drawingSome characters used to draw simple shape,

perhaps a lineSome characters used to change direction etcSome characters used to save and restore state

(recursively)

17

L-SystemsRewrite + drawing rules yield models of biological

shapes and growth

Some examples from the web that mention Prusinkievicz

18

Worked ExampleCharacters: F + - [ ]

Initial string: F

Rewrite rule: F → F [ - F ] F [ + F ] [ F ]

See http://www.biologie.uni-hamburg.de/b-online/e28_3/lsys.html

19

Generations 1 and 2

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]]

20

How to draw Let’s use the turtle drawing program, but instead of only

drawing NSEW allow lines at angle

Turtle state is : the turtle stands at point and looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

21

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

22

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

23

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

24

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

25

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

26

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

27

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

28

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

29

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

30

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

31

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

32

How to draw Turtle state is : the turtle stands at point and

looks in direction , where direction is North.

F means the turtle moves forward a fixed distance d

+ means the turtle turns right by a fixed angle

- means the turtle turns left by a fixed angle

[ means the turtle makes a note of its current state

] means the turtle goes to the most recently noted state (and the note of that state is then deleted)

1

2

34

5

6

F [ - F ] F [ + F ] [ F ]

33

Running this SystemGenerations 2 to 5