L-systems

Page 1

Ναστάκου Μαρία Διπλωματική εργασία

L-systems

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

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

1


L-systems – είδος fractals Τα Fractals είναι γεωμετρικά σχήματα που περιγράφουν τους σχηματισμούς της φύσης και παρουσιάζουν εντυπωσιακά χαρακτηριστικά: o πολυπλοκότητα o αισθητικότητα o αυτοομοιότητα o διάσταση μικρότερη του 2 (ή ανάμεσα στο 2 και 3 – καμπύλη επιφάνεια ) Mandelbrot Πίστευε ότι η ανάπτυξη των φυτών βασίζεται στη γεωμετρία των fractals και για να μελετήσει τη μορφή τους στράφηκε σ΄ ένα μαθηματικό εργαλείο που ονομάζεται L-system

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

2


Lindenmayer-1968 [πολυκύτταροι

Ανώτερα φυτά

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

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

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

3


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

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

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

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

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

4


Γραμματική Τα L-systems είναι τώρα κοινώς γνωστά ως παραμετρικά συστήματα που ορίζονται από μια πλειάδα: G = (V, ω, P), όπου: o V (το αλφάβητο) είναι ένα σύνολο συμβόλων που περιέχουν στοιχεία τα οποία μπορούν ν’ αντικατασταθούν (μεταβλητές) o ω (αξίωμα) είναι μια σειρά συμβόλων από το V που ορίζει την αρχική κατάσταση του συστήματος. o P είναι το σύνολο κανόνων παραγωγής που καθορίζουν τον τρόπο με τον οποίο οι μεταβλητές μπορούν ν’ αντικατασταθούν με συνδυασμό των σταθερών και άλλων μεταβλητών.[11] τερματικά σύμβολα μη τερματικά σύμβολα

αξίωμα κανόνες παραγωγής

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

5


Γραμματική Χαρακτηριστικό γνώρισμα των L-systems είναι η ταυτόχρονη εφαρμογή των κανόνων που τα διακρίνει από μια τυπική γλώσσα που παράγεται από μια τυπική γραμματική. Έτσι τα L-systems δεν είναι γλώσσα αλλά αυστηρά υποσύνολα γλωσσών Οι λέξεις κτίζονται αναδρομικά εφαρμόζοντας τους κανόνες παραγωγής σε κάθε επανάληψη για να σχηματίσουν μεγαλύτερες και πολυπλοκότερες: o Αξίωμα (αρχική συμβολοσειρά) o κανόνες για κάθε μη τερματικό σύμβολο --- νέα μεγαλύτερη συμβολοσειρά o επανάληψη όσες φορές ορίσουμε εμείς---τελική συμβολοσειρά (lsystem. Ναστάκου Μαρία * L- systems * Μάιος 2013

6


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

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

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

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

7


L-system «χελώνα» Ένα απλό L-system ονομαζόμενο «χελώνα» (ή αντίστοιχα γάτα του scratch, χρησιμοποιείται για τη γεωμετρική απεικόνιση δομών Η χελώνα(η ο γάτος για το scratch) είναι ένα εργαλείο ζωγραφικής για τη γεωμετρική ερμηνεία μιας παραγόμενης συμβολοσειράς(string) Καθώς διαβάζεται η συμβολοσειρά η χελώνα εκτελεί συγκεκριμένες εντολές για ορισμένα σύμβολα και αλλάζει τη θέση-κατάστασή της. Κάθε μετακίνηση ορίζεται με πέντε θεμελιώδη σύμβολα που είναι τα F,+,-,[,]. F σημαίνει «κινήσου προς τα εμπρός». + σημαίνει «στρίψε προς τα δεξιά κατά μια συγκεκριμένη γωνία » σημαίνει «στρίψε προς τα αριστερά κατά μια συγκεκριμένη γωνία » [ σημαίνει «θυμήσου αυτό το σημείο-τοποθεσία» ] σημαίνει «επέστρεψε στο σημείο της μνήμης Ναστάκου Μαρία * L- systems * Μάιος 2013

8


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

sierpinski

Levy

Hilbert

Dragon

Koch

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

9


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

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

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

10


Είδη L-systems Τα L-systems είναι ντετερμινιστικά συστήματα. H προσθήκη βελτιώσεων είχε σαν αποτέλεσμα διαφορετικά είδη: o Πρότυπα (εφαρμόζεται ένας κανόνας για κάθε μη τερματικό σύμβολο) Π.χ.καμπύλη του «von Koch» variables : constants : start: rules: angle :

F +−[] F++F++F F→ F-F++F-F 60°

o Στοχαστικά (για κάθε μη τερματικό σύμβολο χρησιμοποιούμε 2 ή περισσότερους κανόνες με πιθανότητες) a=a+b a=a-bb

κανόνας 1a κανόνας 1b

50% πιθανότητα 50% πιθανότητα

b=aFa-a b=aFFba

κανόνας 2a 30% πιθανότητα κανόνας 2b 70% πιθανότητα

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

11


Είδη L-systems oΠαραμετρικά (Οι κανόνες εξαρτώνται από παραμέτρους των οποίων τα σύμβολα περνούν από τον ένα στον άλλο) A, B F+A A→-BF+AFA+FBB→+AF-BFB-FA+

μη τερματικά σύμβολα τερματικά σύμβολα αξίωμα κανόνας 1 κανόνας 2

o Εξαρτώμενα από τα συμφραζόμενα (οι κανόνες επιλέγονται ανάλογα με τους γείτονες του ενεργού συμβόλου) a,b μη τερματικά σύμβολα +,-,F τερματικά σύμβολα a το αξίωμα a(>null or [ or ]) = a+b κανόνας 1a a (>+)= a[+b] κανόνας 1b a (>F)= ab κανόνας 1c a (>b)= null κανόνας 1d b=aFa-a κανόνας 2

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

12


Είδη L-systems o Χρονικά (οι κανόνες εξαρτώνται από μεταβλητές χρόνου όπως επαναλήψεις, βρόγχοι, ηλικία κ.λ.π.) a,b +,-,F a a = a+b a = ab a = a[+b] a = ab b=aFb-a

μη τερματικά σύμβολα τερματικά σύμβολα το αξίωμα κανόνας που ισχύει στη 1η επανάληψη κανόνας που ισχύει στη 2η επανάληψη κανόνας που ισχύει στη 3η επανάληψη κανόνας που ισχύει στη 4η επανάληψη κανόνας που ισχύει για όλες τις επαναλήψεις

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

13


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

Το scratch είναι μια δυναμική γλώσσα προγραμματισμού που δημιουργήθηκε από το MIT Media Lab (ερευνητικό εργαστήριο) που προσφέρει ένα μαθησιακό περιβάλλον και καθιστά εύκολη τη κατασκευή: o Αλληλεπιδραστικών ιστοριών o Παιχνιδιών o Animations (κινούμενα σχέδια) o Simulations (προσομοιώσεων) o Ψηφιακή τέχνη Το scratch ανήκει στη κατηγορία των ανοικτών μικρόκοσμων στους οποίους υπάρχουν οντότητες και με αυτές ο χρήστης δημιουργεί αντικείμενα

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

14


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

Το καινοτόμο στη γλώσσα scratch είναι ότι για να γράψουμε ένα πρόγραμμα o Δεν πληκτρολογούμε το κώδικα o Η γλώσσα δομείται όπως ένα πάζλ o Σύρουμε έτοιμες τις εντολές Ναστάκου Μαρία * L- systems * Μάιος 2013

15


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

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

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

16


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

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

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

17


Στην εκπαιδευτική διαδικασία o Να δημιουργήσει συλλογές έργων όπως:

•Physics Lab at Scratch

•Best of Geometry •Math projects •geography

•Cellular Automaton and L-System •Optics for Education

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

18


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

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

19


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

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

20


kinect2scratch kinect2scratch … επιτρέπει δεδομένα από το Microsoft Kinect controller να σταλούν στο scratch (γλώσσα προγραμματισμού για παιδιά) Ο καθένας δλδ μπορεί να γράφει προγράμματα με έλεγχο κίνησης με χρήση χειρονομιών φτιάχνεις παιχνίδια και γενικά κάνεις άλματα στη διασκέδαση και στη μάθηση

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

21


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

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

22


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

variables : Constants start : rules : angle :

F +−[] F+F-F F→ F+F-F 120°

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

23


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

variables : constants : start : rules : angle :

F +−[] F F→ FF-[-F+F+F]+[+F-F-F] 22.5°

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

24


Χειμώνας – koch curve

variables : constants : start: rules: angle :

F +−[] F++F++F F→ F-F++F-F 60°

Πρότυπο L-system

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

25


Άνοιξη – tree

variables : constants : start : rules :

F +−[] [F]

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

angle :

30°

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

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

26


Sierpinski – triangle

variables : constants : start : rules :

F +−

angle :

120°

F-F-F F→ F-F+F+F-F

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

27


Sierpinski – version2

variables : constants : start : rules :

F,Χ +− F-F-F F→ F-F+F+F-F, X→FF

angle :

120°

http://scratch.mit.edu/projects/marynasta/2829785 Ναστάκου Μαρία * L- systems * Μάιος 2013

28


Sierpinski – scratch 2.0

χρήση κατάλληλου νέου block-εντολής που είναι μια εντολή αναδρομής

http://beta.scratch.mit.edu/projects/10040902/ Ναστάκου Μαρία * L- systems * Μάιος 2013

29


Real-olive tree

variables :

F,angle

constants :

+,−,[,]

start :

[F]

rules :

F→ F[+FL][-FL]

angle :

μεταβλητή

Η γωνία διακλάδωσης αλλάζει σε κάθε επανάληψη . Ενώ σε κάθε διακλάδωση είναι διαφορετικό το πάχος κάθε κλάδου http://scratch.mit.edu/projects/marynasta/2818889 Ναστάκου Μαρία * L- systems * Μάιος 2013

30


Περιοδικό tiling

variables :

F

constants :

+,−,[,]

start :

- F-

rules :

F→ F+F-F-F+F-F

Angle :

90

Direction :

72

Περιοδικού τύπου επικάλυψη που λαμβάνεται με τη μετατόπιση των πρωτότυπων πλακιδίων κατά ορισμένη απόσταση και κατεύθυνση. http://scratch.mit.edu/projects/marynasta/2862587 Ναστάκου Μαρία * L- systems * Μάιος 2013

31


Star_in_star

variables :

F

constants :

+,−,[,]

start :

F

rules :

F→ [F[+F][-F]F[++F][--F]], F→ FF 90o

Angle :

http://scratch.mit.edu/projects/marynasta/3179734 Ναστάκου Μαρία * L- systems * Μάιος 2013

32


Απεριοδικό tiling

Χρησιμοποιούνται 4 διαφορετικές ενδυμασίες για τη κάλυψη της επιφάνειας με αποτύπωση (σφραγίδα) o αυτοπαρόμοιο o πενταπλή συμμετρία o συμμετρία ανάκλασης http://scratch.mit.edu/projects/marynasta/2959475 Ναστάκου Μαρία * L- systems * Μάιος 2013

33


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.