Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Graphical Grammars1 Σεβεντεκίδης Κώστας Α.Μ.: 49 Ιωάννινα 17-01-2003.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Graphical Grammars1 Σεβεντεκίδης Κώστας Α.Μ.: 49 Ιωάννινα 17-01-2003."— Μεταγράφημα παρουσίασης:

1 Graphical Grammars1 Σεβεντεκίδης Κώστας Α.Μ.: 49 Ιωάννινα 17-01-2003

2 Graphical Grammars2 Τι είναι...  Με τον όρο graphical grammar εννοούμε όλες τις γραμματικές όπως ακριβώς συμβαίνει και με τις προτάσεις που χρησιμο- ποιούμε στην καθημερινή μας ζωή, οι οποίες αποτελούνται από ένα σύνολο κανόνων, λέξεων και εκφράσεων. Οι λέξεις καθορίζουν αν κάτι είναι κλαδί ή φύλλωμα και η γραμματική με τους κανόνες της καθορίζει την μορφή του δένδρου.  Επειδή σε πολλά σημεία πρέπει να έχουμε επαναλήψη της πληροφορίας, εξαιτίας της ομοιομορφίας των αντικειμένων που υπάρχουν στην φύση, χρησιμοποιούμε τα fractals.

3 Graphical Grammars3 Τι είναι τα fractals;  Τα fractals χρησιμοποιούνται για την καλύτερη απόδοση διαφόρων αντικειμένων. Με αυτά μπορούμε να επαναχρη- σιμοποιήσουμε διάφορα μοτίβα που έχουμε ήδη υλοποιήσει, ώστε να γίνει η αναπαράσταση πιο εύκολη.  Με το όρο fractal εννοείται οποιοδήποτε σχέδιο επανάληψης πληροφορίας.  Η παραγωγή των δένδρων γίνεται με βάση μία γραμματική, η οποία δίνεται από το χρήστη και είναι γνωστή ως L-System Grammar (P. Prusinkiewicz and J. Hanan, “Lecture Notes in Biomathematics”)

4 Graphical Grammars4 Γραμματική L-System  Είναι μία μέθοδος η οποία χρησιμοποιεί επαναλαμβανόμενους ορισμούς με τα συστατικά στοιχεία του δένδρου  Το δένδρο σχεδιάζεται σύμφωνα με την τρέχουσα γραμματική, η οποία ξετυλίγεται χρησιμοποιώντας τους κανόνες και τις λέξεις της γραμματικής  Η πρώτη γραμμή είναι μία λίστα από τα συστατικά τα οποία θα σχεδιάσει. Αρχικά, ξεκινάμε με ένα συστατικό, έστω το F. Οι επόμε- νοι κανόνες καθορίζουν τα F, Q και P (ότι βρίσκεται αριστερά από  αναγνωριστικό και ότι είναι δεξιά είναι ορισμός) F  FFQ Q  QQ P  F Αυτό σημαίνει ότι την πρώτη φορά που θα εκτελεστεί ένας κανόνας θα σχεδιάσει το F σύμφωνα με τον πρώτο κανόνα

5 Graphical Grammars5 Γραμματική L-System Παράδειγμα 1ο (ως προς το συστατικό F)  Η γραμματική του δένδρου είναι ένα σύνολο κανόνων όπως φαίνεται παρακάτω: F  FFQ Q  QQ P  F  Δύο παραγωγές του δένδρου: Αρχικά, θα καθορίσει το F να είναι FFQ και θα σχεδιάσει δύο F και ένα Q. Πατώντας το πλήκτρο spacebar, η γραμματική θα διασπαστεί ως προς το FFQ και θα δώσει FFQFFQQQ. Μία ακόμη διάσπαση της γραμματικής θα δώσει: FFQFFQQQ  FFQFFQQQFFQFFQQQQQQQ

6 Graphical Grammars6 Λειτουργίες (Ι) Σύμβολα που χρησιμοποιούμε:  «+»: Περιστρέφει με φορά αντίθετη από τη φορά των δεικτών του ρολογιού κατά μία προκαθορισμένη γωνία που δίνεται στο αρχείο εισόδου  «-»: Περιστρέφει κατά τη φορά των δεικτών του ρολογιού ως προς μία προκαθορισμένη γωνία  «[»: Ώθηση (push) τρέχουσας θέσης, κλίμακας και περιστρο- φής στη στοίβα

7 Graphical Grammars7 Λειτουργίες (Ι)  «]»: Απώθηση (pop) των αντίστοιχων χαρακτηριστικών από τη στοίβα  «<»: Μειώνουμε το τρέχον μέγεθος κατά το διευκρινισμένο ποσοστό  «>»: Αυξάνουμε αντίστοιχα το τρέχον μέγεθος

8 Graphical Grammars8 Γραμματική L-System Παράδειγμα 2ο (ως προς το συστατικό F) F->XF X ->[+F]F[-F]P P->F  Αυτό που θα γίνει στο συγκεκριμένο παράδειγμα είναι ότι από τον πρώτο κανόνα: F->XF και με μία εφαρμογή αυτού: F-> XF  F->X[+F]F[-F]P  Με μία ακόμη εφαρμογή του κανόνα έχουμε: F->X[+F]F[-F]P  F->X[+F]F[-F]F  Σε αυτό το παράδειγμα χρησιμοποιούμε και διάφορα σύμβολα όπως είναι τα «[», «]», «+» και «-» με το καθένα να κάνει τις λειτουργίες που αναφέραμε προηγουμένως.

9 Graphical Grammars9 Λειτουργίες (ΙΙ) Πλήκτρα που χρησιμοποιούμε:  Το παράθυρο ελέγχεται από το πληκτρολόγιο.  Η αύξηση του μεγέθους του δένδρου γίνεται με το spacebar και όταν το πιέζουμε μία φορά, η γραμματική διασπάται μία φορά. Για επανάληψη, χρησιμοποιούμε το πλήκτρο spacebar περισσότερες φορές.  Η πλήρης οθόνη του παραθύρου πετυχαίνεται με το πλήκτρο f και με επαναχρησιμοποίησή του επιστρέφουμε στην αρχική του μορφή. Επιλέγουμε τις διαστάσεις του παραθύρου στα 640x480 pixels πράγμα το οποίο αλλάζει εύκολα.

10 Graphical Grammars10 Λειτουργίες (ΙΙ)  Zoom in και zoom out με τα πλήκτρα «+» και «-», χωρίς να επηρεάζεται το ίδιο το δένδρο. Πατώντας επαναληπτικά τα πλήκτρα αυτά, γίνονται οι αντίστοιχες λειτουργίες πολλές φορές.  Μετακίνηση της κάμερας με τα βελάκια προς όλες τις κατευ- θύνσεις. Δηλ. με το αριστερό βελάκι μετακινούμε την κάμερα αριστερά, με το δεξί την μετακινούμε δεξιά κ.ο.κ.  Πατώντας Esc ή q το πρόγραμμα τερματίζεται κανονικά και το παράθυρο κλείνει.

11 Graphical Grammars11 Μορφή αρχείου εισόδου  Στην αρχή του αρχείου εισόδου καθορίζουμε το χρώμα του παρασκηνίου (bgcolor), την γωνία απόκλισης (angle) και την κλίμακα (scale).  Το χρώμα του παρασκηνίου καθορίζεται με τα τρία βασικά χρώματα RGB με αντίστοιχες τιμές από 0.0 μέχρι 1.0. Όσο μεγαλύτερη είναι η τιμή αυτή τόσο περισσότερο χρησιμοποι- είται το χρώμα στο οποίο αντιστοιχεί και διάφοροι συνδυασμοί αυτών δίνουν αποχρώσεις όλων των χρωμάτων.  Η γωνία απόκλισης είναι σε μοίρες και ανάλογα με το πρόση- μο (+ ή -) το κλαδί είναι προς το δεξί ή αριστερό μέρος.

12 Graphical Grammars12 Μορφή αρχείου εισόδου  Η κλίμακα είναι ένας παράγοντας που αναλύει το δένδρο κάθε φορά που βρίσκουμε είτε ‘ ’.  Αν δεν καθοριστούν τιμές του χρώματος του παρασκηνίου, της γωνίας και της κλίμακας στο αρχείου εισόδου, τότε παίρνει τις προκαθορισμένες τιμές που θεωρούμε ότι είναι οι εξής: –angle = 20 μοίρες –bgcolor = (0.0, 0.0, 0.0) => μαύρο –scale = 10%

13 Graphical Grammars13 Μορφή αρχείου εισόδου Ένα παράδειγμα αρχείου εισόδου είναι το εξής: angle 20.5 scale 10 bgcolor 0.0 0.0 0.0 F F->XF X->[+F]F[-F]P P->F stem F branch X leaf P στο τέλος καθορίζουμε ποιο από τα συστατικά είναι παρακλάδι (stem), ποιο είναι κλαδί (branch), και ποιο είναι φύλλο (leaf).

14 Graphical Grammars14 Τα συστατικά μέρη ενός δένδρου  Όνομα  Όνομα: Φύλλο(leaf) Εικόνα: Περιγραφή Περιγραφή: Πράσινο χρώμα σε σχήμα διαμαντιού  Όνομα  Όνομα: Παρακλαδί(branch) Εικόνα: Περιγραφή Περιγραφή: Μικρό και φαρδύ κλαδί  Όνομα  Όνομα: Κλαδί(stem) Εικόνα: Περιγραφή Περιγραφή: Μακρύ, λεπτό, πράσινο, σε σχήμα βέργας

15 Graphical Grammars15 Τι έχει γίνει μέχρι τώρα...  Αρχικοποίηση του δένδρου στις τιμές:  Parsing του αρχείου εισόδου με μία διάσπαση κάθε φορά που καλείται η συνάρτηση  Έλεγχος σωστής μορφής αρχείου εισόδου και μηνύματα λάθους (π.χ. περιορισμοί στα αναγνωριστικά με max τιμή 3, έλεγχος για ορισμό της γραμματικής μία φορά)  Τύπωση της λίστας αναγνωριστικών για αποσφαλμάτωση με διαδοχική τύπωση των ενεργειών του χρήστη στην οθόνη  Δημιουργία κλαδιού (stem), παρακλαδιού (branch) και φύλλου (leaf)  Λειτουγίες: αύξηση μεγέθους του δένδρου με spacebar, zoom in, zoom out, μετακίνηση κάμερας, έξοδος angle=20 μοίρες, scale=10% χρώμα παρασκηνίου μαύρο

16 Graphical Grammars16 Τι θα γίνει στη συνέχεια...  Κλιμάκωση (scale) του δένδρου  Περιστροφή της κάμερας γύρω από το δένδρο  Εισαγωγή φωτισμού τυχαία στο χώρο στο πάνω μέρος του παραθύρου  Βελτίωση της εμφάνισης του δένδρου

17 Graphical Grammars17 Παράδειγμα

18 Graphical Grammars18 Αναφορές  www.opengl.org - OpenGL's Home Page. www.opengl.org  www.mesa3d.org - Freeware implementation of an OpenGL "look-a-like". It is, for the most part, a fully compatible OpenGL substitute for UNIX/Linux. www.mesa3d.org  http://www.xmission.com/~nate/ - Nate Robbin's GLUT home page. He ported GLUT to Win32. http://www.xmission.com/~nate/  www.hp.com/unixwork/products/grfx/OpenGL/Web/Reference.html - HP's online OpenGL API reference. www.hp.com/unixwork/products/grfx/OpenGL/Web/Reference.html  reality.sgi.com/mjk_asd/spec3/spec3.html - GULT's Online API (version 3), hosted by SGI. reality.sgi.com/mjk_asd/spec3/spec3.html  reality.sgi.com/mjk_asd/ - Another OpenGL home page, lot's of information. reality.sgi.com/mjk_asd/

19 Graphical Grammars19 Τέλος Παρουσίασης


Κατέβασμα ppt "Graphical Grammars1 Σεβεντεκίδης Κώστας Α.Μ.: 49 Ιωάννινα 17-01-2003."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google