dragon curve drawn in project 4… how to generate the string of drawing commands? how does the...

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

Upload: lewis-oconnor

Post on 26-Dec-2015

221 views

Category:

Documents


2 download

TRANSCRIPT

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