1 / 19

Graphical Grammars

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

connie
Download Presentation

Graphical Grammars

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

  8. Γραμματική 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 • Σε αυτό το παράδειγμα χρησιμοποιούμε και διάφορα σύμβολα όπως είναι τα «[», «]», «+» και «-» με το καθένα να κάνει τις λειτουργίες που αναφέραμε προηγουμένως. Graphical Grammars

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

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

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

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

  13. Μορφή αρχείου εισόδου Ένα παράδειγμα αρχείου εισόδου είναι το εξής: 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). Graphical Grammars

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

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

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

  17. Παράδειγμα Graphical Grammars

  18. Αναφορές • www.opengl.org - OpenGL's Home Page. • 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. • http://www.xmission.com/~nate/ - Nate Robbin's GLUT home page. He ported GLUT to Win32. • www.hp.com/unixwork/products/grfx/OpenGL/Web/Reference.html - HP's online OpenGL API reference. • reality.sgi.com/mjk_asd/spec3/spec3.html - GULT's Online API (version 3), hosted by SGI. • reality.sgi.com/mjk_asd/ - Another OpenGL home page, lot's of information. Graphical Grammars

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

More Related