33
L-systems και υλοποίηση στο scratch Ναστάκου Μαρία Διπλωματική εργασία Επιβλέπων καθηγητής: Νικόλαος Πλατής

L-systems

Embed Size (px)

DESCRIPTION

Διπλωματική εργασία http://issuu.com/marynasta/docs/diplomatiki

Citation preview

Page 1: L-systems

L-systems

και υλοποίηση στο scratch

Ναστάκου Μαρία

Διπλωματική εργασία

Επιβλέπων καθηγητής: Νικόλαος Πλατής

Page 2: L-systems

2

Πίστευε ότι η διαδικασία ανάπτυξης των φυτών βασίζεται στη γεωμετρία των fractals και για να μελετήσει τη μορφή τους στράφηκε σ΄ ένα μαθηματικό εργαλείο που ονομάζεται L-system

L-systems – είδος fractals

Ναστάκου Μαρία * L- systems * Μάιος 2013

Mandelbrot

Τα Fractals είναι γεωμετρικά σχήματα που περιγράφουν τους σχηματισμούς της φύσης

και παρουσιάζουν εντυπωσιακά χαρακτηριστικά: o πολυπλοκότηταo αισθητικότητα o αυτοομοιότηταo διάσταση μικρότερη του 2 (ή ανάμεσα στο 2 και 3 – καμπύλη επιφάνεια )

Prusinkiewicz

Page 3: L-systems

3

Τα L-systems για πρώτη φορά παρουσιάστηκαν το 1968 από τον Aristid Lindenmayer 1925-1989) σαν μια μαθηματική θεωρία της ανάπτυξης των φυτών, που χρησιμοποιήθηκε για να μοντελοποιήσει

o τη διαδικασία ανάπτυξης των φυτώνo τη μορφολογία μεγάλης ποικιλίας οργανισμών, αλλά καιανόργανες μορφές όπως κρύσταλλοι ή άλλες φυσικές μορφές

Lindenmayer-1968

Ναστάκου Μαρία * L- systems * Μάιος 2013

Πολύπλοκες δομές διακλάδωσης

Ανώτερα φυτά

πολυκύτταροι

Page 4: L-systems

4

Κεντρική έννοια των L-systems είναι η έννοια της επανεγγραφής. τεχνική με βάση την οποία καθορίζονται σύνθετα αντικείμενα με διαδοχική αντικατάσταση μερών από ένα απλό αρχικό αντικείμενο χρησιμοποιώντας ένα σύνολο κανόνων επανεγγραφής ή αναπαραγωγής. Η επανεγγραφή μπορεί να γίνει αναδρομικά

L-systems & αυτοομοιότητα

τα L-systems είναι βασικά αναδρομικές διαδικασίες

Ναστάκου Μαρία * L- systems * Μάιος 2013

υποκατάσταση συμβόλων από σύμβολα

γραφική αναπαράσταση των συμβολοσειρών.

Page 5: L-systems

5

Τα L-systems είναι τώρα κοινώς γνωστά ως παραμετρικά συστήματα που ορίζονται από μια πλειάδα:

G = (V, ω, P),όπου:

o V (το αλφάβητο) είναι ένα σύνολο συμβόλων που περιέχουν στοιχεία τα οποία μπορούν ν’ αντικατασταθούν (μεταβλητές)o ω (αξίωμα) είναι μια σειρά συμβόλων από το V που ορίζει την αρχική κατάσταση του συστήματος.o P είναι το σύνολο κανόνων παραγωγής που καθορίζουν τον τρόπο με τον οποίο οι μεταβλητές μπορούν ν’ αντικατασταθούν με συνδυασμό των σταθερών και άλλων μεταβλητών.

Γραμματική

τερματικά σύμβολα

μη τερματικά σύμβολα

αξίωμα

κανόνες παραγωγής

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 6: L-systems

6

Χαρακτηριστικό γνώρισμα των L-systems είναι η ταυτόχρονη εφαρμογή των κανόνων που τα διακρίνει από μια τυπική γλώσσα που παράγεται από μια τυπική γραμματική.

Γραμματική

Έτσι τα L-systems δεν είναι γλώσσα αλλά αυστηρά υποσύνολα γλωσσών

Ναστάκου Μαρία * L- systems * Μάιος 2013

Οι λέξεις κτίζονται αναδρομικά εφαρμόζοντας τους κανόνες παραγωγής σε κάθε επανάληψη για να σχηματίσουν μεγαλύτερες και πολυπλοκότερες: o Αξίωμα (αρχική συμβολοσειρά)o κανόνες για κάθε μη τερματικό σύμβολο --- νέα μεγαλύτερη συμβολοσειρά o επανάληψη όσες φορές ορίσουμε εμείς---τελική συμβολοσειρά (l-system.

Page 7: L-systems

7

Τα L-systems επεκτείνουν συμβολοσειρές (strings) και η επέκταση αυτή βασίζεται σε ντετερμινιστικούς κανόνες(προβλέψιμο το αποτέλεσμα).

Η διαδικασία της επανεγγραφής αρχίζει από ένα αρχικό string.

κάθε εμφάνιση του συμβόλου Α στη τρέχουσα συμβολοσειρά αντικαθίσταται από το ΑΒ …

Γενικό παράδειγμα

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 8: L-systems

8

L-system «χελώνα» Ένα απλό L-system ονομαζόμενο «χελώνα» (ή αντίστοιχα γάτα του scratch, χρησιμοποιείται για τη γεωμετρική απεικόνιση δομών

Η χελώνα(η ο γάτος για το scratch με τις εντολές της πένας) είναι ένα εργαλείο ζωγραφικής για τη γεωμετρική ερμηνεία μιας παραγόμενης συμβολοσειράς(string)

Καθώς διαβάζεται η συμβολοσειρά η χελώνα εκτελεί συγκεκριμένες εντολές για ορισμένα σύμβολα και αλλάζει τη θέση-κατάστασή της. Κάθε μετακίνηση ορίζεται με πέντε θεμελιώδη σύμβολα που είναι τα F,+,-,[,]. F σημαίνει «κινήσου προς τα εμπρός».

+ σημαίνει «στρίψε προς τα δεξιά κατά μια συγκεκριμένη γωνία »

- σημαίνει «στρίψε προς τα αριστερά κατά μια συγκεκριμένη γωνία »

[ σημαίνει «θυμήσου αυτό το σημείο-τοποθεσία»

] σημαίνει «επέστρεψε στο σημείο της μνήμης

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 9: L-systems

9Ναστάκου Μαρία * L- systems * Μάιος 2013

παραδείγματα L-systems

Peano Hilbert

Levy Koch

sierpinski Dragon

Page 10: L-systems

10Ναστάκου Μαρία * L- systems * Μάιος 2013

Ειδικά παραδείγματα L-systems

Tiling: είναι η κάλυψη ενός επιπέδου με πλακάκια χωρίς επικαλύψεις και κενά. Μπορούν να εκφραστούν ως L-systems αφού παράγονται με αναδρομικές διαδικασίες :Επανάληψη περιοδικά ή απεριοδικά μιας ομάδας πρωτότυπων πλακών (prototiles).

Δομές διακλάδωσης: Τα χρησιμοποιούμε για να προσομοιώσουμε την ανάπτυξη φυτών και δέντρων. Χρησιμοποιούμε τις αγκύλες ως σύμβολα οριοθέτησης των κλάδων. (bracketed L-Systems)

Page 11: L-systems

11

Είδη L-systems Τα L-systems είναι ντετερμινιστικά συστήματα.H προσθήκη βελτιώσεων είχε σαν αποτέλεσμα διαφορετικά είδη:

o Πρότυπα (εφαρμόζεται ένας κανόνας για κάθε μη τερματικό σύμβολο)Π.χ.καμπύλη του «von Koch»

o Στοχαστικά (για κάθε μη τερματικό σύμβολο χρησιμοποιούμε 2 ή περισσότερους κανόνες με πιθανότητες) – επιλέγονται με βάση κάποια παράμετρο βαρύτητας

Ναστάκου Μαρία * L- systems * Μάιος 2013

variables :

F

constants :

+ − [ ]

start: F++F++F

rules: F→ F-F++F-Fangle : 60°

a=a+b κανόνας 1a 50% πιθανότητα

a=a-bb κανόνας 1b 50% πιθανότητα

b=aFa-a κανόνας 2a 30% πιθανότητα

b=aFFba κανόνας 2b 70% πιθανότητα

Page 12: L-systems

12

oΠαραμετρικά : (είναι ο συνδυασμός των αριθμητικών παραμέτρων και των συμβόλων)κάθε σύμβολο έχει μια λίστα από παραμέτρους που σχετίζονται με αυτό. Ένα σύμβολο σε συνδυασμό με τη λίστα παραμέτρων του ονομάζεται module και μια συμβολοσειρά είναι μια σειρά από modules.(π.χ. a(0,1)

[b(0,0)]a(1,2))

a(x,y) : x = 0 → a(1, y+1)b(2,3) κανόνας παραγωγής (ο κανόνας εφαρμόζεται όταν ικανοποιείται ο όρος x = 0)

Στο τμήμα τροποποίησης του κανόνα παραγωγής οι παράμετροι καθώς και ολόκληρα τα modules μπορεί να επηρεαστούν.

Το module b(x,y) προστίθεται στη συμβολοσειρά με αρχικές παραμέτρους (2,3). Επίσης οι παράμετροι του ήδη υπάρχοντος module έχουν τροποποιηθεί σύμφωνα με το κανόνα παραγωγής

a(0,2) → a(1,3)b(2,3)

Είδη L-systems

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 13: L-systems

13

o Χρονικά (οι κανόνες εξαρτώνται από μεταβλητές χρόνου όπως επαναλήψεις, βρόγχοι, ηλικία κ.λ.π.)

Ναστάκου Μαρία * L- systems * Μάιος 2013

a , b μη τερματικά σύμβολα+ , - , F τερματικά σύμβολαa το αξίωμαa = a+b κανόνας που ισχύει στη 1η

επανάληψηa = ab κανόνας που ισχύει στη 2η επανάληψηa = a[+b] κανόνας που ισχύει στη 3η επανάληψηa = ab κανόνας που ισχύει στη 4η επανάληψηb=aFb-a κανόνας που ισχύει για όλες τις επαναλήψεις

Είδη L-systems o Εξαρτώμενα από τα συμφραζόμενα (οι κανόνες επιλέγονται ανάλογα με τους γείτονες του ενεργού συμβόλου)a , b μη τερματικά

σύμβολα+ , - , F τερματικά

σύμβολαa το αξίωμαa(>null or [ or ]) = a+b κανόνας 1aa (>+)= a[+b] κανόνας 1ba (>F)= ab κανόνας 1ca (>b)= null κανόνας 1db=aFa-a κανόνας 2

Page 14: L-systems

14

Το scratch είναι μια δυναμική γλώσσα προγραμματισμού που δημιουργήθηκε από το MIT Media Lab (ερευνητικό εργαστήριο) που προσφέρει ένα μαθησιακό περιβάλλον και καθιστά εύκολη τη κατασκευή:

Προγραμματισμός με το Scratch

o Αλληλεπιδραστικών ιστοριώνo Παιχνιδιώνo Animations (κινούμενα σχέδια)o Simulations (προσομοιώσεων)o Ψηφιακή τέχνη

Το scratch ανήκει στη κατηγορία των ανοικτών μικρόκοσμων στους οποίους υπάρχουν οντότητες και με αυτές ο χρήστης δημιουργεί αντικείμενα

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 15: L-systems

15

Το καινοτόμο στη γλώσσα scratch είναι ότι για να γράψουμε ένα πρόγραμμα

o Δεν πληκτρολογούμε το κώδικαo Η γλώσσα δομείται όπως ένα πάζλo Σύρουμε έτοιμες τις εντολές

Προγραμματισμός με το Scratch

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 16: L-systems

16

Το scratch μπορεί να συνδράμει σημαντικά στην υποβοήθηση της εκπαίδευσης και κυρίως για τη πληροφορική, τα Μαθηματικά και τις φυσικές επιστήμες.

o Είναι μια πρακτική μάθησης μέσω σχεδιασμού oΠροσφέρει ευκαιρίες ομαδοσυνεργατικής μάθησης.

o Ευκολία δημοσίευσης και διαμοιρασμού των έργων στο διαδίκτυο

…δημιουργική

εκπαιδευτική συναλλαγή

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 17: L-systems

17

o την οπτικοποίηση φυσικών φαινομένων- μεγεθών (π.χ. ανάκλαση ,κάτοπτρο , υδροστατική πίεση κύκλος του νερού)

o δυνατότητα εμφάνισης διασυνδεδεμένων πολλαπλών αναπαραστάσεων

o άμεσος χειρισμός των εικονικών αντικειμένων

Στην εκπαιδευτική διαδικασία π.χ. στις φυσικές επιστήμες βοηθά για:

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 19: L-systems

19

o Συμμετέχουν σε συζητήσεις (forum) και ανταλλάσσουν εμπειρίες και έργα με συναδέλφους.

o μπορούν να εντοπίσουν και άλλους εκπαιδευτικούς που χρησιμοποιούν το scratch από τη περιοχή τους αλλά και από όλο τον κόσμο.

o Να ενημερωθούν για διάφορες εκδηλώσεις ή πηγές σχετικά με το scratch

Το scratched είναι ένας ιστότοπος που έχουν δημιουργήσει οι άνθρωποι του scratch ειδικά για τους εκπαιδευτικούς.

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 20: L-systems

20

Scratch 2.0

o Μπορείς να δημιουργήσεις νέα blocks-εντολέςo backup (αποθήκευση sprites και blocks)o cloud data : με τη χρήση μεταβλητών δημιουργείς δεδομένα στα οποία μπορούν να έχουν πρόσβαση όλα τα μέλη o κλωνοποίηση να δημιουργείς πολλά αντίγραφα ενός και μόνο scripto να χρησιμοποιήσεις τη web-camera για την ανίχνευση κινήσεων σώματος

Είναι η νέα έκδοση του scratch που μπορείς να προγραμματίζεις onlineΜε επιπλέον χρήσιμα χαρακτηριστικά:

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 21: L-systems

21

kinect2scratch … επιτρέπει δεδομένα από

το Microsoft Kinect controller να σταλούν στο scratch (γλώσσα προγραμματισμού για

παιδιά)Ο καθένας δλδ μπορεί να γράφει προγράμματα με

έλεγχο κίνησης με χρήση χειρονομιών φτιάχνεις παιχνίδια και γενικά

κάνεις άλματα στη διασκέδαση

και στη μάθηση

kinect2scratch

Ναστάκου Μαρία * L- systems * Μάιος 2013

Page 22: L-systems

22Ναστάκου Μαρία * L- systems * Μάιος 2013

Υλοποίηση στο scratch Για τη σχεδίαση της τρέχουσας γενιάςo τρεις λίστες(d, x, y)o ένα δείκτη j που δείχνει στη συμβολοσειρά (τρέχουσα γενιά)o c είναι το γράμμα που δείχνει το jΓια τη παραγωγή της επόμενης γενιάς ορίζουμε σαν γενιά τη προηγούμενη γενιάo δείκτης i που δείχνει στη συμβολοσειρά (προηγούμενη γενιά)

Page 23: L-systems

23

variables : FConstants  + − [ ]start  : F+F-Frules  : F→ F+F-Fangle  : 120°

Ναστάκου Μαρία * L- systems * Μάιος 2013

καλοκαίρι-Tetragon curve

Μέλος της οικογένειας των αυτοπαρόμοιων fractal curves που μπορούμε να προσεγγίσουμε με αναδρομικές μεθόδους όπως τα L-systems

http://scratch.mit.edu/projects/marynasta/2708029

Page 24: L-systems

24Ναστάκου Μαρία * L- systems * Μάιος 2013

Φθινόπωρο- δομή διακλάδωσης

variables : F

constants : + − [ ]

start  : F

rules  : F→ FF-[-F+F+F]+[+F-F-F]

angle  : 22.5°

Page 25: L-systems

25Ναστάκου Μαρία * L- systems * Μάιος 2013

variables :

F

constants :

+ − [ ]

start: F++F++F

rules: F→ F-F++F-Fangle : 60°

Χειμώνας – koch curve

Πρότυπο L-system

Page 26: L-systems

26

variables : F

constants : + − [ ]

start  : [F]

rules  : F→ F[+F][-F] , F→ F[+FL][-FL][FL]

angle  : 30°

Ναστάκου Μαρία * L- systems * Μάιος 2013

Άνοιξη – tree

Στη τελευταία επανάληψη παραγωγής της τελευταίας γενιάς εφαρμόζεται ο δεύτερος κανόνας που δημιουργεί και το ενδιάμεσο κλαδί αλλά και την αποτύπωση των φύλλων

Page 27: L-systems

27

variables : F

constants : + −

start  : F-F-F

rules  : F→ F-F+F+F-F

angle  : 120°

Ναστάκου Μαρία * L- systems * Μάιος 2013

Sierpinski – triangle

Μέλος της οικογένειας των αυτοπαρόμοιων fractal curves που μπορούμε να προσεγγίσουμε με αναδρομικές μεθόδους όπως τα L-systemshttp://scratch.mit.edu/projects/marynasta/

2808241

Page 28: L-systems

28

variables : F,Χ

constants : + −

start  : F-F-F

rules  : F→ F-F+F+F-F, X→FF

angle  : 120°

Ναστάκου Μαρία * L- systems * Μάιος 2013

Sierpinski – version2

http://scratch.mit.edu/projects/marynasta/2829785

Page 29: L-systems

29Ναστάκου Μαρία * L- systems * Μάιος 2013

Sierpinski – scratch 2.0

χρήση κατάλληλου νέου block-εντολής

που είναι μια εντολή αναδρομής

http://beta.scratch.mit.edu/projects/10040902/

Page 30: L-systems

30

variables : F,angle

constants : + , − , [ , ]

start  : [F]

rules  : F→ F[+FL][-FL]

angle  : μεταβλητή

Ναστάκου Μαρία * L- systems * Μάιος 2013

Real-olive tree

Η γωνία διακλάδωσης αλλάζει σε κάθε επανάληψη . Ενώ σε κάθε διακλάδωση είναι διαφορετικό το πάχος κάθε κλάδου

http://scratch.mit.edu/projects/marynasta/2818889

Page 31: L-systems

31

variables : F

constants : + , − , [ , ]

start  : - F-

rules  : F→ F+F-F-F+F-F

Angle : 90

Direction : 72

Ναστάκου Μαρία * L- systems * Μάιος 2013

Περιοδικό tiling

Περιοδικού τύπου επικάλυψη που λαμβάνεται με τη μετατόπιση των πρωτότυπων πλακιδίων κατά ορισμένη απόσταση και κατεύθυνση.

http://scratch.mit.edu/projects/marynasta/2862587

Page 32: L-systems

Ναστάκου Μαρία * L- systems * Μάιος 2013

32

Star_in_star

variables : F

constants : + , − , [ , ]

start  : F

rules  : F→ [F[+F][-F]F[++F][--F]], F→ FF

Angle : 90o

http://scratch.mit.edu/projects/marynasta/3179734

Page 33: L-systems

33Ναστάκου Μαρία * L- systems * Μάιος 2013

Απεριοδικό tiling

Χρησιμοποιούνται 4 διαφορετικές ενδυμασίες για τη κάλυψη της επιφάνειας με αποτύπωση (σφραγίδα)o αυτοπαρόμοιοo πενταπλή συμμετρία o συμμετρία ανάκλασης

http://scratch.mit.edu/projects/marynasta/2959475