ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ...

119
ΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ΕΦΑΡΜΟΓΩΝ ΕΙΚΟΝΙΚΗΣ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑΣ ΙΩΣΗΦ ΛΑΖΑΡΙΔΗΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΤΙΜΟΣ ΣΕΛΛΗΣ ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ ΓΝΩΣΕΩΝ ΚΑΙ ΔΕΔΟΜΕΝΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΖΩΓΡΑΦΟΥ 157 73, ΑΘΗΝΑ

Transcript of ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ...

Page 1: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

ΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999

ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ

ΕΦΑΡΜΟΓΩΝ ΕΙΚΟΝΙΚΗΣ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑΣ

ΙΩΣΗΦ ΛΑΖΑΡΙΔΗΣ

ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΤΙΜΟΣ ΣΕΛΛΗΣ

ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ ΓΝΩΣΕΩΝΚΑΙ ΔΕΔΟΜΕΝΩΝ

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣΖΩΓΡΑΦΟΥ 157 73, ΑΘΗΝΑ

Page 2: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ
Page 3: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

H παρούσα διπλωματική εργασία πραγματοποιήθηκε κατά τα έτη 1998-1999 υπό την επίβλεψη του καθηγητή κ. Τίμου Σελλή τον οποίον και ευχαριστώ για την ευκαιρία που μου έδωσε να ασχοληθώ με ένα πραγματικά ενδιαφέρον θέμα.

Θέλω να απευθύνω ιδιαίτερες ευχαριστίες στο Μιχάλη Βαζιργιάννη με τον οποίο συνεργάστηκα άμεσα στην εκπόνηση της εργασίας. Με βοήθησε και με κατεύθυνε στον προσδιορισμό του ακριβούς αντικειμένου αυτής της έρευνας και την ομαλή διεκπεραίωσή της.

i

Page 4: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα

1 Eισαγωγή...................................................................................................................................................... 1

1.1 Στόχοι της Εργασίας............................................................................................................................... 11.2 Δομή του Κειμένου.................................................................................................................................2

2 Εικονική Πραγματικότητα στο Διαδίκτυο................................................................................................3

2.1 Η Γλώσσα VRML97...............................................................................................................................42.1.1 Πώς λειτουργεί η VRML.................................................................................................................. 42.1.2 Τι περιέχει ένα αρχείο VRML...........................................................................................................62.1.3 Κόμβοι, Πεδία, Γεγονότα.................................................................................................................72.1.4 Πρωτότυπα (PROTO / EXTERNPROTO)....................................................................................... 82.1.5 ROUTE εντολή...............................................................................................................................102.1.6 Γεωμετρικά Σχήματα (Shape Node – Geometry Nodes – Appearance Nodes)............................. 102.1.7 Κόμβοι Ομαδοποίησης (Grouping Nodes).................................................................................... 122.1.8 Κόμβοι Αισθητήρες (Sensor Nodes)...............................................................................................132.1.9 Κόμβοι Παρεμβολής (Interpolator Nodes).................................................................................... 152.1.10 Κόμβοι Σεναρίου (Script Nodes)................................................................................................. 162.1.11 Tο External Authoring Interface................................................................................................. 172.1.12 Πέρα από τη VRML..................................................................................................................... 18

2.2 To Μέλλον............................................................................................................................................202.2.1 Java 3D API.................................................................................................................................. 202.2.2 X3D................................................................................................................................................21

3 Μοντέλο Δεδομένων ................................................................................................................................. 22

3.1 Χώρος................................................................................................................................................... 233.2 Χρόνος.................................................................................................................................................. 243.3 Απλά αντικείμενα................................................................................................................................. 25

3.3.1 Γεωμετρία απλού αντικειμένου...................................................................................................... 253.3.2 Διαστάσεις απλού αντικειμένου......................................................................................................263.3.3 Εμφάνιση απλού αντικειμένου....................................................................................................... 263.3.4 Αντικειμενο-κεντρικό σύστημα συντεταγμένων.............................................................................. 26

3.4 Απλές σχέσεις ανάμεσα σε χωρο-χρονικά συστήματα συντεταγμένων...............................................283.4.1 Χρονικό μέρος Απλού Μετασχηματισμού....................................................................................... 283.4.2 Χωρικό μέρος Απλού Μετασχηματισμού........................................................................................29

3.4.2.1 Απλή Mετατόπιση.................................................................................................................................... 293.4.2.2 Aπλή Περιστροφή.................................................................................................................................... 303.4.2.3 Απλή Αλλαγή Κλίμακας...........................................................................................................................31

3.4.3 Συνολική Μορφή Απλού Μετασχηματισμού................................................................................... 323.5 Η έννοια του Συνδέσμου...................................................................................................................... 33

3.5.1 Μειονεκτήματα της περιγραφής χωρικών σχέσεων με απλούς μετασχηματισμούς......................... 333.5.2 Τι είναι ο Σύνδεσμος......................................................................................................................343.5.3 Είδη συνδέσμων – Απλοί Σύνδεσμοι.............................................................................................. 35

3.5.3.1 Απλοί Σύνδεσμοι της Σφαίρας................................................................................................................. 363.5.3.2 Απλοί Σύνδεσμοι του Κυλίνδρου............................................................................................................. 373.5.3.3 Απλοί Σύνδεσμοι του Κώνου................................................................................................................... 393.5.3.4 Απλοί Σύνδεσμοι του Κουτιού................................................................................................................. 41

3.5.4 Σύνθετοι Σύνδεσμοι....................................................................................................................... 443.6 Σχέσεις μεταξύ απλών αντικειμένων με χρήση Συνδέσμων................................................................ 46

3.6.1 Χωρικός Γράφος Αντικειμένων......................................................................................................463.6.1.1 Γράφος ή Δέντρο;..................................................................................................................................... 49

3.7 Εισαγωγή Αντικειμένων στο Χωρικό Γράφο.......................................................................................513.7.1 Εισαγωγή με σύνδεση Κόμβου-Ρίζας............................................................................................. 513.7.2 Εισαγωγή με Παρεμβολή μέσω Ρίζας ........................................................................................... 523.7.3 Σύνδεση με οποιονδήποτε Κόμβο του Εισαγόμενου Γράφου..........................................................54

3.7.3.1 Αλλαγή Ρίζας Χωρικού Γράφου...............................................................................................................563.8 Διαγραφή Αντικειμένων....................................................................................................................... 58

ii

Page 5: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα

3.8.1 Διαγραφή Αντικειμένου Φύλλου.....................................................................................................583.8.2 Διαγραφή Εσωτερικού Αντικειμένου.............................................................................................. 59

3.9 Κίνηση.................................................................................................................................................. 613.9.1 Κίνηση Μετασχηματισμού Χωρικών Σχέσεων............................................................................... 613.9.2 Καθορισμός Κίνησης στο διακριτό Χρόνο..................................................................................... 623.9.3 Κίνηση με Μεταβολή Συνδέσμου................................................................................................... 633.9.4 Kίνηση με Αλλαγή Απλού Μετασχηματισμού..................................................................................65

3.9.4.1 Μετατόπιση σε ένα Σύστημα Συντεταγμένων..........................................................................................653.9.4.2 Περιστροφή σε ένα Σύστημα Συντεταγμένων..........................................................................................663.9.4.3 Αλλαγή Κλίμακας σε ένα Σύστημα Συντεταγμένων................................................................................67

3.10 Κίνηση με Μεταβολή του Χωρικού Γράφου..................................................................................... 683.11 Μετασχηματισμός Αντικειμένων....................................................................................................... 70

3.11.1 Μετασχηματισμός Γεωμετρικών Διαστάσεων Απλού Αντικειμένου..............................................703.11.2 Μετασχηματισμός Διαστάσεων Συνθέτου Αντικειμένου...............................................................72

3.12 Έλεγχος Χωρικών Δράσεων...............................................................................................................723.13 Σύνθετες Χωρικές Δράσεις.................................................................................................................73

3.13.1 Αλληλουχία Χωρικών Δράσεων.................................................................................................. 733.13.2 Στρατηγική Σύνθεσης Δράσεων................................................................................................... 75

3.13.2.1 Αγνόηση................................................................................................................................................ 753.13.2.2 Αντικατάσταση.......................................................................................................................................753.13.2.3 Σύνθεση................................................................................................................................................. 76

3.14 Κανόνες Συμπεριφοράς...................................................................................................................... 763.14.1 Γεγονότα...................................................................................................................................... 76

3.15 Συνθήκες.............................................................................................................................................78

4 H Γλώσσα STEDEL ................................................................................................................................. 79

4.1 Απαιτήσεις............................................................................................................................................ 804.2 Η Γραμματική και Σημασιολογία της STEDEL...................................................................................80

4.2.1 Η δομή ενός αρχείου STEDEL.......................................................................................................804.2.2 Ορισμός Απλού Αντικειμένου.........................................................................................................814.2.3 Παγκόσμιος Χωρικός Γράφος Αντικειμένων................................................................................. 834.2.4 Γεγονότα – Συνθήκες..................................................................................................................... 87

4.3 Δράσεις................................................................................................................................................. 874.4 Κανόνες Συμπεριφοράς........................................................................................................................ 884.5 Ανάπτυξη.............................................................................................................................................. 894.6 Απεικόνιση σε VRML97...................................................................................................................... 89

4.6.1 Aρχή Εφαρμογής (InitialEvent)..................................................................................................... 904.6.2 Xρονική Καθυστέρηση (TimeDelayScript).....................................................................................914.6.3 Εκτέλεση Ήχων (SoundScript).......................................................................................................914.6.4 Εμφάνιση Αντικειμένου (ShowScript)............................................................................................924.6.5 Aπόκρυψη Αντικειμένου (HideScript)............................................................................................924.6.6 Μετατόπιση Αντικειμένου (TranslationScript)...............................................................................934.6.7 Nόμος Μετατόπισης (TranslationLaw)..........................................................................................954.6.8 Περιστροφή Αντικειμένου (RotationScript)................................................................................... 964.6.9 Νόμος Περιστροφής (RotationLaw)...............................................................................................974.6.10 Αλλαγή Κλίμακας Αντικειμένου (ScaleScript)..............................................................................984.6.11 Νόμος Αλλαγής Κλίμακας Αντικειμένου (ScaleLaw)................................................................... 984.6.12 Αλλαγή Διαστάσεων Γεωμετρίας (GeometryScript)...................................................................1004.6.13 Νόμος Αλλαγής Διάστασης (ResizeLaw).................................................................................... 1014.6.14 Αλυσίδα Χωρικών Δράσεων (ActionChain)...............................................................................1024.6.15 Aκολουθία Χωρικών Δράσεων (Sequence)................................................................................103

5 Παράδειγμα Λειτουργίας........................................................................................................................ 106

5.1 Η Λειτουργία του Μεταγλωττιστή..................................................................................................... 106

6 Μελλοντικές Επεκτάσεις.........................................................................................................................108

iii

Page 6: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα

6.1 Ολοκλήρωση και Βελτιστοποίηση του Υπάρχοντος Συστήματος..................................................... 1086.2 Εργαλείο Συγγραφής Εφαρμογών Εικονικής Πραγματικότητας με βάση τη γλώσσα STEDEL.......1096.3 Θεωρητική Εργασία............................................................................................................................111

7 Βιβλιογραφία............................................................................................................................................113

iv

Page 7: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

1

1 Eισαγωγή

To παρόν κείμενο περιγράφει τη διπλωματική εργασία με τίτλο «Μοντέλο Δεδομένων και Γλώσσα Περιγραφής Εφαρμογών Εικονικής Πραγματικότητας» η οποία πραγματοποιήθηκε το διάστημα 1998-1999 από το φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Εθνικού Μετσόβιου Πολυτεχνείου. Η εργασία αυτή έγινε στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων υπό την επίβλεψη του καθηγητή κ. Τίμου Σελλή και με τη βοήθεια και καθοδήγηση του Μιχάλη Βαζιργιάννη.

1.1 Στόχοι της Εργασίας

Η εργασία τοποθετείται στο γενικότερο πεδίο έρευνας σε μοντέλα και γλώσσες για περιγραφή εφαρμογών εικονικής πραγματικότητας. Οι άμεσοι στόχοι της είναι:

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

Η αναζήτηση τρόπων για καθορισμό συμπεριφοράς εφαρμογών εικονικής πραγματικότητας με εύληπτους κανόνες συμπεριφοράς

1

Page 8: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Περιεχόμενα

Η πραγματοποίηση ενός ολοκληρωμένου Μοντέλου Δεδομένων για εφαρμογές εικονικής πραγματικότητας που θα χρησιμοποιεί τα στοιχεία που αναφέραμε

Η μελέτη της γλώσσας VRML97 και των δυνατοτήτων και ελλείψεων της, παράλληλα προς την ανάπτυξη του Μοντέλου

Η υλοποίηση μιας γλώσσας περιγραφής εφαρμογών βασισμένης στο Μοντέλο Δεδομένων και χρησιμοποιούσα τη VRML97 για παρουσίαση των εφαρμογών μέσω ενός μεταγλωττιστή από τη γλώσσα αυτή (STEDEL) στη VRML97.

1.2 Δομή του Κειμένου

Το κείμενο αυτής της εργασίας διαιρείται στα ακόλουθα κεφάλαια:

♦ Κεφάλαιο 1: Η παρούσα εισαγωγή. Ανάπτυξη των στόχων της εργασίας και της δομής του κειμένου.

♦ Κεφάλαιο 2: Επισκόπηση της Εικονικής Πραγματικότητας στο Διαδίκτυο. Μικρός οδηγός της γλώσσας VRML97 και αναφορά στ συστήματα Java3D και X3D.

♦ Kεφάλαιο 3: Μοντέλο Δεδομένων. Ανάλυση και παρουσίαση των στοιχείων που συνθέτουν μιαν εφαρμογή Εικονικής Πραγματικότητας: Χώρος, Χρόνος, Απλά Αντικείμενα, Χωρικές Σχέσεις, Γεγονότα, Συνθήκες, Δράσεις.

♦ Kεφάλαιο 4: Παρουσίαση της γλώσσας STEDEL. Η πορεία υλοποίησης της γλώσσας: Μεταγλωττιστής και PROTOs της VRML.

♦ Κεφάλαιο 5: Παραδείγματα χρήσης της γλώσσας STEDEL.♦ Κεφάλαιο 6: Επίλογος και κριτική ανασκόπηση της εργασίας♦ Kεφάλαιο 7: Βιβλιογραφία που χρησιμοποιήθηκε στην εργασία.

2

Page 9: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

2

2 Εικονική Πραγματικότητα στο Διαδίκτυο

Η εικονική πραγματικότητα στο Διαδίκτυο είναι άρρηκτα συνδεδεμένη με την ιστορία της γλώσσας VRML (Virtual Reality Modeling Language). Σ’αυτό το κεφάλαιο θα αναφερθούμε σε αυτή τη γλώσσα καθώς και σε άλλα συστήματα που έχουν προταθεί για την παρουσίαση 3D περιεχομένου στο Διαδίκτυο, με κύριο το Java 3D API της Sun Microsystems.

Σκοπός του παρόντος κεφαλαίου είναι να εισαγάγει τον αναγνώστη στη φιλοσοφία και τις δυνατότητες των διαθεσίμων συστημάτων. Με βάση αυτά, θα υποστηρίξουμε την ανάγκη δημιουργίας ενός περιγραφικού μοντέλου για εφαρμογές εικονικής πραγματικότητας το οποίο θα βασίζεται στις εξής αρχές:

1. Υψηλού επιπέδου περιγραφή εφαρμογών2. Αξιοποίηση των υπαρχόντων συστημάτων (VRML) ως χαμηλού επιπέδου

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

υπάρχοντα συστήματα.

3

Page 10: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

2.1 Η Γλώσσα VRML97

Θα αναφερθούμε τώρα στη γλώσσα Virtual Reality Modeling Language και στο τρέχον πρότυπο VRML97. Η αναφορά μας δεν είναι πλήρης, αλλά θέλει να περιγράψει αφ’ενός τη φιλοσοφία της γλώσσας, να δώσει κάποια παραδείγματα συχνά χρησιμοποιούμενων στοιχείων της, και να καταδείξει κάποια από τα σημεία που η παρούσα εργασία θεωρεί δεκτικά επέκτασης ή βελτίωσης.

Για μια πλήρη περιγραφή της γλώσσας, ο αναγνώστης μπορεί να ανατρέξει στο ίδιο το πρότυπο της [VRML97]. Η επεξήγηση των διαφόρων εννοιών είναι αναλυτική, και εύκολα κατανοητή. Το πρότυπο περιλαμβάνει επίσης αρκετά παραδείγματα που είναι χρήσιμα ως αναφορά.

Το βιβλίο Building 3D Worlds in Java & VRML [Βuild3D] είναι μια πολύ καλή εισαγωγή στη γλώσσα και προσφέρει στον αναγνώστη μια σταδιακή εμβάθυνση τόσο στην ίδια τη VRML όσο και στις σχετικά με Εικονική Πραγματικότητα εφαρμογές. Η παράθεση των εννοιών είναι σταδιακή, διανθισμένη με πληθώρα παραδειγμάτων και εισάγει το χρήστη με σιγουριά στη χρησιμοποίηση της γλώσσας. Το βιβλίο είναι προσανατολισμένο προς το δημιουργό εικονικών κόσμων αλλά και τον προγραμματιστή και κατορθώνει την ισορροπία ανάμεσα στην ευχρηστία και την τεχνική σαφήνεια.

2.1.1Πώς λειτουργεί η VRML

H VRML είναι μια περιγραφική γλώσσα. Ένα αρχείο VRML (που έχει πάντοτε την κατάληξη ".wrl") περιγράφει έναν εικονικό κόσμο με βάση το πρότυπο [VRML97]. Ένας κόσμος της VRML αποτελείται από:

Γεωμετρικά Αντικείμενα Αντικείμενα Πολυμέσων (ήχος, εικόνες, video, κλπ.) Κανόνες Συμπεριφοράς των Αντικειμένων

Το αρχείο VRML δεν καθορίζει τον τρόπο που θα γίνει η παρουσίαση του εικονικού περιεχομένου αυτού αλλά μόνο το ίδιο το περιεχόμενο. Η παρουσίαση του περιεχομένου γίνεται μέσω του VRML browser, ο οποίος αναλαμβάνει να δημιουργήσει τον εικονικό κόσμο από την περιγραφή στο αρχείο VRML, και να τον παρουσιάσει στο χρήστη.

Η λειτουργία του Browser της VRML φαίνεται στο ακόλουθο σχήμα:

4

Page 11: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

H είσοδος του συστήματος είναι η περιγραφή του εικονικού κόσμου στο αρχείο VRML και οι ενέργειες του χρήστη (μέσω των ελεγκτήριων του Browser). Ο Browser διαβάζει το αρχείο και με βάση τους ενσωματωμένους (built-in) κόμβους της γλώσσας και τους κόμβους πρωτότυπα (PROTO κόμβοι) τους οποίους έχει ορίσει ο δημιουργός της εφαρμογής, δημιουργεί μια εσωτερική αναπαράσταση του εικονικού κόσμου που αποτελείται από τα εξής στοιχεία:

Ιεραρχία Μετασχηματισμού (Transformation Hierarchy). Δηλώνει τη χωρική σχέση των αντικειμένων της εφαρμογής μεταξύ τους.

5

Page 12: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Γράφος Αλληλεπίδρασης (Route Graph). Εκφράζει την αλληλεπίδραση των αντικειμένων της εφαρμογής, τόσο μεταξύ τους όσο και με το χρήστη. Δηλώνει την κατεύθυνση των αλληλεπιδράσεων

Μηχανή Εκτέλεσης (Execution Engine). Αναλαμβάνει με βάση το Γράφο Αλληλεπίδρασης να προσαρμόζει την Ιεραρχία Μετασχηματισμού και αντίστροφα. Φροντίζει να βρίσκεται η εσωτερική αναπαράσταση του εικονικού κόσμου σε μια ορθή κατάσταση, σύμφωνα με την προδιαγραφή της VRML.

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

2.1.2Τι περιέχει ένα αρχείο VRML

Ένα αρχείο VRML αρχίζει με μια επικεφαλίδα της μορφής: "#VRML V2.0 utf8" που ακολουθείται από χαρακτήρα νέας γραμμής. Περιέχει έναν οποιοδήποτε αριθμό από τις ακόλουθες κατηγορίες εντολών:

PROTO και EXTERNPROTO εντολές. Αυτές δηλώνουν ένα νέο τύπο κόμβου της VRML που επεκτείνει τις δυνατότητες της. Ο ορισμός του κόμβου αυτού γίνεται στο ίδιο αρχείο (PROTO) ή σε διαφορετικό (EXTERNPROTO). Στη συνέχεια ο δημιουργός μπορεί να χρησιμοποιήσει κόμβους αυτού του νέου τύπου με παρόμοιο τρόπο με τους ενσωματωμένους τύπους κόμβων.

Εντολές κόμβων-ρίζα. Ένας κόμβος – ρίζα δεν είναι απόγονος κανενός άλλου κόμβου και μπορεί να έχει απόγονους.

Εντολές DEF/USE. Με μια εντολή DEF ο χρήστης ξεχωρίζει ονομαστικά έναν κόμβο, συνδέοντας τον με ένα μοναδικό αναγνωριστικό. Στη συνέχεια, με την εντολή USE <Αναγνωριστικό> μπορεί να αναφέρεται σε αυτόν τον κόμβο. Τονίζεται πως η εντολή USE αναφέρεται στο ένα και συγκεκριμένο κόμβο, δε δημιουργεί δηλαδή όπου εμφανίζεται ένα αντίγραφο του κόμβου.

Εντολές ROUTE. Αυτές δηλώνουν την κατεύθυνση των γεγονότων (events) της VRML από κόμβο σε κόμβο. Συνδέουν ουσιαστικά τα eventOut κάποιον κόμβων (σήματα από κόμβο) με τα eventIn άλλων κόμβων. Ένα eventOut είναι μια

6

Page 13: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

ειδοποίηση πως κάτι έχει συμβεί. Ένα eventIn είναι μια προτροπή στον κόμβο να κάνει κάτι. Μέσω των ROUTE εντολών υλοποιείται η συμπεριφορά της VRML.

2.1.3Κόμβοι, Πεδία, Γεγονότα

H VRML χρησιμοποιεί τις έννοιες του κόμβου (node) του πεδίου (field) και του γεγονότος (event). Ένας κόμβος είναι ένα «αντικείμενο» της εφαρμογής. Στο αρχείο VRML είναι οργανωμένοι στο Γράφο Σκηνής (Scene Graph) που εκφράζει τη χωρική τους σχέση. Ένας κόμβος έχει έναν τύπο που είναι το αντίστοιχο της κλάσης του αντικειμενοστραφούς προγραμματισμού. Ο τύπος αυτός μπορεί να είναι ενσωματωμένος της γλώσσας (απαιτείται η υποστήριξη του από το πρότυπο [VRML97]) ή πρωτότυπο που έχει καθοριστεί είτε στο ίδιο το αρχείο ή εξωτερικά.

Ένας κόμβος περιλαμβάνει πεδία και δέχεται και εκπέμπει γεγονότα. Τα πεδία είναι παράμετροι που καθορίζουν το συγκεκριμένο αντικείμενο. Μπορεί να είναι δύο ειδών: απλά fields και exposedFields. Η τιμή ενός exposedField είναι προσβάσιμη από το περιβάλλον του αντικειμένου. Η τιμή του exposedField xxx μπορεί να αναγνωσθεί ως xxx_changed και να ενημερωθεί ως set_xxx. Τα γεγονότα διαχωρίζονται σε eventIn και eventOut. To κάθε αντικείμενο αλληλεπιδρά με το περιβάλλον του δεχόμενο eventIn και αποστέλλοντας eventOut (ή xxx_changed και set_xxx γεγονότα όπως αναφέραμε).

Αναφέρουμε ένα παράδειγμα τύπου κόμβου και συγκεκριμένου αντικειμένου αυτού του τύπου:

Group { eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children [] field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 -1

}

DEF MyGroup Group { children [ USE C1 USE C2 ] bboxCenter 0 1 0}

Στον ορισμό του τύπου βλέπουμε το όνομα του τύπου τα πεδία και γεγονότα του τύπου Group, ακολοθούμενα από τον τύπο τους, μέσα σε άγκιστρα. Για τα πεδία έχουν καθοριστεί default τιμές, π.χ. για το κέντρο του περιβάλλοντος κουτιού (bboxCenter) έχει καθοριστεί η τιμή 0 0 0.

7

Page 14: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Δεξιά βλέπουμε τον ορισμό ενός συγκεκριμένου αντικειμένου τύπου Group το οποίο ονομάζουμε MyGroup. Ο δημιουργός καθορίζει μόνο τα πεδία του αντικειμένου που τον επιθυμούν, λ.χ εδώ τα πεδία children και bboxCenter. Tα πεδία που δεν καθορίζονται ρητά λαμβάνουν τις default τιμές που καθορίζει ο ορισμός του τύπου. Άρα το αντικείμενο MyGroup έχει επιπλέον ένα πεδίο bboxSize με αρχική τιμή –1 –1 –1.

Οι τύποι των πεδίων και των γεγονότων είναι οι ακόλουθοι. Το πρόθεμα SF σημαίνει μία τιμή, ενώ το πρόθεμα MF σημαίνει μια λίστα τιμών του τύπου του αντίστοιχου SF πεδίου. To MF πεδίο σημειώνεται μέσα σε αγκύλες.

FIELD/EVENT ΠΕΡΙΓΡΑΦΉ ΤΟΥ SF – ΤΎΠΟΥ ΠΑΡΆΔΕΙΓΜΑSFBool Μια boolean τιμή, TRUE ή FALSE started FALSESFColorMFColor

Tρεις τιμές του διαστήματος [0,1] που αντιπροσωπεύουν τις RGB συνιστώσες χρώματος

MyColor 0.2 0.4 0

SFFloatMFFloat

Ένας ISO C single precision αριθμός κινητής υποδιαστολής

depth 23.3

SFImage Μη συμπιεσμένη δισδιάστατη εικόνα fooImage 1 2 1 0xFF 0x00

SFInt32MFInt32

Ένας 32-bit ακέραιος counter -1235

SFNodeMFNode

Ένας κόμβος VRML myNode Sphere { radius 0.34}

SFRotationMFRotation

Mια αυθαίρετη περιστροφή περί έναν άξονα που καθορίζεται από ένα διάνυσμα στο χώρο και μια γωνία περιστροφής.

aroundX 1 0 0 1.3

SFStringMFString

Ένα αλφαριθμητικό κωδικοποιημένο σύμφωνα με το UTF-8 σετ χαρακτήρων

state "finished"

SFTimeMFTime

Ένας ISO C double precision αριθμός κινητής υποδιαστολής που αντιπροσωπεύει το χρονικό διάστημα σε sec από την 1η Ιανουαρίου 1970, 00:00:00 GMT

startTime 0.0

SFVec2fMFVec2f

Δισδιάστατο διάνυσμα, αποτελούμενο από δύο single precision αριθμούς κινητής υποδιαστολής

twoD 1.2 0

SFVec3fMFVec3f

Τρισδιάστατο διάνυσμα, αποτελούμενο από τρεις single precision αριθμούς κινητής υποδιαστολής

translation 3 3 3

2.1.4Πρωτότυπα (PROTO / EXTERNPROTO)

H VRML έχει ένα μηχανισμό καθορισμού νέων τύπων κόμβων με τις εντολές PROTO και EXTERNPROTO. Μια εντολή PROTO δημιουργεί ένα νέα τύπο κόμβου και έχει την ακόλουθη σύνταξη:

PROTO <name> [ <declaration> ] { <definition> }

8

Page 15: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Στο νέο τύπο δίδεται το όνομα name και η δήλωση των πεδίων και γεγονότων που περιλαμβάνει (declaration). Ο ορισμός του τύπου δίνεται στο definition κομμάτι της εντολής PROTO και αποτελείται από έναν τουλάχιστο κόμβο VRML και μηδέν ή περισσότερες εντολές PROTO/EXTERNPROTO/ROUTE. Η αντιστοίχηση των πεδίων και γεγονότων του ορισμού με τα αντίστοιχα πεδία της δήλωσης γίνεται μέσω της εντολής ΙS:

<field/eventName> IS <field/eventName>

H εντολή EXTERNPROTO δηλώνει ένα πρωτότυπο το οποίο έχει την ακόλουθη σύνταξη:

EXTERNPROTO <name> [ <external declaration> ] URL ή [ URLs ]

Έχουμε δηλαδή μόνο δήλωση των πεδίων και γεγονότων του κόμβου και όχι του ορισμού του τύπου. Ο ορισμός αυτός βρίσκεται, υπό μορφή μιας PROTO εντολής, στο αρχείο του URL ή των URLs τα οποία περιλαμβάνει η εντολή EXTERNPROTO.

Στο παρακάτω παράδειγμα έχουμε τον ορισμό ενός PROTO και την αντίστοιχη εντολή EXTERNPROTO που πρέπει να υπάρχει σε κάθε αρχείο VRML το οποίο χρησιμοποιεί κόμβους του τύπου που ορίστηκε με το PROTO. Στο δεύτερο αρχείο βλέπουμε και ένα παράδειγμα χρήσης του τύπου με τη δημιουργία ενός αντικειμένου.

#VRML V2.0 utf8

PROTO RedSphere[ field SFFloat radius 1]{ Shape { geometry Sphere { radius IS radius } appearance Appearance { material Material { diffuseColor 1 0 0 }

#VRML V2.0 utf8

EXTERNPROTO RedSphere[ field SFFloat radius][ url "RedSphere.wrl"]

Group { children [ RedSphere { Radius 3.3 }

9

Page 16: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

}}

Όνομα Αρχείου: "RedSphere.wrl"

]}

Όνομα Αρχείου: "Orb.wrl"

2.1.5ROUTE εντολή

Η εντολή ROUTE επιτρέπει την αλληλεπίδραση του χρήστη με τα αντικείμενα της εφαρμογής, και των αντικειμένων της εφαρμογής μεταξύ τους. Μια εντολή ROUTE δηλώνει την κατεύθυνση ενός γεγονότος από το eventOut ή exposedField ενός κόμβου προς το eventIn ή exposedField ενός άλλου κόμβου.

Με εντολές ROUTE μπορούμε να έχουμε έναν ολόκληρο γράφο (ROUTE Graph) που παριστάνει τη ροή των γεγονότων ανάμεσα στα αντικείμενα του κόσμου. Έτσι μπορούμε να καθορίσουμε σχετικά πολύπλοκες συμπεριφορές.

Η εντολή ROUTE συντάσσεται ως εξής:

ROUTE <name>.<field/eventName> TO <name>.<field/eventName>

H χρήση της εντολής ROUTE μπορεί να συνδυαστεί με τη χρήση των κόμβων αισθητήρων (Sensor Nodes), των κόμβων παρεμβολής (Interpolation Nodes) και των κόμβων σεναρίου (Script Nodes). Οι κόμβοι αισθητήρων γεννάνε γεγονότα όταν συμβεί κάτι στον κόσμο (ή αν ο χρήστης κάνει μια ενέργεια). Οι κόμβοι παρεμβολής επιτρέπουν τον αυθαίρετο καθορισμό μιας ακολουθίας τιμών που μπορεί να χρησιμοποιηθεί για μεταβολή χρώματος, κίνηση κλπ. Οι κόμβοι σεναρίου είναι η μεγάλη καινοτομία της VRML97 έναντι προηγουμένων συστημάτων Εικονικής Πραγματικότητας και επιτρέπουν τη χρησιμοποίηση της ευελιξίας μιας υψηλού επιπέδου γλώσσας (Java ή JavaScript) για τον προσδιορισμό πραγματικά σύνθετων συμπεριφορών.

Θα αναφερθούμε σε μερικούς από αυτούς τους κόμβους αναλυτικότερα παρακάτω.

2.1.6Γεωμετρικά Σχήματα (Shape Node – Geometry Nodes – Appearance Nodes)

O καθορισμός ενός γεωμετρικού αντικειμένου στη VRML γίνεται μέσω του Shape κόμβου o οποίος έχει τον παρακάτω ορισμό:

10

Page 17: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Shape { field SFNode geometry NULL field SFNode appearance NULL}

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

Η VRML παρέχει στην παρούσα έκδοση της μια πληθώρα τύπων γεωμετρίας και εμφάνισης με τους οποίους μπορούν να υλοποιηθούν εκπληκτικά αποτελέσματα. Η απαρίθμηση τους στα πλαίσια του παρόντος δε θα είχε νόημα. Ενδεικτικά θα αναφέρουμε τους πρωτογενείς κόμβους γεωμετρίας (Sphere, Cylinder, Cone, Box) και τους κόμβους Appearance, Material και ImageTexture οι οποίοι υλοποιούν εμφάνιση.

Sphere { field SFFloat radius 1}

Cylinder { field SFBool bottom TRUE field SFFloat height 2 field SFFloat radius 1 field SFBool side TRUE field SFBool top TRUE}

Cone { field SFFloat bottomRadius 1 field SFFloat height 2 field SFBool side TRUE field SFBool bottom TRUE}

Box { field SFVec3f size 2 2 2}

Κόμβοι Γεωμετρίας της VRML

Appearance { exposedField SFNode material NULL exposedField SFNode texture NULL exposedField SFNode textureTransform NULL}Material { exposedField SFFloat ambientIntensity 0.2 exposedField SFColor diffuseColor 0.8 0.8 0.8 exposedField SFColor emissiveColor 0 0 0 exposedField SFFloat shininess 0.2 exposedField SFColor specularColor 0 0 0 exposedField SFFloat transparency 0}ImageTexture { exposedField MFString url [] field SFBool repeatS TRUE

11

Page 18: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

field SFBool repeatT TRUE}

Εμφάνιση στη VRML

2.1.7Κόμβοι Ομαδοποίησης (Grouping Nodes)

Οι κόμβοι ομαδοποίησης περιλαμβάνουν ένα πεδίο children το οποίο περιέχει μια σειρά από κόμβους. Ένας κόμβος ομαδοποίησης ορίζει ένα τοπικό σύστημα συντεταγμένων για όλους τους κόμβους που είναι παιδιά του. Αυτό το σύστημα ορίζεται σε σχέση με το σύστημα συντεταγμένων του πατέρα του κόμβου αυτού. Έτσι διαδίδονται οι μετασχηματισμοί από τους κόμβους – ρίζα του εικονικού κόσμου (που δεν έχουν πατέρα) προς τα παιδιά αυτών.

Υπάρχουν πολλοί κόμβοι ομαδοποίησης που καθορίζονται από το πρότυπο VRML97. Θα αναφέρουμε τρεις από τους πιο σημαντικούς. Ο κόμβος Group δηλώνει μια ομάδα αντικειμένων τα οποία μπορούμε να χειριστούμε στη συνέχεια μέσω του κόμβου αυτού. Ο κόμβος Transform επιπλέον ορίζει ένα νέο σύστημα συντεταγμένων καθορίζοντας μια σχέση ανάμεσα στο σύστημα συντεταγμένων του πατέρα και στο σύστημα συντεταγμένων των παιδιών. Ο κόμβος Inline μας επιτρέπει να παρεμβάλλουμε στην περιγραφή του κόσμου μας κόμβους οι οποίοι βρίσκονται ορισμένοι σε κάποιο άλλο αρχείο.

Group { eventIn MFNode addChildren eventIn MFNode removeChildren exposedField MFNode children [] field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 –1

}Transform { eventIn MFNode addChildren eventIn MFNode removeChildren exposedField SFVec3f center 0 0 0 exposedField MFNode children [] exposedField SFRotation rotation 0 0 1 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation scaleOrientation 0 0 1 0 exposedField SFVec3f translation 0 0 0 field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 –1

12

Page 19: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

}

Inline { exposedField MFString url [] field SFVec3f bboxCenter 0 0 0 # (-,) field SFVec3f bboxSize -1 -1 –1

}

Βλέπουμε πως οι κόμβοι ομαδοποίησης περιλαμβάνουν events addChildren και removeChildren μέσω των οποίων μπορούμε να προσθέτουμε και να αφαιρούμε παιδιά από αυτούς. Έτσι μπορούμε να πετύχουμε εμφάνιση, απόκρυψη και μετακίνηση αντικειμένων. Επίσης βλέπουμε πως ο κόμβος Transform περιλαμβάνει μερικά exposedFields (translation, rotation κλπ.) μέσω των οποίων μπορούμε (μεταβάλλοντας τις τιμές τους) να επιτύχουμε κίνηση.

2.1.8Κόμβοι Αισθητήρες (Sensor Nodes)

Oι κόμβοι αισθητήρες μας επιτρέπουν να ανιχνεύουμε ενδιαφέροντα συμβάντα που συμβαίνουν στον εικονικό κόσμο, όπως το πέρασμα του χρόνου ή οι ενέργειες του χρήστη. Ένας κόμβος αισθητήρας λειτουργεί εκπέμποντας ένα ή περισσότερα eventOut όταν «αισθανθεί» αυτό για το οποίο είναι σχεδιασμένος.

Το πρότυπο της VRML μας δίνει μια σειρά από κόμβους αισθητήρες με τους οποίους μπορούμε να ανιχνεύουμε διαφόρων τύπων συμβάντα. Χρησιμοποιώντας τα eventOut που γεννούν οι κόμβοι αυτοί ως eventIn κόμβων παρεμβολής (Interpolator Nodes) ή κόμβων σεναρίου (Script Nodes) μπορούμε να καθορίσουμε συμπεριφορά που θέλουμε να πυροδοτείται από την ανίχνευση των συμβάντων αυτών.

Θα αναφέρουμε ενδεικτικά τρεις πολύ χρήσιμους κόμβους αισθητήρες: TimeSensor, ProximitySensor, TouchSensor.

TimeSensor { exposedField SFTime cycleInterval 1 exposedField SFBool enabled TRUE exposedField SFBool loop FALSE exposedField SFTime startTime 0 exposedField SFTime stopTime 0 eventOut SFTime cycleTime eventOut SFFloat fraction_changed

13

Page 20: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

eventOut SFBool isActive eventOut SFTime time

}

ProximitySensor { exposedField SFVec3f center 0 0 0 exposedField SFVec3f size 0 0 0 exposedField SFBool enabled TRUE eventOut SFBool isActive eventOut SFVec3f position_changed eventOut SFRotation orientation_changed eventOut SFTime enterTime eventOut SFTime exitTime

}TouchSensor { exposedField SFBool enabled TRUE eventOut SFVec3f hitNormal_changed eventOut SFVec3f hitPoint_changed eventOut SFVec2f hitTexCoord_changed eventOut SFBool isActive eventOut SFBool isOver eventOut SFTime touchTime}

Με τον κόμβο TimeSensor μπορούμε να ανιχνεύουμε το πέρασμα του χρόνου. Ο κόμβος αυτός γεννάει ένα fraction_changed eventOut σε κάθε «τικ» του ρολογιού (ειδικό του browser). Αυτό είναι μια τιμή στο διάστημα [0,1] που δηλώνει σε πιο σημείο του κύκλου χρόνου βρίσκεται ο κόμβος. Επίσης γεννάει ένα cycleTime eventOut μετά το πέρας κάθε κύκλου χρόνου. Το χρονικό μήκος του κύκλου σε δευτερόλεπτα καθορίζεται από το πεδίο cycleInterval. Ο κύκλος ξεκινάει από το χρόνο startTime και επαναλαμβάνεται αν το πεδίο loop είναι TRUE. Αν ο παρόν χρόνος είναι μεγαλύτερος από το χρόνο stopTime τότε ο κόμβος είναι ανενεργός (δε γεννά eventOuts).

Ο κόμβος ProximitySensor μας βοηθάει να ανιχνεύουμε τη θέση και οπτικό προσανατολισμό του χρήστη σε σχέση με τα αντικείμενα της εφαρμογής. Ο κόμβος αυτός ορίζει ένα κουτί (πεδία center και size) στο τοπικό σύστημα συντεταγμένων. Μόλις το avatar1 μπει σε αυτό το κουτί γεννάται ένα enterTime eventOut. Αντιστοίχως γεννάται ένα exitTime eventOut μόλις ο χρήστης βγει από το κουτί. Τα position_changed και orientation_changed γεννώνται όταν ο χρήστης βρίσκεται μέσα στο κουτί και αλλάζει θέση ή οπτική κατεύθυνση.1 Avatar: ο εικονικός χρήστης που θεωρείται πως βρίσκεται σε μια θέση του εικονικού κόσμου και με

κάποια συγκεκριμένη οπτική κατεύθυνση

14

Page 21: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Ο κόμβος TouchSensor αντιδρά στις ενέργειες του χρήστη μέσω της συσκευής εισόδου (συνήθως ποντίκι). Αντιδά όταν γίνονται τέτοιες ενέργειες πάνω από γεωμετρικά αντικείμενα τα οποία περιλαμβάνονται στην ομάδα του πατέρα του κόμβου που έχει τον κόμβο αυτό ως παιδί. Γεννά διάφορα ενδιαφέροντα eventOuts όπως το touchTime κάθε φορά που ενεργοποιείται η συσκευή εισόδου (κλικ), το isOver όποτε ο δείκτης βρίσκεται πάνω από ένα αντικείμενο και το isActive όσο η συσκευή εισόδου είναι ενεργός.

2.1.9Κόμβοι Παρεμβολής (Interpolator Nodes)

Οι κόμβοι παρεμβολής μας επιτρέπουν να δημιουργούμε ακολουθίες διακριτών αλλαγών με τις οποίες μπορούμε να πετύχουμε δυναμική συμπεριφορά του εικονικού κόσμου, όπως κίνηση, αλλαγή χρώματος κ.ο.κ. Ένας κόμβος παρεμβολής περιέχει δύο πεδίο, το key και το keyValue. Το πρώτο είναι τύπου MFFloat (περιέχει δηλαδή μια σειρά από αριθμούς κινητής υποδιαστολής). Το δεύτερο είναι τύπου MF<type> όπου type είναι ο ένας τύπος καθορισμένος για κάθε είδος τέτοιου κόμβου (λ.χ. MFColor για τον ColorInterpolator).

Το πεδίο key περιέχει n τιμές, έστω ),,,( 110 −nttt τέτοιες ώστε ii tt ≥+1 ∀i∈{0,1,…

,n-2}. To πεδίο keyValue περιέχει και αυτό n τιμές ),,,( 110 −nvvv που είναι οι τιμές της

συνάρτησης f(t) για τις αντίστοιχες τιμές του key:

≤≤≥≤

=

++

−−

11

11

00

),,,(linterp,,

)(

iiii

nn

tttvvtttvttv

tf

Η λειτουργία του κόμβου παρεμβολής θα γίνει περισσότερο κατανοητή αν χρησιμοποιήσουμε ένα παράδειγμα. Δίνουμε τους ορισμούς δύο τέτοιων κόμβων:

PositionInterpolator { eventIn SFFloat set_fraction exposedField MFFloat key [] exposedField MFVec3f keyValue [] eventOut SFVec3f value_changed

}

OrientationInterpolator { eventIn SFFloat set_fraction exposedField MFFloat key [] exposedField MFRotation keyValue [] eventOut SFRotation value_changed

}

15

Page 22: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

H ενεργοποίηση του κόμβου παρεμβολής γίνεται πάντοτε μέσω του eventIn set_fraction το οποίο προέρχεται παραδείγματος από ένα TimeSensor κόμβο. Αυτό έχει ως αποτέλεσμα τον υπολογισμό της συνάρτησης παρεμβολής f(t). Το αποτέλεσμα είναι η εκπομπή ενός eventOut value_changed το οποίο μπορεί να χρησιμοποιηθεί στην περίπτωση του PositionInterpolator, λ.χ. για να μεταβάλλει την τιμή του translation πεδίου ενός Transform κόμβου, επιτυγχάνοντας έτσι κίνηση.

2.1.10Κόμβοι Σεναρίου (Script Nodes)

Ο κόμβος σεναρίου (Script Node) είναι το πιο ευέλικτο μέσο για τον καθορισμό συμπεριφοράς με τη VRML. Συνδυάζει το μοντέλο γεγονότων της VRML με τη δυνατότητα χρησιμοποίησης μιας ευέλικτης γενικού σκοπού γλώσσας προγραμματισμού. Ένας κόμβος σεναρίου έχει την εξής περιγραφή:

Script { exposedField MFString url [] field SFBool directOutput FALSE field SFBool mustEvaluate FALSE # Οποιοσδήποτε αριθμός από τα eventIn eventType eventName field fieldType fieldName initialValue eventOut eventType eventName

}

Το πεδίο url καθορίζει το που βρίσκεται ο κώδικας που υλοποιεί τη συμπεριφορά του script. Αυτό μπορεί να δείχνει σε κάποιο αρχείο Java bytecode ή JavaScript ή μπορεί να περιέχει τον ίδιο τον κώδικα. Το Script επίσης περιέχει έναν αριθμό από eventIns, eventOuts και fields. Δεν επιτρέπεται να περιέχει exposedFields.

Για κάθε eventIn πρέπει να υπάρχει μια μέθοδος στη υλοποίηση του script η οποία είναι ο εξυπηρετητής του eventIn και εκτελείται οπόταν ενεργοποιείται το αντίστοιχο eventIn. Επίσης μπορούν να χρησιμοποιηθούν μέθοδοι initialize(), shutdown() και eventsProcessed(). Η πρώτη εκτελείται όταν δημιουργείται το αντικείμενο, η δεύτερη όταν καταστρέφεται (π.χ. λόγω κλεισίματος του browser) και η τρίτη αναλαμβάνει να χειριστεί πολλαπλά evenIns τα οποία έχουν την ίδια χρονική σφραγίδα (έχουν φτάσει δηλαδή ταυτόχρονα).

Η περιγραφή της χρήσης των γλωσσών Java και JavaScript (ECMAScript) για την υλοποίηση συμπεριφοράς κόμβων σεναρίου μπορεί να βρεθεί στο στα παραρτήματα του

16

Page 23: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

προτύπου [VRML97 ]. Στο παράρτημα B. Java Platform αναφέρονται οι μέθοδοι που υποστηρίζει η ιεραρχία πακέτων vrml.*. Στο παράρτημα C. ECMAScript αναφέρονται οι αντίστοιχες μέθοδοι για τη γλώσσα JavaScript.

Στο παρόν θα αρκεστούμε να αναφέρουμε πως μέσω του Script κόμβου μπορούμε να δημιουργούμε δυναμικά κόμβους VRML, να αφαιρούμε κόμβους από το γράφο σκηνής, να δημιουργούμε και να καταργούμε ROUTEs για την αποστολή γεγονότων, να κάνουμε διάφορους υπολογισμούς, να έχουμε άμεση πρόσβαση στα exposedFields και στα eventIn/eventOuts άλλων κόμβων και τέλος να κάνουμε οτιδήποτε άλλο είναι δυνατό με μια χρήση μιας γενικής χρήσης γλώσσας προγραμματισμού.

Έτσι με τον κόμβο Script μπορούμε να υλοποιήσουμε μεν συμπεριφορά του εικονικού κόσμου, να πραγματοποιήσουμε δε επικοινωνία αυτού με άλλα πληροφοριακά συστήματα (π.χ. βάσεις δεδομένων με JDBC, άλλες εφαρμογές Java με RMI ή sockets, κ.ο.κ.). Αυτό επιτρέπει την ενσωμάτωση του εικονικού κόσμου σε ένα πιο σύνθετο πληροφοριακό σύστημα. Ένα παράδειγμα χρήσης αυτών των δυνατοτήτων είναι οι εικονικοί κόσμοι με πολλούς χρήστες που συνυπάρχουν.

2.1.11Tο External Authoring Interface

Το External Authoring Interface με το οποίο θα ασχοληθούμε τώρα δεν είναι μέρος του προτύπου VRML97 αλλά υποστηρίζεται από πολλούς browsers της γλώσσας και μας παρέχει πολλές ενδιαφέρουσες δυνατότητες, γι’ αυτό θα αναφερθούμε εν τάχει στη χρήση του. Ο αναγνώστης μπορεί να βρει περισσότερες πληροφορίες για το EAI στο [EAI}.

To External Authoring Interface είναι ένα Application Programming Interface (API) για Java (ιεραρχία κλάσεων vrml.external.*) το οποίο δίνει τη δυνατότητα σε Java applet να αλληλεπιδρούν με εικονικούς κόσμους. Μπορούμε χρησιμοποιώντας το να έχουμε σε ένα έγγραφο HTML (μια σελίδα του Παγκόσμιου Ιστού) ένα applet και έναν εικονικό κόσμο VRML και να επεμβαίνουμε σε αυτόν μέσω του applet.

Το EAI είναι πολύ σημαντικό γιατί μας επιτρέπει να ελέγχουμε εξωτερικά έναν κόσμο VRML. Αν σκεφτούμε πως το applet που ελέγχει τον κόσμο μπορεί να επικοινωνεί με άλλα πληροφοριακά συστήματα, βλέπουμε πως το EAI μπορεί να βοηθήσει στη δημιουργία μεγάλων εφαρμογών, το εικονικό κομμάτι των οποίων είναι ένα από πολλά. Αυτό φυσικά μπορεί να γίνει και μέσω του Script κόμβου που περιγράψαμε προηγουμένως.

17

Page 24: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Οι δημιουργοί του EAI συμβουλεύουν τη χρήση του Script κόμβου για συμπεριφορές που αναφέρονται στα αντικείμενα του κόσμου και μόνο σε αυτά. Για σύνδεση με τον εξωτερικό κόσμο προτείνουν τη χρήση του EAI.

Παράδειγμα μιας εφαρμογής που χρησιμοποιεί το EAI για διασύνδεση εικονικού κόσμου με ένα σύστημα βάσης δεδομένων μπορεί να βρεθεί στο [VRShop]. Η εφαρμογή VR-Shop στην οποία συμμετείχα και ο ίδιος κατά το διάστημα Iανουαρίου – Μαρτίου 1999 αφορούσε τη δημιουργία ενός συστήματος σύνθεσης δωματίου με έπιπλα και ηλεκτρικές συσκευές που παρέχεται σε πιθανούς πελάτες μέσω του Παγκόσμιου Ιστού και οπτικοποιείται με χρήση της VRML. To σύστημα χρησιμοποιούσε ένα Java applet για την εισαγωγή των στοιχείων του δωματίου από το χρήστη. Το applet ενημέρωνε τον εικονικό κόσμο και επικοινωνούσε μέσω μιας εφαρμογής εξυπηρετητή σε Java με μια βάση δεδομένων. Στη ΒΔ αυτή υπήρχαν περιγραφές επίπλων και ηλεκτρικών συσκευών.

2.1.12Πέρα από τη VRML

Η VRML ως γλώσσα έχει τους περιορισμούς της οι οποίοι οφείλονται στη φιλοσοφία σχεδίασης της. Αυτοί οι περιορισμοί δεν μπορούν να θεωρηθούν ως μειονεκτήματα της γλώσσας. Απλά δυσκολεύουν το δημιουργό 3D+T περιεχομένου ο οποίος πρέπει να ασχοληθεί συχνά με το πώς θα κάνει κάτι που επιθυμεί και όχι με το τι θέλει να κάνει.

Η σχεδίαση στατικών εικονικών κόσμων σε VRML είναι εύκολη υπόθεση. Πολλά εμπορικά προγράμματα (λ.χ. 3D Studio) υποστηρίζουν την εξαγωγή τρισδιάστατου περιεχομένου σε VRML. Aυτό το περιεχόμενο ωστόσο δεν είναι το καλύτερο δυνατό και επιπρόσθετα είναι ελάχιστα τροποποιήσιμο παρά με το εργαλείο το οποίο το κατασκεύασε.

Το πρόβλημα της κατασκευής στατικών κόσμων έχει δύο σημαντικές παραμέτρους: την ευκολία της περιγραφής με χωρικές σχέσεις και τη δυνατότητα δυναμικής δημιουργίας στατικών κόσμων.

Το πρόβλημα της δημιουργίας χωρικών σχέσεων είναι σημαντικό από δύο απόψεις. Από τη σκοπιά του δημιουργού είναι βολικό να περιγράφει τις χωρικές σχέσεις των αντικειμένων με διαισθητικά αναγνωρίσιμες σχέσεις (λ.χ «πάνω», «αριστερά», «κοντά»). Αυτό διευκολύνει μέγιστα την εργασία του, μη αναγκάζοντάς τον να κάνει πολλούς και συχνά ανούσιους υπολογισμούς συντεταγμένων και μετασχηματισμών.

Μια άλλη άποψη του ίδιου προβλήματος αφορά την τροποποιησιμότητα της περιγραφής του κόσμου. Όταν υπάρχει μια υψηλού επιπέδου περιγραφή όπως αυτή που

18

Page 25: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

σκοπεύουμε να αναπτύξουμε, τότε οι μεταβολές στα χαμηλού επιπέδου στοιχεία της εφαρμογής δεν επηρεάζουν τη διαδικασία ανάπτυξης. Αν λέμε πως «το βιβλίο είναι πάνω στο τραπέζι», τότε πιθανή αλλαγή του βιβλίου ή του τραπεζιού δε θα αλλάξει τη μορφή της χωρικής μας σχέσης. Αντιθέτως αν η περιγραφή ήταν σε πιο χαμηλό επίπεδο (όπως στη VRML), μια τέτοια αλλαγή θα συνεπάγετο ανάγκη για εκ νέου υπολογισμό συντεταγμένων και χωρικών μετασχηματισμών έτσι ώστε το βιβλίο πράγματι να συνεχίζει να είναι πάνω στο τραπέζι.

Το πρόβλημα της δυναμικής δημιουργίας στατικών κόσμων σχετίζεται επίσης με την ανάγκη υπέρβασης της VRML. Αυτή η ανάγκη προκύπτει συχνά όταν θέλουμε π.χ. να ανακτήσουμε πληροφορία από ένα σύστημα ΒΔ μέσω κάποιας ερωταπόκρισης ή όταν θέλουμε να παρέχουμε προσωποποιημένη εξυπηρέτηση σε ένα χρήστη. Είναι δύσκολο να γίνει αυτό αν δεν υπάρχει μια υψηλού επιπέδου περιγραφή εικονικών κόσμων.

Και στο πεδίο της δυναμικής συμπεριφοράς εφαρμογών η VRML δυσκολεύει κάπως το δημιουργό, ιδιαίτερα αν αυτός δεν είναι προγραμματιστής. Η περιγραφή πολύπλοκης συμπεριφοράς απαιτεί προγραμματισμό σε μια γενικής χρήσης γλώσσα. Είναι επομένως δύσκολο το να καταλάβει κάποιος την αναμενόμενη συμπεριφορά από ένα εικονικό κόσμο που έχει μια τέτοια περιγραφή (παρά μόνο διαβάζοντας τον κώδικα και τα σχόλια του) και ακόμα πιο δύσκολο να την τροποποιήσει.

Υπάρχει η ανάγκη δημιουργίας συμπεριφοράς που είναι κατανοητή από μη προγραμματιστές και τροποποιήσιμη από μη προγραμματιστές. Σκεφτείτε την απαίτηση: «να κινηθεί ένα αντικείμενο δεξιά με ταχύτητα 5 m/sec». Αυτή η απαίτηση πρέπει να μετατραπεί σε ένα σύνολο από ROUTE εντολές καθώς και κόμβους TimeSensor και PositionInterpolator. Όλα αυτά μπορούν να αποφευχθούν αν βρεθεί μια μέθοδος προσδιορισμού συμπεριφοράς με υψηλού-επιπέδου τρόπο.

Το πρόβλημα του προσδιορισμού της υψηλού επιπέδου περιγραφής είναι πως τείνει να εξαρτάται από τη συγκεκριμένη εφαρμογή ή πεδίο εφαρμογών. Αν θέλουμε να περιγράψουμε ένα δωμάτιο τότε θέλουμε σίγουρα να εκφράσουμε σχέσεις όπως «πάνω», «δίπλα» κ.λ.π. Αυτές οι σχέσεις δεν έχουν μεγάλη χρησιμότητα στην περίπτωση μοντελοποίησης λ.χ. ενός σμήνους μελισσών. Η τάση αυτή των υψηλού επιπέδου περιγραφών να εξυπηρετούν συγκεκριμένους τομείς εφαρμογών είναι που δίνει δύναμη στις χαμηλότερου επιπέδου γλώσσες όπως η VRML. Η αναζήτηση όμως ενός συνόλου γενικής χρήσεως υψηλού επιπέδου εκφράσεων συνδυασμένη με την ενσωμάτωση χαμηλού επιπέδου δυνατοτήτων θα δώσουν στο δημιουργό εφαρμογών εικονικής πραγματικότητας την απαιτούμενη ευελιξία.

19

Page 26: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

2.2 To Μέλλον

To μέλλον της εικονικής πραγματικότητας στο Διαδίκτυο προδιαγράφεται λαμπρό. Οι περιορισμοί υπολογιστικής ισχύος και ταχύτητατας πρόσβασης στο δίκτυο αίρονται με μεγάλη ταχύτητα και γίνεται σημαντική πρακτική και θεωρητική εργασία στην περιγραφή και ανάπτυξη τέτοιων συστημάτων.

Θα αναφερθούμε τώρα σε δύο σημαντικούς παράγοντες που θα διαδραματίσουν σημαντικό ρόλο στις εξελίξεις που έρχονται.

Ο πρώτος είναι το Java 3D API της Sun Microsystems. Το Java 3D είναι μια εναλλακτική μέθοδος παροχής χωρο-χρονικού περιεχομένου στον Παγκόσμιο Ιστό. Η λειτουργικότητά του επικαλύπτεται με αυτή της VRML αλλά δεν είναι ανταγωνιστικό αυτής. Συντελείται μάλιστα σημαντική εργασία για τη συνεργασία και συλλειτουργία των δύο.

Η δεύτερη σημαντική εξέλιξη είναι η ανάπτυξη της προδιαγραφής για το πρότυπο eXtensible 3D (X3D) από τα μέλη του Web3D Consortium. To πρότυπο αυτό προορίζεται να διαδεχθεί στο μέλλον τη VRML.

2.2.1Java 3D API

Το Java 3D API έχει σχεδιαστεί από τη Sun Microsystems, Inc. για να βοηθήσει την παρουσίαση αλληλοδραστικού τρισδιάστατου περιεχομένου μέσα από εφαρμογές και applets Java.

Η υλοποίηση του αποτελείται από την ιεραρχία κλάσεων java.media.java3D.* και παρέχει μια πληθώρα κλάσεων για περιγραφή κινούμενου τρισδιάστατου περιεχομένου. Στη φιλοσοφία του Java3D ούτε το περιεχόμενο ούτε η εφαρμογή είναι έτοιμη. Αυτό δίνει στον προγραμματιστή την ευελιξία της δημιουργίας εφαρμογών όπως τις θέλει, και όχι απαραίτητα μόνο με τρισδιάστατο περιεχόμενο. Δεν βολεύει όμως το δημιουργό περιεχομένου ο οποίος θέλει την ύπαρξη ενός τυποποιημένου τρόπου παρουσίασης (π.χ. VRML browser) και επικεντρώνει την προσοχή του στη σχεδίαση και δημιουργία του εικονικού κόσμου.

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

20

Page 27: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Εικονική Πραγματικότητα στο Διαδίκτυο

Συνοψίζοντας λέμε πως το Java3D είναι ισχυρότερο από τη VRML και δίνει τις δυνατότητα τού προγραμματισμού σε μια αντικειμενοστρεφή γλώσσα γενικής χρήσης. Η VRML είναι ευκολότερη στην εκμάθηση και προσανατολισμένη προς το δημιουργό περιεχομένου. Σε κάθε περίπτωση πρέπει να επιλέγεται η προσέγγιση που ταιριάζει. Οι δυο τρόποι πάντως δεν είναι κλειστοί ο ένας στον άλλο. Γίνεται σημαντική δουλειά (δες java3d-vrml λίστα ταχυδρομείου στο http :// www . web 3 d . org / για τη διασύνδεση των δύο συστημάτων.

2.2.2X3D

To Χ3D είναι στο στάδιο του ορισμού από τα μέλη του Web3D Consortium που είναι επίσης υπεύθυνο για την προτυποποίηση της VRML. Πολλές προτάσεις συζητούνται για το πρότυπο αυτό.

Ο στόχος της ύπαρξης του X3D είναι ο καθορισμός συστατικών για εφαρμογές broadcast και τρισδιάστατης παρουσίασης στο Web. H απαίτηση είναι για δυνατότητα καθορισμού τέτοιων συστατικών, διασύνδεση με τη γλώσσα XML, δημιουργία μιας μηχανής εκτέλεσης και μιας τυποποίησης αρχείου για εφαρμογές X3D.

To χρονοδιάγραμμα προβλέπει τον καθορισμό του πυρήνα του προτύπου μέσα στο 1999. Θα υπάρχει συμβατότητα προς τα πίσω με τη VRML. Προβλέπεται αναθεώρηση της VRML για υποστήριξη του X3D και τυποποίηση του νέου προτύπου ISO VRML 2002.

21

Page 28: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

3

3 Μοντέλο Δεδομένων

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

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

Στη συνέχεια θα δούμε πως μπορούμε να συνθέσουμε τα αντικείμενα μας στο χωρο-χρονικό καμβά της εφαρμογής. Αρχικά θα δείξουμε πως μπορούμε να τα τοποθετήσουμε σε χωρικές σχέσεις μεταξύ τους, δημιουργώντας σύνθετα αντικείμενα. Θα ακολουθήσει η παρουσίαση της έννοιας του Συνδέσμου που προσφέρει κάποια πλεονεκτήματα στον καθορισμό τέτοιων σχέσεων.

Ακολούθως θα δούμε πως μπορούμε να ορίσουμε τη συμπεριφορά των αντικειμένων, δηλαδή την κίνηση και τις μεταμορφώσεις που μπορούν να συμβούν σε αυτά κατά τη διάρκεια της εφαρμογής. Η προσέγγιση μας βασίζεται στο Event–Condition - Action (Γεγονός - Συνθήκη - Δράση) μοντέλο που μας επιτρέπει να ορίζουμε

22

Page 29: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

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

3.1 Χώρος

Μια χωρο-χρονική εφαρμογή περιλαμβάνει Ευκλείδιο χώρο τριών διαστάσεων. Στο χώρο αυτό ορίζεται ένα δεξιόστροφο σύστημα συντεταγμένων Οxyz. Αυτό το σύστημα συντεταγμένων ονομάζεται Παγκόσμιο Χωρικό Σύστημα Συντεταγμένων (ΠΧωΣΣ) της εφαρμογής. Κάθε σημείο του χώρου Α, ορίζεται μονοσήμαντα από τη θέση του στο

ΠΧωΣΣ, δηλαδή από τις συντεταγμένες του ),,( AAA zyx που δίνουν το μέτρο της

προβολής, σε μέτρα, του διανύσματος OA στους άξονες zyx OOO ,, του ΠΧωΣΣ. Γενικά ο

χώρος της εφαρμογής είναι S⊆ 3ℜ . Αν δεχτούμε πως δεν υπάρχει κανένας περιορισμός για το χώρο της εφαρμογής (δηλαδή αυτός καλύπτει το σύνολο των σημείων του

τρισδιάστατου χώρου) τότε S≡ 3ℜ .Στην πράξη βέβαια ο χώρος της εφαρμογής δεν είναι συνεχής αλλά διακριτός και

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

Στο σχήμα βλέπουμε ένα δεξιόστροφο σύστημα συντεταγμένων. Ο y-άξονας έχει κατεύθυνση προς τα πάνω, ο z-άξονας προς το θεατή και ο x-άξονας προς τα δεξιά.

23

Page 30: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.2 Χρόνος

Μια χωρο-χρονική εφαρμογή περιλαμβάνει επίσης απόλυτο χρόνο. Ο χρόνος αυτός μετράται μέσω ενός Παγκόσμιου Χρονομέτρου (ΠΧρ). Κάθε χρονικό συμβάν ΧΣ

καθορίζεται μονοσήμαντα από έναν αριθμό ΧΣt ο οποίος εκφράζει το χρονικό διάστημα που έχει παρέλθει από τη χρονική στιγμή έναρξης της εφαρμογής και είναι ανεξάρτητος

αυτής της χρονικής στιγμής. Έτσι αν UTCt0 είναι ο χρόνος έναρξης της εφαρμογής2

(χρονικό συμβάν 0T ) και UTCtΧΣ είναι ο χρόνος του συμβάντος, τότε ισχύει η σχέση: UTCUTC ttt 0−= ΧΣΧΣ

To τελευταίo χρονικό συμβάν της εφαρμογής είναι το τέρμα της εφαρμογής το οποίο

συμβαίνει τη χρονική στιγμή ft . Ισχύει λοιπόν για κάθε χρονικό συμβάν ΧΣ της

εφαρμογής η εξής σχέση:

fttt ≤≤≡ ΧΣ00

Σημειώνεται πως η χρονική στιγμή ft δεν είναι σταθερή για μια συγκεκριμένη

εφαρμογή, εφόσον η περάτωση της εφαρμογής μπορεί να εξαρτάται γενικά από εξωγενείς παράγοντες, όπως ο χρήστης-άνθρωπος. Πάντως ο χρόνος T της εφαρμογής

μπορεί να οριστεί ως Τ=[0, ft ].

Σημειώνεται πως και ο χρόνος της εφαρμογής δεν είναι στην πράξη συνεχής αλλά διακριτός. Στο επίπεδο της περιγραφής περιορίζεται από τον τύπο κινητής υποδιαστολής που χρησιμοποιούμε για να δηλώσουμε χρονικά διαστήματα καθώς και από τις επιλογές μας για τη συχνότητα με την οποία θέλουμε να συμβαίνουν οι διάφορες χρονικές αλλαγές. Στο επίπεδο της παρουσίασης (π.χ. του VRML browser) υπάρχει ένα όριο της μικρότερης δυνατής χρονικής απόστασης που είναι δυνατό να υποστηριχθεί. Στην ορολογία της VRML αυτό είναι το «τικ» του browser.

Σημείωση

Ο χώρος και ο χρόνος μιας εφαρμογής μπορούν να ενοποιηθούν αν ενοποιήσουμε το ΠΧωΣΣ με το ΠΧρ σε ένα ενιαίο χωρο-χρονικό σύστημα συντεταγμένων. Ένα συμβάν της εφαρμογής ορίζεται πλήρως από τη θέση του στο ΠΧωΣΣ και το χρονικό συμβάν που του αντιστοιχεί από το ΠΧρ. Έτσι ένα συμβάν Σ μπορεί να οριστεί ως η διατεταγμένη τετράδα (xΣ,yΣ,zΣ,tΣ). Το χωρο-

2 Ο συμβολισμός UTCt δηλώνει τον Universal Time Coordinated ή Greenwich Mean Time.σε sec.

24

Page 31: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

χρονικό σύστημα συντεταγμένων που προκύπτει μ’αυτό τον τρόπο λέγεται Παγκόσμιο Χωρο-Χρονικό Σύστημα Συντεταγμένων (ΠΧΧΣΣ) της εφαρμογής ή Θxyzt. O χωρο-χρόνος SpT της εφαρμογής ορίζεται λοιπόν ως S×T, όπου S ο χώρος και Τ ο χρόνος της εφαρμογής. Το συμβάν Θ λέγεται συμβάν αρχής της χωρο-χρονικής εφαρμογής.

3.3 Απλά αντικείμενα

Ένα απλό αντικείμενο είναι μια αυτοτελής οντότητα στα πλαίσια της εφαρμογής. καλύπτει συγκεκριμένο χώρο, υπάρχει σε συγκεκριμένο χρόνο, μετασχηματίζεται, μετακινείται και περιστρέφεται.

Ένα απλό αντικείμενο Α (εξαιρουμένης της εμφάνισης) μπορεί να νοηθεί πλήρως ως ένα σύνολο συμβάντων, υποσύνολο του χωρο-χρόνου SpT της εφαρμογής. Δηλαδή ισχύει η σχέση A⊆SpT

Σε κάθε χρονική στιγμή t∈T της εφαρμογής για ένα αντικείμενο Α έχουμε ένα

στιγμιότυπο του tA ⊆S. H ακολουθία tA του αντικειμένου μας δίνει τη χρονική εξέλιξη

του αντικειμένου.Η ζωή AL του αντικειμένου ορίζεται ως το σύνολο των χρονικών στιγμών στις

οποίες το αντικείμενο υπάρχει. Επομένως ισχύει AL ⊆T. Το σύνολο των χρονικών στιγμών στις οποίες το αντικείμενο εμφανίζεται στο χώρο της εφαρμογής (Ενεργός ζωή)

είναι το AA LAL ⊆ . Το αντικείμενο γενικά γεννιέται τη χρονική στιγμή At0 , και

καταστρέφεται τη χρονική στιγμή Aft . Επομένως AL =[ At0 , A

ft ]. Μπορεί στα πλαίσια της

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

η ενεργός ζωής του είναι AAL =n

i

Ai

dAi tt

0

],[=

, όπου Ait είναι ο i–χρόνος ενεργοποίησης και

Ai

d t ο i–χρόνος απενεργοποίησης του αντικειμένου Α.

Κάθε απλό αντικείμενο έχει τις εξής ιδιότητες:

3.3.1Γεωμετρία απλού αντικειμένου

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

25

Page 32: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Δηλαδή δεν μπορεί ένας κύβος να αλλάξει γεωμετρία και να γίνει σφαίρα. Αν σε κάποια συγκεκριμένη στιγμή θέλουμε να αντικαταστήσουμε ένα κύβο με μια σφαίρα, πρέπει να εξαφανίσουμε τον κύβο και να δημιουργήσουμε ένα καινούριο αντικείμενο τύπου σφαίρας.

3.3.2Διαστάσεις απλού αντικειμένου

Δηλώνει το μέγεθος του αντικειμένου στο χώρο. Ο συνδυασμός γεωμετρίας και διαστάσεων δίνει μια πλήρη περιγραφή του αντικειμένου. Οι διαστάσεις του αντικειμένου μεταβάλλονται κατά τη ζωή του μέσω μετασχηματισμών αναμεγέθυνσης (resize). Οι διαστάσεις του αντικειμένου γενικά είναι μια διατεταγμένη n–άδα, δηλαδή

Για το αντικείμενο Α γεωμετρίας G, τη χρονική στιγμή t οι διαστάσεις του είναι:nG

nA

t DdddD +ℜ⊆∈= ),...,,( 21

Ο χώρος GD είναι ο χώρος των διαστάσεων αντικειμένων γεωμετρίας G και

διαφέρει από το χώρο n+ℜ εφόσον υπάρχουν περιορισμοί για τις διαστάσεις τέτοιων

αντικειμένων. Με βάση τους περιορισμούς για κάθε μία εκ των διαστάσεων θα είναι Gn

GGG DDDD ×××= 21 , όπου GiD είναι το σύνολο των επιτρεπτών τιμών για τη

διάσταση – i

3.3.3Εμφάνιση απλού αντικειμένου

Περιλαμβάνει μη-απλά χαρακτηριστικά του αντικειμένου όπως χρώμα, υφή επιφάνειας κοκ. Στα πλαίσια του παρόντος δε θα ασχοληθούμε ιδιαίτερα με εμφάνιση. Θα αρκεστούμε στο να καθορίσουμε δύο διαφορετικούς τύπους εμφάνισης: είτε μέσω ενός ομοιόμορφου χρώματος (συνιστώσες RGB) είτε μέσω ενός αρχείου εικόνας (JPEG ή GIF) που καθορίζει την υφή που έχει η επιφάνεια του αντικειμένου (λ.χ. ξύλο ή μέταλλο).

3.3.4Αντικειμενο-κεντρικό σύστημα συντεταγμένων

Για κάθε απλό αντικείμενο ορίζεται ένα Αντικειμενο-κεντρικό χωρο-χρονικό σύστημα συντεταγμένων (ΑΚΣΣ) το οποίο είναι το αντίστοιχο του ΠΧΧΣΣ στο επίπεδο

26

Page 33: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

του απλού αντικειμένου. Συμβολίζουμε αυτό το σύστημα για το αντικείμενο Α με AxyztO .

Ο χρόνος του αντικειμένου ορίζεται αντιστοίχως λαμβάνοντας ως αρχή το χρόνο δημιουργίας του αντικειμένου.

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

Mπορούμε να ορίσουμε μια γεωμετρία απλού αντικειμένου ως εξής.

Ορισμός 1:Γεωμετρία Απλού Αντικειμένου

Έστω απλό αντικείμενο Α με αντικειμενο-κεντρικό χωρικό σύστημα

συντεταγμένων AxyzO . Έστω και συνάρτηση G: 3ℜ × GD →{0,1}. Λέμε πως το

αντικείμενο Α είναι της γεωμετρίας που ορίζεται από τη G, αν και μόνο αν, ∀

σημείο P με συντεταγμένες (x,y,z) στο AxyzO , ισχύει η ακόλουθη σχέση:

∉∈

=∈∀ Pαν0, Pαν1,

),...,,,,,(: 21t

tnA A

AdddzyxGALt

Παράδειγμα: Γεωμετρία «Σφαίρα»

Η γεωμετρία «Σφαίρα» μπορεί να οριστεί από τη συνάρτηση

Sphere: 3ℜ ×ℜ →{0,1}: Sphere(x,y,z,r)=

>++≤++

2222

2222

0, 1,

rzyxrzyx

Παράδειγμα: Γεωμετρία «Κύβος»

Η γεωμετρία «Κουτί» μπορεί να οριστεί από τη συνάρτηση

Box: 3ℜ ×ℜ →{0,1}: Box(x,y,z,a,b,c)=

>>>≤≤≤

c/2|z|b/2,|y|a/2,|x| 0,c/2|z|b/2,|y|a/2,|x| 1,

27

Page 34: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.4 Απλές σχέσεις ανάμεσα σε χωρο-χρονικά συστήματα συντεταγμένων

Δύο χωρο-χρονικά συστήματα συντεταγμένων μπορούν να συνδέονται μεταξύ τους με μια απλή χωρο-χρονική σχέση (Απλός Μετασχηματισμός). Η σχέση αυτή αποτελείται από ένα χωρικό και ένα χρονικό μέρος. Το χωρικό μέρος μπορεί με τη σειρά του να χωριστεί σε μια απλή μετατόπιση, περιστροφή και αλλαγή κλίμακας. Ονομάζουμε μια τέτοια απλή σχέση απλό μετασχηματισμό. Θα δείξουμε τη μορφή ενός απλού

μετασχηματισμού για δύο χωρο-χρονικά συστήματα συντεταγμένων xyztΘ και ''''' tzyxΘ .

Δείχνοντας τη σχέση ανάμεσα στις συντεταγμένες ενός συμβάντος ( ) TtzyxX =

και ( ) TtzyxX '''''= στα δύο συστήματα συντεταγμένων.

3.4.1Χρονικό μέρος Απλού Μετασχηματισμού

To χρονικό μέρος ενός απλού μετασχηματισμού μας δίνει την προτεραιότητα ανάμεσα σε δύο συστήματα χωρο-χρονικών συντεταγμένων (δηλαδή ποιο προηγείται) καθώς και το μέτρο τις χρονικής τους απόστασης (δηλαδή πόσο απέχουν χρονικά). Ο απλός χρονικός μετασχηματισμός του συστήματος Θ’ σε σχέση με το σύστημα Θ δίνεται από την ακόλουθη σχέση:

Ορισμός 2:Xρονικό Μέρος Απλού Μετασχηματισμού

=

=

ΘΘ

ΘΘ

ttt

T t

'000

000

'

'

δ

tTXX ΘΘ+= ''

1. Aν ΘΘ 'tδ <0 ( tt <' ) τότε το Θ’ έπεται χρονικά του Θ

2. Aν ΘΘ 'tδ >0 ( 'tt < ) τότε το Θ’ προηγείται χρονικά του Θ

28

Page 35: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3. Aν ΘΘ 'tδ = 0 ( tt =' ) τότε το Θ’ ταυτίζεται χρονικά με το Θ

Σημειώνεται πως στα πλαίσια των εφαρμογών που θα μας απασχολήσουν θα ασχοληθούμε κυρίως με σχέσεις τύπου 1,3, δηλαδή με χρονικές αλληλουχίες συστημάτων τα οποία εκφράζουν την χρονική εξέλιξη της εφαρμογής. Επομένως ένας

χρονικός μετασχηματισμός ορίζεται πλήρες από την παράμετρο ΘΘ− 'tδ η οποία μας δίνει

μετά πόσο χρόνο από το Θ συμβαίνει το Θ’.Ο αντίστροφος χρονικός μετασχηματισμός ορίζεται ως:

=−= ΘΘΘΘ

'000

''

tt

TinvT Tt

tinvTXX ΘΘ+= ''

3.4.2Χωρικό μέρος Απλού Μετασχηματισμού

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

3.4.2.1 Απλή Mετατόπιση

Μια απλή μετατόπιση αντιστοιχεί στην μετατόπιση του κέντρου ενός συστήματος συντεταγμένων σε σχέση με κάποιο άλλο χωρίς να αλλάξει ο προσανατολισμός των αξόνων ή τα μέτρα των μοναδιαίων διανυσμάτων στο νέο σύστημα. Μια απλή μετατόπιση του συστήματος Θ’ ως προς το σύστημα Θ ορίζεται ως εξής:

Ορισμός 3:Απλή Μετατόπιση

29

Page 36: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

−−−

=

=ΘΘ

0'''

0

' zzyyxx

zyx

T p

δδδ

pTXX ΘΘ+= ''

Η αντίστροφη μετατόπιση ορίζεται ως εξής:

−−−

=−= ΘΘΘΘ

0'''

'' zzyyxx

TinvT pp

pinvTXX ΘΘ+= ''

3.4.2.2 Aπλή Περιστροφή

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

απαιτούνται οι τιμές των 3 γωνιών περιστροφής ),,( zyx θθθ . O δεύτερος τρόπος είναι

μέσω του καθορισμού ενός άξονα Α με το μοναδιαίο διάνυσμα ),,( AAA zyx κατά τη διεύθυνση του άξονα, και μιας γωνίας που μας δίνει το μέτρο θ της δεξιόστροφης περιστροφής περί αυτόν τον άξονα.

Ορισμός 4:Aπλή Περιστροφή

30

Page 37: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

+−+++−−++

=ΘΘ

1000000

2

2

2

' czsxzysyzxsxzycyszyxsyzxszyxcx

TAAAAAAA

AAAAAAA

AAAAAAA

r

ττττττ

ττ

XTX rΘΘ= ''

όπου c = cos(θ), s = sin(θ), τ = 1-cos(θ)

3.4.2.3 Απλή Αλλαγή Κλίμακας

Μια απλή αλλαγή κλίμακας αντιστοιχεί στη μεταβολή του μέτρου των μοναδιαίων διανυσμάτων δίχως να αλλάξει το κέντρο του συστήματος ή ο προσανατολισμός των αξόνων. Μια απλή αλλαγή κλίμακας του συστήματος Θ’ ως προς το σύστημα Θ ορίζεται ως εξής:

Ορισμός 5:Aπλή Αλλαγή Κλίμακας

=ΘΘ

1000000000000

'z

y

x

sc

aa

a

T

XTX scΘΘ= ''

Ο αντίστροφος μετασχηματισμός αλλαγής κλίμακας ορίζεται ως εξής:

31

Page 38: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

=ΘΘ

10000/10000/10000/1

'z

y

x

sc

aa

a

invT

'' XinvTX scΘΘ=

3.4.3Συνολική Μορφή Απλού Μετασχηματισμού

Με βάση τα παραπάνω, μπορούμε να ορίσουμε τη συνολική μορφή του Απλού

Μετασχηματισμού ανάμεσα σε δύο χωρο-χρονικά συστήματα συντεταγμένων xyztΘ και

''''' tzyxΘ . Σημειώνεται πως η σειρά των μετασχηματισμών δεν είναι αντιστρέψιμη.

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

Όπως βλέπουμε και στον παρακάτω ορισμό, ο Απλός Μετασχηματισμός όπως των ορίζουμε, αποτελείται από εφαρμογή μιας μετατόπισης (χωρο-χρονική μετατόπιση), μιας περιστροφής και μιας αλλαγής κλίμακας.

Ορισμός 6: Συνολική Μορφή Απλού Μετασχηματισμού

++++

+−+++−−++

=

ttzzyyxx

czsxzysyzxsxzycyszyxsyzxszyxcx

atzyx

AAAAAAA

AAAAAAA

AAAAAAA

z

y

x

δδδδ

ττττττ

ττα

α

1000000

1000000000000

''''

2

2

2

ή σε συνοπτική μορφή

)(' tprsc TTXTTX ++=

Ο αντίστροφος μετασχηματισμός δίνεται από τη σχέση:

32

Page 39: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

tpscr invTinvTXinvTinvTX ΘΘΘΘΘΘΘΘ ++= '''' '

3.5 Η έννοια του Συνδέσμου

Εισάγουμε την έννοια του Συνδέσμου για να αντιμετωπίσουμε κάποιες αδυναμίες που προκύπτουν από την περιγραφή των χωρικών σχέσεων ανάμεσα σε αντικείμενα με Απλούς Μετασχηματισμούς. Ο Σύνδεσμος είναι κι αυτός ένα είδος Μετασχηματισμού, το οποίο μας επιτρέπει να χρησιμοποιήσουμε τη γεωμετρία του αντικειμένου στο οποίο ορίζεται και να ορίσουμε σχέσεις σε ένα ανώτερο νοηματικά επίπεδο από αυτό του Απλού Μετασχηματισμού.

3.5.1Μειονεκτήματα της περιγραφής χωρικών σχέσεων με απλούς μετασχηματισμούς

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

Δε λαμβάνει καθόλου υπ’όψη το είδος των αντικειμένων που σχετίζονται μέσω του μετασχηματισμού. Το μόνο μέρος ενός αντικειμένου που υπεισέρχεται είναι το αντικειμενο-κεντρικό του σύστημα (δηλαδή το κέντρο του αντικειμένου και ο προσανατολισμός των αξόνων στο χώρο).

Δε χρησιμοποιεί τα χαρακτηριστικά των αντικειμένων που σχετίζονται (όπως σημεία ακμές, επιφάνειες κοκ.) Δηλαδή δεν μπορούμε να εκφράσουμε σχέσεις ανάμεσα σε τέτοια χαρακτηριστικά (λ.χ. πως δύο κύβοι εφάπτονται κατά μήκος μιας ακμής τους).

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

Δεν εκφράζει σχέσεις τοπολογίας (λ.χ. ο κύβος Α είναι μέσα στη σφαίρα Β) ή κατεύθυνσης (ο κύβος Α είναι πάνω στη σφαίρα Β). Η τοπολογία και η κατεύθυνση

33

Page 40: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

μπορεί να εξαχθεί από τον Απλό Μετασχηματισμό υπολογιστικά, δηλαδή υλοποιώντας κάποιες συναρτήσεις που θα εξάγουν υψηλότερου επιπέδου γνώση (δηλαδή τοπολογία ή κατεύθυνση) από τα χαμηλού επιπέδου δεδομένα (Απλός Μετασχηματισμός).

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

3.5.2Τι είναι ο Σύνδεσμος

Η κεντρική ιδέα της προσέγγισης μας είναι ο Σύνδεσμος. Ο Σύνδεσμος είναι ένα χαρακτηριστικό ενός απλού αντικειμένου και δε νοείται δίχως το αντικείμενο. Μπορούμε ωστόσο να ορίσουμε ένα σύνδεσμο ενός ιδεατού αντικειμένου (το οποίο δηλαδή δεν υπάρχει ως πραγματική οντότητα στην εφαρμογή). Αυτό θα μας επιτρέψει π.χ. να ορίσουμε μια σφαιρική συμμετρία, δίχως να δημιουργήσουμε μια πραγματική σφαίρα.

Ο Σύνδεσμος ονομάζεται έτσι, γιατί επιτρέπει τη σύνδεση αντικειμένων μεταξύ τους για τη δημιουργία χωρικών σχέσεων. Ένας σύνδεσμος αντιστοιχεί πάντοτε σε ένα γεωμετρικό χαρακτηριστικό ενός αντικειμένου, ή αν θέλουμε, σε ένα χαρακτηριστικό το οποίο έχει κάποια ειδική σημασία (αν και δεν αντιστοιχεί σε κάποιο συγκεκριμένο γεωμετρικό χαρακτηριστικό).

Ένας Σύνδεσμος αντιστοιχεί επίσης σε έναν Απλό Μετασχηματισμό. Όμως αυτός ο μετασχηματισμός δεν προκύπτει μέσω της πλήρης περιγραφής του (πίνακες Τ) αλλά μέσω λιγότερων αλλά σημασιολογικά πλουσιότερων παραμέτρων.

Ορισμός 7:Συνδέσμος

Ένας σύνδεσμος αντικειμένου Α γεωμετρίας G και διαστάσεων D ορίζεται ως η τριάδα (Κατεύθυνση συνδέσμου,Είδος συνδέσμου,Παράμετροι) που ορίζει πλήρως έναν Απλό Μετασχηματισμό από ή προς (Κατεύθυνση συνδέσμου) το Αντικειμενο-κεντρικό σύστημα συντεταγμένων του αντικειμένου, προς ή από ένα σύστημα συντεταγμένων (Είδος συνδέσμου,Παράμετροι). Το σύστημα αυτό ονομάζεται και Σύστημα Συντεταγμένων Συνδέσμου (Σ 3 )

34

Page 41: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Παράδειγμα Συνδέσμου

Έστω ένα αντικείμενο Α με γεωμετρία «Κουτί» και διαστάσεις (a,b,c). Ορίζουμε ένα σύνδεσμο (FROM,TopOut,_). Αυτός ο σύνδεσμος, αντιστοχεί σε μια μετατόπιση της μορφής y’=y-b/2 (μετατόπιση προς την άνω επιφάνεια του κουτιού). Αντίστοιχα ο σύνδεσμος (TO, TopOut, _) αντιστοιχεί σε μια μετατόπιση της μορφής y’=y+b/2 (μετατόπιση από την άνω επιφάνεια του κουτιού).

Παρατήρηση

Εδώ πρέπει να κάνουμε την παρατήρηση, που θα μας φανεί χρήσιμη στη συνέχεια, πως αν έχουμε το σύνδεσμο J με αντίστοιχο Απλό Μετασχηματισμό ST, τότε ο σύνδεσμος που παράγεται από τον J με αλλαγή της Κατεύθυνσης Συνδέσμου (FROM→TO ή TO→FROM) έχει ως αντίστοιχο Απλό Μετασχηματισμό τον invST. Ο Σύνδεσμος αυτός συμβολίζεται invJ και ορίζεται όπως είπαμε:

inv(Direction, Type, Parameters) =

==

FROMDirectionParametersTypeTOTODirectionParametersTypeFROM

αναν

),,(),,(

3.5.3Είδη συνδέσμων – Απλοί Σύνδεσμοι

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

Ένας απλός σύνδεσμος αναφέρεται σε μία επιφάνεια του αντικειμένου. Για τον απλό

σύνδεσμο J, η επιφάνεια αυτή συμβολίζεται JS .

• Το κέντρο του Σ 3 είναι το κέντρο της επιφάνειας. Για μη κανονικές επιφάνειες, το κέντρο προσδιορίζεται αυθαίρετα.

• Ο y-άξονας του Σ 3 έχει την κατεύθυνση του καθέτου διανύσματος στην επιφάνεια. Για κάθε επιφάνεια, καθορίζονται δύο σύνδεσμοι (In/Out), ανάλογα με τον προσανατολισμό του καθέτου διανύσματος προς το εσωτερικό ή εξωτερικό του αντικειμένου. Ο άξονας αυτός ονομάζεται και κάθετος άξονας του απλού συνδέσμου.

35

Page 42: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Μεταβαίνουμε από το σύστημα συντεταγμένων In στο σύστημα συντεταγμένων Out με μια περιστροφή 180° περί ενός εκ των άλλων δύο αξόνων.

• Οι άλλοι δύο άξονες του Σ 3 βρίσκονται στο εφαπτομενικό επίπεδο της επιφάνειας JS . Ο ακριβής προσανατολισμός των αξόνων αυτών καθορίζεται με βάση κάποια

σύμβαση. Πρέπει ωστόσο το σύστημα συντεταγμένων που ορίζεται να είναι δεξιόστροφο.

Ένας σύνθετος σύνδεσμος αναφέρεται σε ένα οποιοδήποτε χαρακτηριστικό της επιφάνειας του αντικειμένου (Επιφάνεια, γραμμή, σημείο). Ο καθορισμός του Σ 3 ενός συνθέτου συνδέσμου γίνεται με τη βοήθεια των λέξεων κλειδιών που καθορίζουν τους απλούς συνδέσμους, όπως θα δούμε παρακάτω.

3.5.3.1 Απλοί Σύνδεσμοι της Σφαίρας

Στη σφαίρα ορίζονται δύο είδη απλών συνδέσμων πάνω στην επιφάνεια της. Οι σύνδεσμοι αυτοί μαζί με τις παραμέτρους τους είναι οι:

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςFROM

SurfaceOut(θ,φ)

translation (Rcosθcosφ, Rsinφ, Rsinθcosφ)rotation (0, 1, 0, θ)

rotation (0, 0, 1, φ-2π

)

SurfaceIn(θ,φ)

translation (Rcosθcosφ, Rsinφ, Rsinθcosφ)rotation (0, 1, 0, θ)

rotation (0, 0, 1, φ+2π

)

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςΤΟ

SurfaceOut(θ,φ)

translation (0, -R, 0)

rotation (0, 0, 1, 2π

-φ)

rotation (0, 1, 0, -θ)SurfaceIn(θ,φ)

translation (0, R, 0)

rotation (0, 0, 1, -φ-2π

)

rotation (0, 1, 0, -θ)

36

Page 43: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Στο επόμενο σχήμα βλέπουμε τους συνδέσμους SurfaceOut (0,0), SurfaceOut (-90°, 45°) στην αριστερή σφαίρα, και τους αντίστοιχος συνδέσμους SurfaceΙn στη δεξιά σφαίρα. Oι άξονες του ΣΣ είναι σημαδεμένοι (κόκκινο, πράσινο, μπλε: x, y, z). Βλέπουμε πως ο πράσινος (y) άξονας έχει την ακτινική κατεύθυνση προς τα έξω της επιφάνειας για τους συνδέσμους τύπου Out ενώ δε φαίνεται για τους συνδέσμους τύπου In, διότι έχει την κατεύθυνση προς το εσωτερικό της σφαίρας..

3.5.3.2 Απλοί Σύνδεσμοι του Κυλίνδρου

Στον κύλινδρο ορίζονται έξι είδη απλών συνδέσμων. Δύο στην άνω επιφάνεια, δύο στην κάτω επιφάνεια και δύο στην παράπλευρη επιφάνεια του κυλίνδρου. Οι σύνδεσμοι αυτοί είναι:

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςFROM

TopOuttranslation (0,

2h

,0 )

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, π) SideOut(θ)

translation (rcosθ, 0, rsinθ)rotation (0, 1, 0, θ)

rotation (0, 0, 1, -2π

)

TopIntranslation (0,

2h

, 0)

37

Page 44: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

rotation (0, 0, 1, π)BottomIn

translation (0, -2h

, 0)

SideIn(θ)

translation (rcosθ, 0, rsinθ)rotation (0, 1, 0, θ)

rotation (0, 0, 1, 2π

)

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςTO

TopOuttranslation (0, -

2h

, 0)

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, π) SideOut(θ)

translation (0, -r, 0)

rotation (0, 0, 1, 2π

)

rotation (0, 1, 0, -θ)TopIn

translation (0, 2h

, 0)

rotation (0, 0, 1, π)BottomIn

translation (0, 2h

, 0)

SideIn(θ)

translation (0, r, 0)

rotation (0, 0, 1, -2π

)

rotation (0, 1, 0, -θ)

Στο επόμενο σχήμα βλέπουμε στον αριστερό κύλινδρο τους συνδέσμους TopOut, SideOut(0), SideOut(-90°) και στο δεξί κύλινδρο τους συνδέσμους TopIn, SideIn(0), SideIn(-90°).

38

Page 45: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.5.3.3 Απλοί Σύνδεσμοι του Κώνου

Στον κώνο ορίζονται έξι είδη απλών συνδέσμων. Δύο στην κορυφή, δύο στην κάτω επιφάνεια και δύο στην παράπλευρη επιφάνεια του κυλίνδρου. Οι σύνδεσμοι αυτοί είναι:

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςFROM

TopOuttranslation (0,

2h

,0 )

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, π) SideOut(θ) translation (

2cosθr

, 0, 2

cosθr)

rotation (0, 1, 0, θ)

rotation (0, 0, 1, -2π

hrarctan+ )

TopIntranslation (0,

2h

, 0)

rotation (0, 0, 1, π)

39

Page 46: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

BottomIntranslation (0, -

2h

, 0)

SideIn(θ) translation (

2cosθr

, 0, 2

cosθr)

rotation (0, 1, 0, θ)

rotation (0, 0, 1, 2π

hrarctan+ )

Είδος / Παράμετροι Αντίστοιχος ΜετασχηματισμόςTO

TopOuttranslation (0, -

2h

, 0)

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, π) SideOut(θ) translation (

22

2

2 hrr

+−

222 hrrh

+− , 0)

rotation (0, 0, 1, 2π

hrarctan− )

rotation (0, 1, 0, -θ)TopIn

translation (0, 2h

, 0)

rotation (0, 0, 1, π)BottomIn

translation (0, 2h

, 0)

SideIn(θ) translation (

22

2

2 hrr

+ 222 hrrh

+, 0)

rotation (0, 0, 1, –2π

hrarctan− )

rotation (0, 1, 0, -θ)

Στο επόμενο σχήμα βλέπουμε στον αριστερό κώνο τους συνδέσμους TopOut, SideOut(0), SideOut(-90°) και στο δεξί κώνο τους συνδέσμους TopIn, SideIn(0), SideIn(-90°).

40

Page 47: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.5.3.4 Απλοί Σύνδεσμοι του Κουτιού

Στο κουτί ορίζονται 12 είδη απλών συνδέσμων, από δύο για κάθε επιφάνεια του.

Eίδος / Παράμετροι Αντίστοιχος Μετασχηματισμός FROMTopOut

translation (0, 2h

, 0)

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, π )LeftOut

translation (-2w

, 0, 0)

41

Page 48: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

rotation (0, 0, 1, 2π

)

RightOuttranslation (

2w

, 0, 0)

rotation (0, 0, 1, -2π

)

FrontOuttranslation (0, 0,

2d

)

rotation (1, 0, 0, 2π

)

BackOuttranslation (0, 0, -

2d

)

rotation (1, 0, 0, -2π

)

TopIntranslation (0, 0,

2h

)

rotation (0, 0, 1, π)BottomIn

translation (0, 0, -2h

)

LeftIntranslation (-

2w

, 0, 0)

rotation (0, 0, 1, -2π

)

RightIntranslation (

2w

, 0, 0)

rotation (0, 0, 1, 2π

)

FrontIntranslation (0, 0,

2d

)

rotation (1, 0, 0, 2π

)

BackIntranslation (0, 0, -

2d

)

rotation (1, 0, 0, -2π

)

Eίδος / Παράμετροι Αντίστοιχος Μετασχηματισμός TO

42

Page 49: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

TopOuttranslation (0, -

2h

, 0)

BottomOuttranslation (0, -

2h

, 0)

rotation (0, 0, 1, -π )LeftOut

translation (0, -2w

, 0)

rotation (0, 0, 1, -2π

)

RightOuttranslation (0, -

2w

, 0)

rotation (0, 0, 1, 2π

)

FrontOuttranslation (0, -

2d

, 0)

rotation (1, 0, 0, -2π

)

BackOuttranslation (0, -

2d

, 0)

rotation (1, 0, 0, 2π

)

TopIntranslation (0,

2h

, 0)

rotation (0, 0, 1, -π)BottomIn

translation (0, 2h

, 0)

LeftIntranslation (0,

2w

, 0)

rotation (0, 0, 1, 2π

)

RightIntranslation (0,

2w

, 0)

rotation (0, 0, 1, -2π

)

FrontIntranslation (0,

2d

, 0)

rotation (1, 0, 0, -2π

)

BackIntranslation (0,

2d

, 0)

43

Page 50: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

rotation (1, 0, 0, 2π

)

Στα δύο σχήματα που ακολουθούν βλέπουμε τους συνδέσμους Out και In πάνω σε ένα κουτί. Καθώς βλέπουμε το κουτί από το xy-επίπεδο, μπορούμε να διακρίνουμε μόνο τους συνδέσμους Front, Top, Bottom, Left, Right.

3.5.4Σύνθετοι Σύνδεσμοι

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

Ορισμός 8:Σύνθετος Σύνδεσμος

Έστω οι απλοί σύνδεσμοι

44

Page 51: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

xJ =(Kατεύθυνση Συνδέσμου, Χ-Είδος, Παράμετροι Χ-Είδους)

yJ =(Kατεύθυνση Συνδέσμου, Υ-Είδος, Παράμετροι Υ-Είδους)

zJ =(Kατεύθυνση Συνδέσμου, Ζ-Είδος, Παράμετροι Ζ-Είδους)

Ο σύνθετος σύνδεμος J ),,( zyxcomp JJJ= ορίζεται ως εξής:

Αναφέρεται στην επιφάνεια zyxcomp JJJJ SSSS ∩∩= και το κέντρο του Σ 3 είναι

επομένως το κέντρο της compJS .

Οι x,y,z-άξονες του Σ 3 έχουν την κατεύθυνση των καθέτων αξόνων των

συνδέσμων xJ , yJ , zJ αντιστοίχως, αν αυτοί οι άξονες είναι κάθετοι μεταξύ

τους και σχηματίζουν δεξιόστροφο σύστημα. Αλλιώς ο y-άξονας έχει την

κατεύθυνση του καθέτου άξονα του J y και η κατεύθυνση των λοιπών

προσδιορίζεται αυθαίρετα.

Θα αναφέρουμε ένα παράδειγμα συνθέτου συνδέσμου. Ο σύνθετος σύνδεσμος μας βοηθάει στον καθορισμό συνδέσμων στις ακμές και κορυφές ενός κουτιού. Οι σύνδεσμοι TopOut, FrontOut, RightOut του του κουτιού έχουν κάθετους άξονες στη διεύθυνση των y, z, x αξόνων του ΑΚΣΣ του κουτιού. Επομένως είναι κάθετοι μεταξύ τους.

Ορίζουμε το σύνθετο σύνδεσμο (RightOut, TopOut, FrontOut) o οποίος έχει την ίδια κατεύθυνση αξόνων με το ΑΚΣΣ του κουτιού και κέντρο την τομή των επιφανειών Right, Top, Front δηλαδή την πάνω, εμπρός δεξιά κορυφή του κουτιού. Ο σύνδεσμος (TopIn, RightOut, FrontOut) έχει το ίδιο κέντρο αλλά ο προσανατολισμός των αξόνων είναι ο εξής:

x: TopIn άρα –y του ΑΚΣΣy: RightOut άρα x του ΑΚΣΣz: FrontOut άρα z του ΑΚΣΣ

Στο σχήμα που ακολουθεί βλέπουμε τους δύο συνδέσμους που αναφέραμε. Bλέπουμε πως ορίζονται στην ίδια κορυφή αλλά με διαφορετικό προσανατολισμό αξόνων:

45

Page 52: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.6 Σχέσεις μεταξύ απλών αντικειμένων με χρήση Συνδέσμων

Μια σχέση ανάμεσα σε δύο αντικείμενα μπορεί να περιγραφεί με τη βοήθεια των συνδέσμων. Όπως είδαμε, ένας σύνδεσμος δεν αντιστοιχεί παρά σε ένα απλό μετασχηματισμό από ή προς το ΑΚΣΣ ενός αντικειμένου προς ή από το Σ 3 . Επομένως μπορούμε να καθορίσουμε τη χωρική σχέση ανάμεσα σε δύο αντικείμενα χρησιμοποιώντας τους συνδέσμους που ορίζονται για τη γεωμετρία των αντικειμένων αυτών. Αυτός ήταν άλλωστε και ο λόγος που εισαγάγαμε τη χρήση των συνδέσμων.

3.6.1Χωρικός Γράφος Αντικειμένων

Το πρόβλημα του καθορισμού των θέσεων των αντικειμένων στο «πραγματικό χώρο» της εφαρμογής που καθορίζεται από το ΠΧωΣΣ γίνεται με τη δημιουργία του Χωρικού Γράφου Αντικειμένων (ΧωΓΑ). Οι κόμβοι του ΧωΓΑ είναι απλά αντικείμενα ή, ακριβέστερα, τα ΑΚΣΣ των απλών αυτών αντικειμένων. Οι ακμές του γράφου είναι Απλοί Χωρικοί Μετασχηματισμοί, όπως τους ορίσαμε προηγουμένως. Περιλαμβάνουν δηλαδή απλή αλλαγή κλίμακας, περιστροφή και μετατόπιση. Επιπλέον πρέπει να τονίσουμε πως ο ΧωΓΑ είναι συνεκτικός, δηλαδή κάθε απλό αντικείμενο συνδέεται με κάποιο άλλο μέσω μιας χωρικής σχέσης.

46

Page 53: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Ορισμός 9:Xωρικός Γράφος Αντικειμένων

Oρίζουμε ως χωρικό γράφο αντικειμένων G=(A,SR), όπου },,2,1|{ niAA i == ένα σύνολο από απλά αντικείμενα και

},,2,1,|{ , njiSRSR ji =⊆ ένα σύνολο από χωρικές σχέσεις ανάμεσα σε αυτά

τα αντικείμενα, τέτοιο ώστε ο γράφος να είναι συνεκτικός (δηλαδή για κάθε

αντικείμενο iA υπάρχει τουλάχιστον ένα αντικείμενο kA τέτοιο ώστε μία από

τις σχέσεις kiSR , , ikSR , ανήκει στο SR.

O υπολογισμός των «πραγματικών θέσεων» των διαφόρων αντικειμένων, λ.χ. του αντικειμένου Α6 είναι εύκολος εφαρμόζοντας την αλληλουχία των μετασχηματισμών SR1, SR2, SR3.

Με τη χρήση των συνδέσμων, κάθε κλάδος του γράφου χωρίζεται σε τρεις υποκλάδους. Η νέα χωρική σχέση που προκύπτει λέγεται Χωρική Σχέση με Συνδέσμους. Δηλαδή έχουμε το εξής σχήμα αντιστοιχίας.

Aπλός Μετασχηματισμός

47

A1

A2

A4 A5

A3

A6

SR1

SR3

SR2

SR4

SR5

A1 A2

Page 54: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

),,( 1,21,21,21,2prsc TTTST =

Χωρική Σχέση με Συνδέσμους

S 1J S 2J

1J ),,(12121212 ,,,,

pJJ

rJJ

scJJJJ TTTST = 2J

Ο αναγνώστης ίσως διερωτηθεί πιο σκοπό εξυπηρετεί η διάσπαση του απλού μετασχηματισμού στο παραπάνω σχήμα: FROM–Σύνδεσμος, Απλός Μετασχηματισμός, TO–Μετασχηματισμός. Όπως ήδη αναφέραμε, αυτό εξυπηρετεί τον κατασκευαστή εικονικών κόσμων στον καθορισμό σχέσεων με μεγαλύτερη ευκολία (αφού τώρα μπορεί να αναφερθεί και σε χαρακτηριστικά των αντικειμένων εκτός από το κέντρο τους). Οι σύνδεσμοι μπορούν –σε μεγάλο βαθμό– να χρησιμοποιηθούν διαισθητικά από το χρήστη, ενώ ο ενδιάμεσος Απλός Μετασχηματισμός θα είναι τις περισσότερες φορές αρκετά απλός (και σίγουρα απλούστερος από τον πλήρη).

Πρέπει επίσης να τονιστεί πως σε μια περίπτωση αρκετά «αυθαίρετης» τοποθέτησης των αντικειμένων στο χώρο, η χρησιμοποίηση των συνδέσμων δεν προσφέρει βοήθεια. Αν δηλαδή η τοποθέτηση των αντικειμένων δεν έχει καμιά κανονικότητα που προκύπτει από τη γεωμετρία τους, τότε οι σύνδεσμοι – που βασίζονται στη γεωμετρία των αντικειμένων, αχρηστεύονται.

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

Τέλος πρέπει να παρατηρήσουμε πως ένας ΧωΓΑ γενικά περιγράφει τη χωρική σχέση ανάμεσα σε ένα σύνολο απλών αντικειμένων. Αν επιπλέον καθορίσουμε ένα κόμβο του χωρικού γράφου ως κόμβο-ρίζα, τέτοιο ώστε να υπάρχει μονοπάτι από τον κόμβο-ρίζα προς κάθε κόμβο του γράφου τότε έχουμε έχουμε ένα ΧωΓΑ με ρίζα. Ένας τέτοιος γράφος, το ΑΚΣΣ της ρίζας του οποίου ταυτίζεται με το ΠΧωΣΣ είναι ο Παγκόσμιος Χωρικός Γράφος Αντικειμένων της Εφαρμογής (ΠΧωΓΑ). Αν ο κατευθυνόμενος γράφος με ρίζα επιπλέον είναι δέντρο, τότε υπάρχει ακριβώς ένα μονοπάτι από τη ρίζα (δηλαδή το ΠΧωΣΣ) προς κάθε κόμβο του δέντρου. Περισσότερα για αυτό το θέμα θα αναφέρουμε παρακάτω.

48

A1 A2

Page 55: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.6.1.1 Γράφος ή Δέντρο;

Στην επεξήγηση που παραθέσαμε προηγουμένως χρησιμοποιήσαμε τον όρο γράφος για να δείξουμε τη χωρική εξάρτηση ανάμεσα στα ΑΚΣΣ των απλών αντικειμένων της εφαρμογής. Στο παράδειγμα που δώσαμε είχαμε ένα γράφο με μορφή δέντρου. Εδώ πρέπει να κάνουμε κάποιες παρατηρήσεις που σχετίζονται τόσο με τη διαδικασία συγγραφής εφαρμογών καθώς και με τη μηχανή εκτέλεσης.

Οι κλάδοι του γράφου καθορίζονται προφανώς από το συγγραφέα-δημιουργό της εφαρμογής. Άρα είναι πιθανόν ο συγγραφέας αυτός να δημιουργήσει χωρικές σχέσεις οι οποίες έχουν τη μορφή κύκλου (άρα ο χωρικός γράφος δεν αποτελεί δένδρο). Εάν απουσιάζει ο έλεγχος για ύπαρξη κύκλων στο χωρικό γράφο ανακύπτουν σημαντικά προβλήματα πιθανής ασάφειας / ασυνέπειας της περιγραφής που παράγεται.

Το παρακάτω σχήμα δίνει το πρόβλημα παραστατικότερα:

Εφόσον η ακολουθίες απλών μετασχηματισμών (SR1,SR2) και (SR4,SR5) οδηγούν στο ίδιο παράγωγο σύστημα χωρικών συντεταγμένων (αυτό του αντικειμένου Α4), δεν προκύπτει πρόβλημα. Επιπλέον ένας εκ των κλάδων SR2, SR5 είναι πλεονάζων και μπορεί να παραληφθεί.

Αν ωστόσο οι ακολουθίες αυτές οδηγούν σε διαφορετικό σύστημα συντεταγμένων, τότε το τελικό αποτέλεσμα είναι ασαφές, και η περιγραφή του κόσμου είναι ασυνεπής. Δηλαδή, η τοποθέτηση του Α4 στο χώρο της εφαρμογής θα γίνει σε διαφορετικό σημείο αν ακολουθηθεί το μονοπάτι (SR1,SR2) και σε άλλο αν ακολουθηθεί το μονοπάτι (SR4,SR5). Το ίδιο πρόβλημα παρουσιάζεται για όλα εκείνα τα αντικείμενα που

49

A1

A2 A3

A4

A5

SR1SR4

SR2SR5

SR3

Page 56: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

συνδέονται με το Α4 με μια χωρική σχέση ως απόγονοί του (στην περίπτωση μας του Α5).

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

Στο παράδειγμα αυτό, ο χρήστης καθόρισε τη θέση του Γραφείου σε σχέση με το Πάτωμα («πάνω» στο πάτωμα) και σε σχέση με τη βιβλιοθήκη («δίπλα» στη βιβλιοθήκη). Στο Γραφείο μπορούμε να φτάσουμε μέσω των ακολούθων μονοπατιών:

(Πάτωμα, Γραφείο)(Πάτωμα, Βιβλιοθήκη, Γραφείο)

Επίσης κύκλος δημιουργείται εξαιτίας του γεγονότος της τοποθέτησης της Οθόνης «πάνω» στο γραφείο και «δίπλα» στον Υπολογιστή. Σε αυτή την περίπτωση μάλιστα, μπορούμε να φτάσουμε με τρεις διαφορετικούς τρόπους στην Οθόνη:

(Πάτωμα, Γραφείο, Οθόνη)(Πάτωμα, Βιβλιοθήκη, Γραφείο, Οθόνη)(Πάτωμα, Βιβλιοθήκη, Υπολογιστής, Οθόνη)

Στην περίπτωση του παραδείγματος μας, ο χρήστης θέλησε να καθορίσει τη θέση ενός αντικειμένου σε σχέση με δύο άλλα. Θέλησε ουσιαστικά να ορίσει την τοποθέτηση

50

Πάτωμα

Γραφείο Βιβλιοθήκη

Οθόνη Υπολογιστής

Πάνω

Πάνω

Πάνω

Δίπλα

Πάνω

Δίπλα

Page 57: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

της οθόνης στο ύψος μέσω του μονοπατιού (Πάτωμα, Γραφείο, Οθόνη) και στο οριζόντιο επίπεδο μέσω του μονοπατιού (Πάτωμα, Βιβλιοθήκη, Υπολογιστής, Οθόνη).

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

3.7 Εισαγωγή Αντικειμένων στο Χωρικό Γράφο

Ένα από τα ενδιαφέροντα προβλήματα στο χωρικό γράφο είναι αυτό της εισαγωγής αντικειμένων σε αυτόν. Το πρόβλημα αυτό προκύπτει και στη διαδικασία δημιουργίας της εφαρμογής και κατά τη διάρκεια της εκτέλεσης αυτής. Στην πρώτη περίπτωση, ο δημιουργός της εφαρμογής οικοδομεί τον κόσμο του, προσθέτοντας διαδοχικά αντικείμενα σε αυτόν. Αυτά τα αντικείμενα εισάγονται στο χωρικό γράφο της εφαρμογής. Στη δεύτερη περίπτωση, έχουμε τη δυναμική εισαγωγή αντικειμένων κατά τη διάρκεια εκτέλεσης της εφαρμογής, με βάση βέβαια το σενάριο αυτής.

Βεβαίως, όταν μιλάμε για εισαγωγή αντικειμένων, εννοούμε είτε εισαγωγή απλών αντικειμένων, είτε εισαγωγή ενός χωρικού γράφου αντικειμένων ο οποίος ενσωματώνεται στον Παγκόσμιο ΧωΓΑ. Βεβαίως ένα απλό αντικείμενο μπορεί να θεωρηθεί ως ένας ΧωΓΑ με ένα μόνο κόμβο.

3.7.1Εισαγωγή με σύνδεση Κόμβου-Ρίζας

Η απλούστερη περίπτωση της εισαγωγής ενός ΧωΓΑ στον ΠΧωΓΑ είναι η εισαγωγή με σύνδεση ενός κόμβου του ΠΧωΓΑ με τη ρίζα του εισαγόμενου ΧωΓΑ. Η εισαγωγή αυτή ορίζεται ως εξής:

Ορισμός 10: Εισαγωγή με σύνδεση Κόμβου – Ρίζας

Έστω γράφος G με σύνολο κόμβων (απλά αντικείμενα)

},,1,0|{ niAA i == , και σύνολο ακμών (χωρικές σχέσεις)

},,2,1,|{ , njiSRSR ji =⊆

Έστω επίσης γράφος G’ με σύνολο κόμβων },,2,1|'{' niAA i == , ( Α’ A≠ )

κόμβο-ρίζα rA' και σύνολο ακμών },,2,1,|'{' , njiSRSR ji =⊆ .

51

Page 58: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Η εισαγωγή του G’ στον G ως παιδί στον κόμβο AAk ∈ δημιουργεί το νέο

γράφο newG με σύνολο κόμβων 'AAAnew ∪= και σύνολο ακμών

)}',({' rknew AASRSRSRSR ∪∪= όπου )',( rk AASR είναι μια χωρική σχέση

ανάμεσα στον κόμβο kA και τον κόμβο rA' .

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

ύπαρξη μονοπατιού από τη ρίζα του newG (που ταυτίζεται με τη ρίζα του G) προς κάθε κόμβο του εισαγόμενου γράφου. Το μονοπάτι αυτό είναι το μονοπάτι από τη ρίζα του

newG έως τον kA και από τον κόμβο rA' έως τον κόμβο που μας ενδιαφέρει (το

τελευταίο υπάρχει εφόσον ακριβώς ο εισαγόμενος ΧωΓΑ είναι δέντρο).Όπως φαίνεται, δημιουργείται έτσι ένας νέος γράφος με βάση τον G, στον οποίο

στον κόμβο kA (στην περίπτωσή μας Α3) έχει προστεθεί ως παιδί ο γράφος G’, μέσω της

ρίζας του (στην περίπτωσή μας Α1’).Η εισαγωγή γράφου ως παιδί κόμβου είναι ο συνηθισμένος τρόπος για την επέκταση

του κόσμου της εφαρμογής μας. Προσθέτοντας διαρκώς παιδιά χτίζουμε τον εικονικό μας κόσμο.

3.7.2Εισαγωγή με Παρεμβολή μέσω Ρίζας

52

A1

A2 A3

A4

A1’

A3’

A2’

SR(A3,A1’)

Γράφος G’

Γράφος G

Page 59: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Μια άλλη ενδιαφέρουσα περίπτωση εισαγωγής ενός ΧωΓΑ στον ΠΧωΓΑ είναι μέσω της παρεμβολής. Η παρεμβολή συνίσταται στο σπάσιμο μιας υπάρχουσας χωρικής σχέσης και στην αντικατάσταση της με ένα ΧωΓΑ ο οποίος συνδέεται με τα δύο συνδεδεμένα μέλη της χωρικής σχέσης με τρόπο που καθορίζει ο δημιουργός της εφαρμογής.

Ορισμός 11: Εισαγωγή στο Χωρικό Γράφο Αντικειμένων με Παρεμβολή μέσω

Ρίζας

Έστω γράφος G με σύνολο κόμβων (απλά αντικείμενα)

},,1,0|{ niAA i == , και σύνολο ακμών (χωρικές σχέσεις)

},,2,1,|{ , njiSRSR ji =⊆ .

Έστω επίσης δύο κόμβοι του γράφου AAA postpre ∈, τέτοιοι ώστε SRSR ml ∈,

(δηλαδή συνδέονται άμεσα με μια χωρική σχέση).

Έστω επίσης γράφος G’ με σύνολο κόμβων },,2,1|'{' niAA i == , ( Α’ A≠ )

κόμβο-ρίζα rA' , ένα κόμβο lA' και σύνολο ακμών

},,2,1,|'{' , njiSRSR ji =⊆ .

Η εισαγωγή του G’ στον G με παρεμβολή ανάμεσα στους κόμβους postpre AA ,

δημιουργεί το νέο γράφο newG με σύνολο κόμβων 'AAAnew ∪= και σύνολο

ακμών }{)},'(),',({' , postprepostlrprenew SRAASRAASRSRSRSR −∪∪= όπου

)',( rpre AASR , )',( rpre AASR είναι οι χωρικές σχέσεις ανάμεσα στα απλά

αντικείμενα rpre AA ', και postl AA ,' αντίστοιχα.

53

A4 A5 A6

A3A2

A1

6,3ST

Γράφος G

A1’

A3’A2’

Γράφος G’

A6

A4 A5

A3A2

A1 Γράφος G�

A1’

A3’A2’

Παρεμβολή

ST(A3,A1’)

Page 60: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.7.3Σύνδεση με οποιονδήποτε Κόμβο του Εισαγόμενου Γράφου

Μέχρι στιγμής ασχοληθήκαμε με περιπτώσεις εισαγωγής ΧωΓΑ στον ΠΧωΓΑ κατά τις οποίες ο εισαγόμενος ΧωΓΑ συνδέθηκε με τον ΠΧωΓΑ μέσω της ρίζας του. Αυτός ο τρόπος εισαγωγής είναι βολικός αλλά δεν καλύπτει όλες τις περιπτώσεις που θα ήταν χρήσιμες. Ένας χωρικός γράφος μπορεί να δηλώνει, όπως είδαμε ένα σύνθετο αντικείμενο, και τα απλά αντικείμενα που περιλαμβάνει να είναι τα τμήματα αυτού του συνθέτου αντικειμένου τα οποία θέλουμε να χρησιμοποιήσουμε για να δηλώσουμε σχέσεις με άλλα αντικείμενα του κόσμου.

Το παρακάτω παράδειγμα δίνει το πρόβλημα παραστατικότερα. Έχουμε το αντικείμενο καρέκλα το οποίο περιγράφεται ως ένας Χωρικός Γράφος με ρίζα την οριζόντια επιφάνεια (Κάθισμα) και παιδιά τα τέσσερα πόδια της καρέκλας και την πλάτη της καρέκλας:

Έχουμε ακόμα και ένα δωμάτιο που αποτελείται από ένα πάτωμα και τέσσερις τοίχους και περιγράφεται με τον ακόλουθο τρόπο ως χωρικός γράφος:

54

ST(A3’,A6)

Κάθισμα

Πόδι 1 Πόδι 2 Πόδι 3 Πόδι 4

Πλάτη

Καρέκλα

Πάτωμα

Τοίχος 1 Τοίχος 2 Τοίχος 3 Τοίχος 4 Δωμάτιο

Page 61: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Αν θέλουμε να εισαγάγουμε την Καρέκλα στο Δωμάτιο, δεν είναι βολικό να το κάνουμε αυτό μέσω του κόμβου-ρίζα της Καρέκλας (Κάθισμα), αφού δεν έχει νόημα να τοποθετήσουμε το Κάθισμα σε κάποια θέση σε σχέση με τους τοίχους ή το πάτωμα. Αντίθετα είναι πολύ εύκολο να την τοποθετήσουμε τοποθετώντας την πλάτη σε κάποια σχέση με ένα τοίχο (π.χ. ακουμπάει στον τοίχο) ή τοποθετώντας ένα από τα πόδια της να ακουμπάει στο πάτωμα. Η περίπτωση σύνδεσης Τοίχου-Πλάτης λ.χ. αντιστοιχεί στο ακόλουθο σχήμα:

Από το σχήμα αυτό βλέπουμε πως δεν υπάρχει κατευθυνόμενο μονοπάτι που να οδηγεί από το Πάτωμα (ΠΧωΣΣ – Κόμβος Ρίζα) στο Κάθισμα ή στα πόδια της καρέκλας. Δεν μπορούμε δηλαδή να βρούμε μια ακολουθία χωρικών σχέσεων (οι οποίες από τον ορισμό τους είναι κατευθυνόμενες) που να μας οδηγεί από το Πάτωμα στο Κάθισμα.

55

Κάθισμα

Πόδι 1 Πόδι 2 Πόδι 3 Πόδι 4

Πλάτη

Πάτωμα

Τοίχος 1 Τοίχος 2 Τοίχος 3 Τοίχος 4

Σύνδεση με κόμβο διαφορετικό της Ρίζας

Page 62: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Το πρόβλημα αυτό μοιάζει με το πρόβλημα που αναπτύξαμε για την αντιδιαστολή μεταξύ Γράφου και Δέντρου. Και εδώ, όπως εκεί έχουμε κόμβους του γράφου (απλά αντικείμενα) στα οποία εισέρχονται άνω της μίας χωρικές σχέσεις (στο παράδειγμα μας στον κόμβο Κάθισμα). Εδώ τελειώνει όμως η ομοιότητα. Ο γράφος του άνω σχήματος δεν κινδυνεύει από προβλήματα συνέπειας όπως τα παραδείγματα που δώσαμε στην άλλη περίπτωση. Το πρόβλημα εδώ είναι πως η περιγραφή μας, αν και ορθή και συνεπής, δεν μας επιτρέπει να μεταβούμε από τη ρίζα σε κάποιους κόμβους του γράφου με μιαν ακολουθία χωρικών σχέσεων.

Η λύση αυτού του προβλήματος είναι απλή. Συνίσταται στην μεταβολή της φοράς των χωρικών σχέσεων στον εισαγόμενο γράφο, δίχως να διαταραχθεί η διάταξη των αντικειμένων που αντιστοιχεί σε αυτόν. Έτσι κατορθώνουμε να δημιουργήσουμε ένα γράφο ο οποίος έχει ως ρίζα τον κόμβο τον οποίο θέλουμε να συνδέσουμε στο γενικότερο γράφο. Η διαδικασία αυτή περιγράφεται στην επόμενη ενότητα.

3.7.3.1 Αλλαγή Ρίζας Χωρικού Γράφου

Το πρόβλημα της αλλαγής ρίζας χωρικού γράφου έχει μια απλή αλγοριθμική λύση που θα παραθέσουμε αμέσως μετά. Πρώτα θα αναφερθούμε σε ισοδύναμους τρόπους παράστασης χωρικών σχέσεων ανάμεσα σε απλά αντικείμενα. Οι δύο παρακάτω τρόποι παράστασης είναι ισοδύναμοι (αντιστοιχούν σε πανομοιότυπη τοποθέτηση των αντικειμένων στο χώρο):

Γενικά οι δύο ακόλουθοι τρόποι αναπαράστασης της σχέσης ανάμεσα σε δύο απλά αντικείμενα είναι ισοδύναμοι:

56

Τραπέζι ΥπολογιστήςΠάνω

Τραπέζι Υπολογιστής

Kάτω

Α ΒSR

Β

invSR

Page 63: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Επομένως, το πρόβλημα αλλαγής ρίζας χωρικού γράφου συνίσταται στην αλλαγή της φοράς κάποιων από τις χωρικές σχέσεις που περιέχει έτσι ώστε να υπάρχει ένα μονοπάτι προς κάθε κόμβο του παραγόμενου γράφου από τον κόμβο που έχει επιλεγεί για να γίνει ρίζα. Ο τρόπος για να γίνει αυτό είναι αλλάζοντας τη φορά όλων των χωρικών σχέσεων σε όλα τα μονοπάτια από την παλιά στη νέα ρίζα του γράφου. Στην περίπτωση που ο χωρικός γράφος είναι δέντρο (δηλαδή υπάρχει μόνο ένα μονοπάτι από τον κόμβο ρίζα προς κάθε κόμβο του γράφου), τότε αρκεί να αλλάξουμε τη φορά των χωρικών σχέσεων σε αυτό το μονοπάτι. Αυτή είναι και η περίπτωση που μας ενδιαφέρει.

Ορισμός 12: Αλλαγή Ρίζας Χωρικού Γράφου

Έστω χωρικός γράφος G=(A,SR) με κόμβο – ρίζα rA και έστω κόμβος mA

του γράφου. Αν P=( rA ,110

,,,,−nkkkk AAAA , mA ) είναι το μονοπάτι που

συνδέει τους κόμβους rA και mA τότε ο γράφος G’=(A,SR’) όπου SR’

},,,{},,,{ ,,,,,, 11001100 mkkkkmmkkkkm nnSRSRSRinvSRinvSRinvSRSR

−−−∪=

έχει κόμβο – ρίζα τον κόμβο mA και παριστά την ίδια τοποθέτηση αντικειμένων

στο χώρο.

Το ακόλουθο σχήμα δίνει μιαν άποψη του τρόπου με τον οποίο μπορούμε να αλλάξουμε ρίζα σε ένα χωρικό γράφο:

57

Α

A1

A2

A4 A5

A3

A6

SR1

SR3

SR2

SR4

SR5

A1

A2

A4 A5

A3

invSR1

invSR2

SR4

SR5

Page 64: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Στο σχήμα έχουμε αλλαγή της ρίζας-κόμβου από τον κόμβο Α1 στον κόμβο Α4. Βλέπουμε πως οι χωρικές σχέσεις στο μονοπάτι (Α1,Α2,Α4) αντιστρέφονται και στον παραγόμενο γράφο υπάρχει μονοπάτι προς κάθε κόμβο από το νέο κόμβο ρίζα.

3.8 Διαγραφή Αντικειμένων

Αντικείμενα που πλέον δεν είναι απαραίτητα στην εφαρμογή μπορούν να διαγραφούν από τον ΠΧωΓΑ και έτσι να πάψουν πλέον να είναι ορατά. Ένα αντικείμενο είναι ορατό κατά τη διάρκεια της ενεργούς ζωής του (AL). Κατά τη διάρκεια της συνολικής ζωής του όπως είδαμε, μπορεί να γίνεται διαδοχικά ενεργό και ανενεργό. Η απενεργοποίηση του αντικειμένου αντιστοιχεί ακριβώς στην εξαγωγή του από τον ΠΧωΓΑ, οπότε αυτό παύει να μετέχει στην εφαρμογή για το χρόνο στον οποίο βρίσκεται εκτός ΠΧωΓΑ. Σημειώνεται πως ένα αντικείμενο που διαγράφεται από το γράφο αντικειμένων (δηλαδή μεταπίπτει σε μη ενεργό κατάσταση της ζωής του) δεν καταστρέφεται. Μπορεί σε κάποια μελλοντική στιγμή να εισαχθεί στο χωρικό γράφο αντικειμένων σύμφωνα με όσα αναφέραμε προηγουμένως.

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

3.8.1Διαγραφή Αντικειμένου Φύλλου

Η πιο απλή περίπτωση διαγραφής αντικειμένου είναι αυτή της διαγραφής αντικειμένου φύλλου. Εδώ πρέπει να υπενθυμίσουμε πως όταν μιλάμε για αντικείμενα, αναφερόμαστε σε ΧωΓΑ που αποτελούνται από απλά αντικείμενα. Ένας τέτοιος γράφος είναι φύλλο του ΠΧωΓΑ εάν συνδέεται με αυτόν μόνο μέσω της χωρικής σχέσης που συνδέει τη ρίζα του ΧωΓΑ με κάποιον κόμβο του ΠΧωΓΑ. Αυτό σημαίνει πως ολόκληρη η χωρική εξάρτηση του προς διαγραφή γράφου από τον παγκόσμιο γράφο

58

A6

SR3

Ρίζα Α1 Ρίζα Α4

Page 65: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

διέρχεται μέσω της ρίζας του. Η διαγραφή επομένως μπορεί να γίνει εύκολα με αφαίρεση της χωρικής σχέσης που συνδέει τη ρίζα.

Ορισμός 13: Διαγραφή Αντικειμένου Φύλλου

Έστω γράφος G με σύνολο κόμβων (απλά αντικείμενα)

},,1,0|{ niAA i == , και σύνολο ακμών (χωρικές σχέσεις)

},,2,1,|{ , njiSRSR ji =⊆ καθώς και υπογράφος G’ του G με σύνολο

κόμβων A’ και σύνολο ακμών SR’ τέτοιος ώστε για τον κόμβο – ρίζα του G’

(έστω rA' ) και μόνο για αυτόν υπάρχει ακριβώς μία σχέση rkSR , όπου Α k είναι

κόμβος του G που δεν ανήκει στο G’.Ορίζουμε διαγραφή του χωρικού γράφου G’ από το χωρικό γράφο G την πράξη που έχει ως αποτέλεσμα το νέο χωρικό γράφο newG με σύνολο κόμβων

το 'AAAnew −= και σύνολο ακμών το }{' ,rknew SSRSRSR −−=

Στον ορισμό μας, σημειώσαμε πως όλα τα απλά αντικείμενα και όλες οι χωρικές σχέσεις αυτών διαγράφονται από το γράφο G. Πρακτικά όμως, καθώς ο ΠΧωΓΑ πρέπει

να είναι συνεκτικός, αρκεί να αφαιρέσουμε τη σχέση rkSR , για να έχουμε το επιθυμητό

αποτέλεσμα.Ένα παράδειγμα διαγραφής αντικειμένου φύλλου είναι το παράδειγμα της

διαγραφής μιας φρουτιέρας από ένα τραπέζι. Η φρουτιέρα συνδέεται με το τραπέζι μόνο μέσω της βάσης της. Αν διαγραφεί αυτή η σχέση τότε θα διαγραφεί τόσο η φρουτιέρα, όσο και τα φρούτα που περιέχει (η θέση των οποίων καθορίζεται σε σχέση με τη φρουτιέρα)

3.8.2Διαγραφή Εσωτερικού Αντικειμένου

Το πρόβλημα της διαγραφής ενός εσωτερικού αντικειμένου από το ΠχωΓΑ είναι πιο πολύπλοκο διότι ένα εσωτερικό αντικείμενο ορίζεται ως ένας ΧωΓΑ ο οποίος συνδέεται με τα άλλα αντικείμενα του ΠΧωΓΑ με περισσότερες από μία χωρικές σχέσεις και (πιθανώς) μέσω περισσότερων του ενός απλών αντικειμένων του.

59

Page 66: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Ένα εσωτερικό αντικείμενο του ΠΧωΓΑ δεν «υπάρχει» απλώς σε κάποια θέση (σύμφωνα με τη χωρική σχέση που το συνδέει με ένα αντικείμενο που δεν ανήκει σε αυτό) αλλά επηρεάζει και αυτό τη θέση αντικειμένων τα οποία συνδέονται με τα απλά αντικείμενα του εσωτερικού αντικειμένου. Άρα η θέση αυτών των αντικειμένων εξαρτάται άμεσα από το εσωτερικό αντικείμενο. Επομένως όταν αυτό διαγραφεί, πρέπει εκτός από τη διαγραφή όλων των χωρικών σχέσεων που το συνδέουν με αντικείμενο που δεν ανήκουν σ’ αυτό, να προδιαγραφούν νέες χωρικές σχέσεις για τα αντικείμενα τα οποία μέχρι πριν τη διαγραφή καθόριζαν τη θέση τους μέσω του εσωτερικού αντικειμένου.

Ορισμός 14: Διαγραφή Εσωτερικού Αντικειμένου

Έστω γράφος G με σύνολο κόμβων (απλά αντικείμενα)

},,1,0|{ niAA i == , και σύνολο ακμών (χωρικές σχέσεις)

},,2,1,|{ , njiSRSR ji =⊆ καθώς και υπογράφος G’ του G με σύνολο

κόμβων A’ και σύνολο ακμών SR’. Αν

}':|)'({ , AASRAAAA jijidependent ∈∃−∈= είναι το σύνολο των εξαρτώμενων

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

newG με σύνολο κόμβων το 'AAAnew −= και σύνολο ακμών το

})'(|{})'|{}{'( ,,,dependent

jijiidependent

jjirknew AAAAASRAAAASSSRSRSR ∈∧−∈∪∈∧∈−−−=

Ένα παράδειγμα διαγραφής εσωτερικού αντικειμένου είναι η διαγραφή μιας σειράς από ράφια τοίχου τα οποία έχουν περιγραφή μέσω των αποστάσεων του ενός από το άλλο. Αν έχουμε λ.χ. πέντε ράφια και διαγράψουμε το δεύτερο, τότε το τρίτο ράφι «κρέμεται» (καθώς και τα ράφια που είναι απόγονοι αυτού), δηλαδή δεν υπάρχει χωρική σχέση που το συνδέει στον ΠΧωΓΑ. Επομένως πρέπει να προστεθεί μια τέτοια σχέση π.χ. ανάμεσα στο πρώτο και στο τρίτο ράφι.

Σημειώνεται πως στην περίπτωση μας είχαμε χρησιμοποιήσει τις χωρικές σχέσεις για να περιγράψουμε μια σχέση που εξέφραζε μόνο φυσική και όχι λογική εξάρτηση. Τα ράφια βρίσκονταν σε σχέση απόστασης μεταξύ τους αλλά δεν υπήρχε άλλη εξάρτηση ανάμεσα τους. Αν είχαμε την περίπτωση π.χ. ενός τραπεζιού το οποίο έχει πάνω του μια σειρά βιβλία, τότε η διαγραφή του τραπεζιού δε θα προκαλούσε μόνο την ανάγκη καθορισμού της νέας θέσεως των βιβλίων αλλά και την ανάγκη απάντησης στο ερώτημα: «Μπορούν να υπάρχουν τα βιβλία ανεξάρτητα από το γραφείο;»

60

Page 67: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.9 Κίνηση

Στα προηγούμενα είδαμε δύο ειδών δράσεις στο Χωρικό Γράφο: την εισαγωγή και τη διαγραφή αντικειμένου. Τώρα θα ασχοληθούμε με τις πιο ενδιαφέρουσες χωρικές δράσεις που αφορούν κίνηση αντικειμένων. Η κίνηση των αντικειμένων μπορεί να περιγραφεί με τη βοήθεια των χρονικά μετασχηματιζόμενων χωρικών σχέσεων. Δηλαδή μπορούμε, διατηρώντας τη μορφή του ΠΧωΓΑ και αλλάζοντας μόνο τη μορφή των σχέσεων SR που αυτός περιλαμβάνει, να επιτύχουμε κίνηση.

Σε κάποιες περιπτώσεις ωστόσο, αυτό δεν αρκεί. Υπάρχουν κινήσεις που δεν μπορούν να περιγραφούν μέσω μετασχηματιζόμενων χωρικών σχέσεων (ή αν μπορούν, κάτι τέτοιο είναι αφύσικο ή δύσκολο). Ένα παράδειγμα αυτής της δυσκολίας είναι ένας πύραυλος που εκτοξεύεται από μία εξέδρα στη γη και καταλήγει στο φεγγάρι. Αρχικά, ίσως ήταν βολικό να προσδιορίζουμε τη θέση του πυραύλου σε σχέση με την εξέδρα (Ο πύραυλος είναι «πάνω» στην εξέδρα). Όταν όμως ο πύραυλος βρεθεί στο φεγγάρι, δεν έχει νόημα να συνεχίζουμε να καθορίζουμε τη θέση του πυραύλου σε σχέση με τη γη.

3.9.1Κίνηση Μετασχηματισμού Χωρικών Σχέσεων

Η κίνηση μετασχηματισμού χωρικών σχέσεων αφορά στη μετακίνηση αντικειμένων μέσα σε ένα σύστημα συντεταγμένων. Ένα αντικείμενο μετακινείται αν αλλάξει κάποια από τις χωρικές σχέσεις που βρίσκονται στο μονοπάτι του ΠΧωΓΑ ανάμεσα στον κόμβο-ρίζα (ΠΧωΣΣ) και στον κόμβο-ρίζα του αντικειμένου αυτού. Αν έχουμε λοιπόν

μία σχέση jiSR , ανάμεσα στα αντικείμενα iA και jA , τότε μια τυχόν αλλαγή αυτής της

σχέσης κατά το χρόνο της εφαρμογής θα έχει ως αποτέλεσμα τη κίνηση του jA καθώς

και όλων των απογόνων του (που βρίσκονται δηλαδή στο χωρικό υπο-γράφο με ρίζα τον

κόμβο jA ).

Επομένως, για να επιτύχουμε κίνηση, αρκεί να καθορίσουμε τον τρόπο κατά τον οποίο μεταβάλλεται χρονικά μια χωρική σχέση, δηλαδή να εκφράσουμε ένα κανόνα SR(t). Aν σκεφτούμε πως ορίσαμε τη χωρική σχέση ως τριάδα (FROM Σύνδεσμος, Aπλός Μετασχηματισμός, TO Σύνδεσμος), βλέπουμε πως το πρόβλημα μας αναλύεται στον καθορισμό ενός κανόνα για τη χρονική μεταβολή συνδέσμων, καθώς και ενός κανόνα για τη χρονική μεταβολή απλών μετασχηματισμών.

61

Page 68: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Μερικοί από τους συνδέσμους (όπως λ.χ. οι σύνδεσμοι του κουτιού) είναι σταθεροί για αντικείμενο με μη μεταβαλόμενες διαστάσεις. Επομένως δεν εχει νόημα να ομιλούμε για χρονική τους μεταβολή. Άλλοι σύνδεσμοι όμως που καθορίζονται μέσω παραμέτρων, μπορούν να μεταβληθούν χρονικά, αν μεταβληθούν χρονικά οι παράμετροι αυτές.

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

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

3.9.2Καθορισμός Κίνησης στο διακριτό Χρόνο

Ο χρόνος της εφαρμογής μας είναι όπως αναφέραμε διακριτός, με κάτω όριο του κβάντου χρόνου τις δυνατότητες του υλικού και λογισμικού παρουσίασης της εφαρμογής. Για τον καθορισμό κίνησης πρέπει να ασχοληθούμε με συναρτήσεις του διακριτού χρόνου.

Η κίνηση μπορεί να θεωρηθεί ως μεταβολή μιας σειράς από ποσότητες (λ.χ. «ύψος», «απόσταση», «μέγεθος», κ.ο.κ.) σε συνάρτηση με το χρόνο. Η πλέον απλή κίνηση είναι η μεταβολή μίας ποσότητας, λ.χ. της x-συνιστώσας της θέσης ενός αντικειμένου στο τοπικό σύστημα συντεταγμένων. Θα αναφερθούμε σε διακριτές μεταβολές μίας ποσότητες. Τα συμπεράσματα μας μπορούν να γενικευθούν στο διάνυσμα των ποσοτήτων που συνιστούν τη κίνηση που μας ενδιαφέρει.

Η χρονική μεταβολή μιας βαθμωτής πραγματικής ποσότητας μπορεί να περιγραφεί από ένα νόμο της μορφής:

)(,: tfDTf f→

Eίναι μια συνάρτηση δηλαδή που απεικονίζει το πεδίο του χρόνου της εφαρμογής T

στο πεδίο των δυνατών τιμών της ποσότητας αυτής ℜ⊆fD σύμφωνα με τον κανόνα f(t) που είναι μια μονοσήμαντη συνάρτηση

Ο έλεγχος της μεταβολής της ποσότητας στο διακριτό χρόνο απαιτεί τον προσδιορισμό των χρονικών στιγμών του διακριτού χρόνου μέσω μιας διαμέρισης του T. Στις εφαρμογές που μας ενδιαφέρουν έχουμε κίνηση για κάποιο χρονικό διάστημα d⊆T. Αν d=[t0, tf]. Aν εισάγουμε τη μεταβλητή τ = t- t0, η κίνηση ορίζεται για το διάστημα

62

Page 69: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

[0, tf -t0]. Eίναι τf= tf -t0 άρα το νέο διάστημα είναι d’=[0, τf]Μια συνεχής μεταβολή μπορεί να προσεγγιστεί μέσω μιας διαμέρισης του

διαστήματος ],0[' 0ttd f −= σε ένα σύνολο διαστημάτων ],[' 1+= iiid ττ , 1,,1,0 −= ni .

Ισχύει προφανώς nf t=τ και 00 =τ . Για αυτές τις τιμές ορίζεται η τιμή της ποσότητας

μέσω της συνάρτησης g(τ)=f(t- t0).

Ο αριθμός n είναι ο αριθμός των βημάτων του μετασχηματισμού, και το πηλίκο n

είναι το μέσο χρονικό βήμα του μετασχηματισμού. Αν το μήκος των διαστημάτων id '

είναι σταθερό τότε έχουμε μετασχηματισμό σταθερού χρονικού βήματος το οποίο ισούται με την ποσότητα που αναφέραμε.

Η προσέγγιση της VRML είναι παρόμοια με αυτή που παρουσιάζουμε εδώ μέσω της χρήσης των Interpolators (δες 2.1.9). H VRML ορίζει και αυτή μια διαμέριση (μέσω του key) και τις αντίστοιχες τιμές (μέσω του keyValue). Για τις ενδιάμεσες τιμές του χρόνου (ανάμεσα στις τιμές του key) η τιμή εξόδου υπολογιζεται μέσω γραμμικής παρεμβολής. Στην προσέγγιση μας καθορίζουμε πως η μεταβολή θα συμβαίνει μόνο στις χρονικές στιγμές d’ και έχουμε την ευχέρια να καθορίσουμε το βήμα του μετασχηματισμού έτσι ώστε να είναι όσο ομαλός θέλουμε.

Στα παρακάτω θα δίνουμε μόνο τους νόμους g των κινήσεων που περιγράφει το μοντέλο. Η πραγματική κίνηση θα συμπεριλαμβάνει βεβαίως και τη διαμέριση του χρόνου σύμφωνα με όσα αναφέρουμε εδώ.

3.9.3Κίνηση με Μεταβολή Συνδέσμου

Η κίνηση με μεταβολή συνδέσμου, αφορά στην κίνηση που υλοποιείται μέσω της αλλαγής των παραμέτρων κάποιου συνδέσμου. Όπως είπαμε, ο σύνδεσμος είναι η τριάδα (Κατεύθυνση συνδέσμου, Είδος συνδέσμου, Παράμετροι) και η δυάδα (Είδος συνδέσμου, Παράμετροι) ορίζει το Σύστημα Συντεταγμένων Συνδέσμου (Σ 3 ). Ο Σύνδεσμος αντιστοιχεί σε έναν Απλό Μετασχηματισμό από το ΑΚΣΣ του αντικειμένου στο οποίο ορίζεται προς το Σ 3 . Από τον ορισμό του Σ 3 προκύπτει πως για να αλλάξει αυτό (και άρα να επιτευχθεί κίνηση) πρέπει να αλλάξουν οι παράμετροι του αντίστοιχου συνδέσμου.

Η κίνηση αυτή είναι μια αλλαγή του σημείου σύνδεσης του εξαρτώμενου αντικειμένου από την επιφάνεια του αντικειμένου για την οποία ορίζεται ο σύνδεσμος. Π.χ. αν θέλουμε ένα αντικείμενο να εκτελεί μια κίνηση περί μια σφαίρα, έτσι ώστε ο

63

Page 70: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

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

SpatialGraph Sphere { radius 3 } {from surface out 0 0 to bottom in Box { size 1 2.51 }

}

Εδώ έχουμε ένα αντικείμενο τύπου Κουτιού το κάτω μέρος του οποίου βρίσκεται πάνω στην επιφάνεια μιας Σφαίρας. και μάλιστα στη θέση που καθορίζεται από τις γωνίες 0 0. Aν θέλουμε να διατηρηθεί αυτή η σχέση, δηλαδή το αντικείμενο να μετακινηθεί σε μια άλλη θέση της επιφάνειας της σφαίρας αλλά να συνεχίζει να έχει το κάτω μέρος του στην αντίστοιχη ακτινική διεύθυνση, αρκεί να αλλάξουμε τις παραμέτρους θ, φ του from surface out συνδέσμου της σφαίρας προς τις νέες τιμές που επιθυμούμε.

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

Το παρακάτω σχήμα δείχνει τη μετατόπιση μέσω συνδέσμου από την αρχική γωνία 0 0 στην τελική γωνία 0 90°. Η κίνηση αυτή μπορεί να εκφραστεί μέσω συνδέσμων με την απλή έκφραση:

φ(t)=φ(0)+αt, θ(t)=θ(0).

64

Page 71: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

O Μετασχηματισμός μέσω συνδέσμου είναι μια ενδιαφέρουσα δυνατότητα που παρέχεται από τη χρησιμοποίηση χωρικών σχέσεων με συνδέσμους. Μπορούμε χρησιμοποιώντας τον να επιτύχουμε με πολλή ευκολία κάποιες συνηθισμένες κινήσεις. Ένα παράδειγμα τέτοιας κίνησης είναι το άνοιγμα μιας πόρτας. Η πόρτα περιστρέφεται γλιστρώντας πάνω στην κυλινδρική επιφάνεια των μεντεσέδων. Άλλο παράδειγμα είναι η περιστροφή της Σελήνης περί τη Γη. Μπορούμε εύκολα να επιτύχουμε να στρέφει η Σελήνη διαρκώς τη φωτεινή της πλευρά προς τη Γη.

3.9.4Kίνηση με Αλλαγή Απλού Μετασχηματισμού

Η κίνηση με αλλαγή απλού μετασχηματισμού μας δίνει τη δυνατότητα επίτευξης σύνθετων κινήσεων. Ένας απλός χωρικός μετασχηματισμός είναι όπως είδαμε η τριάδα (Μετατόπιση, Περιστροφή, Αλλαγή Κλίμακας). Επομένως μια κίνηση που βασίζεται στην αλλαγή ενός απλού μετασχηματισμού μπορεί να περιλαμβάνει αλλαγή της μετατόπισης του αντικειμένου (δηλαδή της θέσης του στο σύστημα συντεταγμένων του οποίου είναι παιδί), της περιστροφής (και άρα του προσανατολισμού του αντικειμένου στο σύστημα συντεταγμένων) και της κλίμακας (άρα αναμεγέθυνση του αντικειμένου).

Αναφέρουμε επίσης πως η κίνηση αναφέρεται στη αλλαγή του Απλού Μετασχηματισμού ανάμεσα σε δύο χωρικά συστήματα συντεταγμένων, το σύστημα πατέρα και το σύστημα παιδί. Η αλλαγή του ΑΜ έχει ως αποτέλεσμα την κίνηση του ΣΣ-παιδιού και των αντικειμένων που ορίζονται με βάση αυτό. Τα συστήματα συντεταγμένων μπορεί να είναι ΑΚΣΣ ενός αντικειμένου ή Συστήματα Συντεταγμένων Συνδέσμου. Έτσι μπορούμε να επιτύχουμε κίνηση κέντρων αντικειμένων, της μιας επιφάνειας του ενός ως προς την άλλη κάποιου άλλου, κ.ο.κ.

3.9.4.1 Μετατόπιση σε ένα Σύστημα Συντεταγμένων

Η μετατόπιση σε ένα σύστημα συντεταγμένων Α ενός συστήματος συντεταγμένων Β ορίζεται ως εξής:

Ορισμός 15: Μετατόπιση σε Σύστημα Συντεταγμένων

Έστω σύστημα χωρικών συντεταγμένων Α και σύστημα χωρικών

συντεταγμένων Β το κέντρο του οποίου βρίσκεται στη θέση ),,( BBB zyx του Α. Ορίζουμε ως κίνηση μετατόπισης του Β ως προς το Α κατά το χρονικό

διάστημα d=[t0, tf] μια συνάρτηση 3: ℜ→df με f(t)= ))(),(),(( tztytx BBB που

65

Page 72: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

δίνει τις συντεταγμένες του κέντρου του Β στο σύστημα συντεταγμένων του Α για κάθε χρονική στιγμή του διαστήματος.

3.9.4.1.1 Προτεινόμενος Μετασχηματισμός Μετατόπισης

Προτείνουμε έναν γενικής χρήσης μετασχηματισμό μετατόπισης. Πιο σύνθετοι μετασχηματισμοί μπορούν να υλοποιηθούν με μια ακολουθία τέτοιου είδους μετασχηματισμών, με υλοποίηση ενός άλλου μετασχηματισμού ή με χρήση κατασκευών όπως ο PositionInterpolator της VRML.

H μορφή του μετασχηματισμού είναι

++++=

++++=

++++=

ττφτπτ

ττφτπτ

ττφτπτ

zzzzz

yyyyy

xxxxx

vafbzz

vafbyy

vafbxx

2

2

2

21)2cos()0()(21)2cos()0()(21)2cos()0()(

Ο μετασχηματισμός αυτός έχει τρεις όρους: μια αρχική τιμή (που είναι η θέση του

αντικειμένου τη χρονική στιγμή −0t αν θέλουμε συνεχή μετατόπιση) μια ημιτονοειδή

μεταβολή που μας επιτρέπει να εκφράζουμε περιοδικές κινήσεις και μια επιταχυνόμενη κίνηση.

3.9.4.2 Περιστροφή σε ένα Σύστημα Συντεταγμένων

Η περιστροφή σε ένα σύστημα συντεταγμένων Α ενός συστήματος συντεταγμένων Β ορίζεται ως εξής:

Ορισμός 16: Μετατόπιση σε Σύστημα Συντεταγμένων

Έστω σύστημα χωρικών συντεταγμένων Α και σύστημα χωρικών συντεταγμένων Β το κέντρο του οποίου βρίσκεται στη θέση σε σχέση περιστροφής περί τον άξονα (ax,ay,az) με γωνία θ περί του Α. Ορίζουμε ως κίνηση περιστροφής του Β ως προς το Α κατά το χρονικό διάστημα d=[t0, tf]

66

Page 73: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

μια συνάρτηση 4: ℜ→df με f(t) = ))(),(),(),(( ttatata zyx θ που δίνει τον

άξονα και τη γωνία περιστροφής του Β ως προς το Α για κάθε χρονική στιγμή του διαστήματος.

3.9.4.2.1 Προτεινόμενος Μετασχηματισμός Περιστροφής

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

=+=

))0(),0(),0(())(),(),(()(2)( 2

21

zyxzyx aaatatataff ττπτθ

O μετασχηματισμός μας είναι πολύ απλός και περιγράφει μια δευτέρου βαθμού πολυωνυμική μεταβολή της γωνίας περιστροφής περί σταθερό άξονα.

3.9.4.3 Αλλαγή Κλίμακας σε ένα Σύστημα Συντεταγμένων

Η αλλαγή κλίμακας σε ένα σύστημα συντεταγμένων Α ενός συστήματος συντεταγμένων Β ορίζεται ως εξής:

Ορισμός 17: Αλλαγή Κλίμακας σε Σύστημα Συντεταγμένων

Έστω σύστημα χωρικών συντεταγμένων Α και σύστημα χωρικών

συντεταγμένων Β με κλίμακα ),,( zyx sss ως προς το Α. Ορίζουμε ως κίνηση

αλλαγής κλίμακας του Β ως προς το Α κατά το χρονικό διάστημα d=[t0, tf] μια

συνάρτηση 3: ℜ→df με f(t)= ))(),(),(( tststs zyx που δίνει την κλίμακα του

συστήματος Β ως προς αυτή του A για κάθε χρονική στιγμή του διαστήματος d.

3.9.4.3.1 Προτεινόμενος Μετασχηματισμός A λλαγής Κλίμακας

67

Page 74: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Προτείνουμε έναν γενικής χρήσης μετασχηματισμό αλλαγής κλίμακας. Πιο σύνθετοι μετασχηματισμοί μπορούν να υλοποιηθούν με μια ακολουθία τέτοιου είδους μετασχηματισμών, με υλοποίηση ενός άλλου μετασχηματισμού ή με χρήση κατασκευών όπως ο ScaleInterpolator της VRML.

H μορφή του μετασχηματισμού είναι

++++=

++++=

++++=

ττφτπτ

ττφτπτ

ττφτπτ

zzzzz

yyyyy

xxxxx

vafbzz

vafbyy

vafbxx

2

2

2

21)2cos()0()(21)2cos()0()(21)2cos()0()(

Ο μετασχηματισμός αυτός έχει τρεις όρους: μια αρχική τιμή (που είναι η αρχική τιμή

της κλίμακας του αντικειμένου τη χρονική στιγμή −0t αν θέλουμε συνεχή αλλαγή

κλίμακας) μια ημιτονοειδή μεταβολή που μας επιτρέπει να εκφράζουμε περιοδικές αλλαγές κλίμακας και μια επιταχυνόμενη αλλαγή.

3.10Κίνηση με Μεταβολή του Χωρικού Γράφου

Η κίνηση με μεταβολή του χωρικού γράφου χρησιμοποιείται όταν η κίνηση μέσα σε ένα σύστημα συντεταγμένων δεν μπορεί να περιγράψει την κίνηση ή δεν μπορεί να το πράξει με εύκολο και κομψό τρόπο.

Αυτού του είδους η κίνηση συμβαίνει όταν θέλουμε να μετακινήσουμε ένα αντικείμενο σε σχέση με ένα σύστημα συντεταγμένων διαφορετικό του πατέρα του. Το παράδειγμα που ακολουθεί αποτυπώνει μια περίπτωση του προβλήματος:

68

Μύγα

Τραπέζι Βιβλιοθήκη

Μύγα

SR1

SR2

SR3

SR4

Page 75: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Έχουμε μια μύγα πάνω σε ένα τραπέζι το οποίο βρίσκεται πάνω στο πάτωμα. Πάνω στο πάτωμα βρίσκεται επίσης μια Βιβλιοθήκη. Το ΑΚΣΣ του πατώματος είναι το ΠΧωΣΣ της εφαρμογής. Έχουμε το εξής πρόβλημα: πώς μπορούμε να καθορίσουμε την πορεία της μύγας έτσι ώστε να φτάσει πάνω στη Βιβλιοθήκη;

Είναι φανερό πως η πλέον κομψή τελική κατάσταση είναι η Μύγα να βρίσκεται στο γράφο ως παιδί της βιβλιοθήκης, αφού τελικά θα βρίσκεται «πάνω» σε αυτή. Πώς όμως θα επιτύχουμε τη μεταφορά της από την αρχική θέση στην τελική;

Αν μετακινήσουμε τη μύγα σε σχέση με το σύστημα συντεταγμένων του τραπεζιού μπορούμε τελικά να την φέρουμε σε μια θέση «πάνω» στη βιβλιοθήκη. Αυτό όμως είναι δύσκολο γιατί δε γνωρίζουμε που βρίσκεται η βιβλιοθήκη στο σύστημα συντεταγμένων του τραπεζιού (το στόχο δηλαδή της κίνησης). Αντιστοίχως, αν μετακινήσουμε τη Μύγα στο σύστημα συντεταγμένων της Βιβλιοθήκης έχουμε αντίστοιχο πρόβλημα, αφού δε γνωρίζουμε που βρίσκεται η μύγα αρχικά. Η θέση αυτή καθορίζεται με βάση το τραπέζι. Δε γνωρίζουμε δηλαδή την αφετηρία της κίνησης.

Η λύση του προβλήματος αυτού είναι να μετακινήσουμε τη μύγα σε σχέση με ένα σύστημα συντεταγμένων πρόγονο τόσο του τραπεζιού όσο και της βιβλιοθήκης, στην περίπτωση μας του Πατώματος. H Αρχική θέση της Μύγας σε αυτό το σύστημα υπολογίζεται εφαρμόζοντας τους αντίστροφους μετασχηματισμούς invSR2, invSR1 πάνω στο ΑΚΣΣ σύστημα της. Η τελική θέση της Μύγας υπολογίζεται εφαρμόζοντας τους αντίστροφους μετασχηματισμούς invSR3 και invSR4.

Έχοντας υπ’ όψη την αρχική και τελική θέση της μύγας μπορούμε να σχεδιάσουμε μια δράση η οποία να έχει αυτές ως αρχική και τελική θέση. Η μεταφορά της μύγας θα γίνει ως εξής:

1. Αφαίρεση της Μύγας από το Χωρικό Γράφο2. Εισαγωγή της Μύγας στο Χωρικό Γράφο ως παιδί του κόμβου Πάτωμα και σε

χωρική σχέση με αυτόν ισοδύναμη του μονοπατιού (SR1, SR2)3. Mετατόπιση της Μύγας σύμφωνα με τη δράση που σχεδιάστηκε4. Αφαίρεση της Μύγας από το Χωρικό Γράφο5. Εισαγωγή της Μύγας στο Χωρικό Γράφο ως παιδί του κόμβου Βιβλιοθήκη και

σε χωρική σχέση SR4 με αυτόν

69

Πάτωμα

Page 76: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.11Μετασχηματισμός Αντικειμένων

Όπως είδαμε στο κεφάλαιο για τα απλά αντικείμενα, για κάθε απλό αντικείμενο Α,

τη χρονική στιγμή t της εφαρμογής αντιστοιχεί το στιγμιότυπο του tA . Το στιγμιότυπο

αυτό καθορίζεται πλήρως, όπως αναφέραμε με βάση τη γεωμετρία AG του αντικειμένου και τις διαστάσεις του κατά τη χρονική στιγμή t που είναι

nGn

At DdddD +ℜ⊆∈= ),...,,( 21

Τα αντικείμενα της εφαρμογής μας προφανώς δεν παραμένουν σταθερά κατά τη διάρκεια της εφαρμογής. Μπορούν να μετασχηματίζονται, αλλάζοντας έτσι την εμφάνιση. Μπορούν να υφίστανται δύο τύπους μετασχηματισμών:

• Μετασχηματισμοί Εμφάνισης, λ.χ. αλλαγή χρώματος.• Μετασχηματισμοί Γεωμετρικών Διαστάσεων.

Στα πλαίσια του παρόντος θα ασχοληθούμε με μετασχηματισμούς διαστάσεων,

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

τις διαστάσεις του αντικειμένου Α τη χρονική στιγμή t. Παρατηρούμε πως δεν

επιτρέπουμε αλλαγή του τύπου γεωμετρίας AG κατά τη διάρκεια της ζωής του αντικειμένου. Κάθε αντικείμενο, λοιπόν έχει ένα καθορισμένο τύπο γεωμετρίας ο οποίος το συνοδεύει σε όλη τη διάρκεια της ζωής του. Στην περίπτωση που θέλουμε να αντικαταστήσουμε ένα αντικείμενο με ένα άλλο, διαφορετικής γεωμετρίας, μπορούμε να εισάγουμε στη θέση του ένα νέο αντικείμενο το οποίο έχει την επιθυμητή γεωμετρία.

3.11.1Μετασχηματισμός Γεωμετρικών Διαστάσεων Απλού Αντικειμένου

Ο Μετασχηματισμός Διαστάσεων ενός απλού αντικειμένου Α είναι ένας κανόνας

που περιγράφει πως μπορεί ένα αντικείμενο διαστάσεων AD1 τη χρονική στιγμή 0t (αρχή

του μετασχηματισμού) να μετατραπεί σε ένα αντικείμενο διαστάσεων AD2 τη χρονική

στιγμή ft (πέρας του μετασχηματισμού). Προφανώς ισχύει 0tt f > .

70

Page 77: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Ορισμός 18: Μετασχηματισμός Διαστάσεων Απλού Αντικειμένου

Έστω απλό αντικείμενο Α γεωμετρίας G, και χρονικό διάστημα της ενεργού

ζωής του, Af ALttd ∈= ],[ 0 . Ορίζουμε Μετασχηματισμό Διαστάσεων Resize

του απλού αντικειμένου, τη συνάρτηση

Resize: GDd → , Resize AtDt =)(

που καθορίζει τις διαστάσεις του αντικειμένου ανά πάσα χρονική στιγμή του διαστήματος d.

Έστω κώνος C με ενεργό ζωή ]100,0[=CAL και χρονικό διάστημα

]10,5[=d .

Η συνάρτηση )5,43()(:: 2 ttresizedresize +=ℜ→ ορίζει ένα

μετασχηματισμό διαστάσεων του κώνου από το 5o στο 10ο δευτερόλεπτο, κατά τον οποίο η ακτίνα της βάσης του αυξάνει γραμμικά με αρχική τιμή 3m και ρυθμό αύξησης 4m/s και το ύψος του παραμένει σταθερό (5m).

3.11.1.1.1 Προτεινόμενος Μετασχηματισμός Γεωμετρικών Διαστάσεων

Προτείνουμε μια μορφή αναλυτικής συνάρτησης για τον καθορισμό του μετασχηματισμού διάστασης. Αυτή η μορφή, αν και μας περιορίζει, είναι μια καλή προσέγγιση των μετασχηματισμών που συμβαίνουν στην πράξη. Επιπλέον, πιο σύνθετοι μετασχηματισμοί μπορούν να προκύψουν μέσω διαδοχικών εφαρμογών μετασχηματισμών του προτεινόμενου τύπου. Η μορφή του μετασχηματισμού είναι η εξής:

]])[2cos[()( 2210 ττϕτπτ CCCfBAg ++++=

Ο προτεινόμενος μετασχηματισμός είναι γινόμενο μιας ημιτονοειδούς συνάρτησης με μέση τιμή Α και μιας πολυωνυμικής συνάρτησης. Η πρώτη μας δίνει τη δυνατότητα να περιγράψουμε μια περιοδική αλλαγή της διάστασης του αντικειμένου γύρω από μια μέση τιμή. Η δεύτερη μας δίνει τη δυνατότητα να περιγράψουμε μια μεγέθυνση ή σμίκρυνση του αντικειμένου.

71

Page 78: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.11.2Μετασχηματισμός Διαστάσεων Συνθέτου Αντικειμένου

Ένα σύνθετο αντικείμενο είναι ένας XωΓΑ. Οι διαστάσεις του Συνθέτου Αντικειμένου είναι οι διαστάσεις των απλών αντικειμένων που το αποτελούν και οι τιμές των χωρικών σχέσεων που τα συνδέουν.

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

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

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

3.12Έλεγχος Χωρικών Δράσεων

Μέχρι τώρα ασχοληθήκαμε με χωρικές δράσεις που εκτελούνται απρόσκοπτα από τη

χρονική στιγμή 0t έως τη χρονική στιγμή ft σύμφωνα με κάποιο νόμο. Στην πράξη

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

Το παράδειγμα ενός CD Player μας δίνει μια ιδέα του τι θέλουμε να κάνουμε. Μπορούμε να πατήσουμε το play κάποια χρονική στιγμή και να έχει αυτό ως συνέπεια την αναπαραγωγή του ήχου του CD μέχρι το τέλος. Είναι πιο βολικό όμως να μπορούμε να επεμβαίνουμε στην εξέλιξη της αναπαραγωγής με βάση κάποια ελεγκτήρια.

Στην περίπτωση των χωρικών δράσεων προτείνουμε τα ακόλουθα ελεγκτήρια:

72

Page 79: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

• Παίξιμο (play)• Πάγωμα (pause)• Γύρισμα στην Αρχή (rewind)• Τερματισμός (kill)

Ένα διάγραμμα καταστάσεων για αυτά τα ελεγκτήρια και τη συγκεκριμένη λειτουργία τους βρίσκεται στο επόμενο κεφάλαιο. Εδώ αρκούμαστε να πούμε πως μέσω των ελεγκτηρίων ελέγχουμε το χρόνο τ της χωρικής δράσης που καθορίζει το είδος της κίνησης μέσω του νόμου κίνησης. Το παίξιμο αφήνει το χρόνο να κυλήσει, το πάγωμα τον παγώνει στην τελευταία του τιμή, το γύρισμα στην αρχή τον επαναφέρει στην τιμή 0 και ο τερματισμός αφαιρεί τη δυνατότητα πρόσβασης στη χωρική δράση η οποία δεν αντιδρά πλέον σε εντολές των ελεγκτηρίων.

3.13Σύνθετες Χωρικές Δράσεις

Σύνθετη χωρική δράση είναι μια χωρική δράση η οποία αποτελείται από περισσότερες τις μίας χωρικές δράσεις οι οποίες συμβαίνουν με καθορισμένη χρονική σχέση μεταξύ τους. Η έκφραση π.χ. «Κινήσου 10 μέτρα μπροστά και μετά από 3 δευτερόλεπτα άλλαξε κατεύθυνση κατά 180°» είναι παράδειγμα μιας σύνθετης χωρικής δράσης.

Το πρόβλημα της σύνθεσης χωρικών δράσεων έχει δύο παραμέτρους: πώς καθορίζεται η χρονική αλληλουχία των επιμέρους δράσεων και τι συμβαίνει όταν δύο δράσεις επιχειρούν να μετασχηματίσουν την ίδια ποσότητα.

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

3.13.1 Αλληλουχία Χωρικών Δράσεων

Προτείνουμε δύο τύπους γράφων για τον προσδιορισμό της αλληλουχίας. Ο πρώτος είναι η Αλυσίδα Χωρικών Δράσεων.

Ορισμός 19: Αλυσίδα Χωρικών Δράσεων

73

Page 80: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Έστω χωρικές δράσεις 110 ,,, −nAAA με χρονική διάρκεια 110 ,,, −nfff τττ

αντίστοιχα. Ορίζουμε ως αλυσίδα των δράσεων αυτών με τη σειρά που

αναφέραμε τη σύνθετη χωρική δράση που περιλαμβάνει τις δράσεις iA

και ο χρόνος έναρξης της δράσης-i δίνεται από τη σχέση:

∑−=

==

1

00

ij

j

jf

it τ

Όπως βλέπουμε από τον ορισμό, η Χωρική Αλυσίδα αφορά τη διαδοχική εκτέλεση χωρικών δράσεων, κάθε μία από τις οποίες αρχίζει να εκτελείται αμέσως μόλις παύει να εκτελείται η αμέσως προηγούμενη. Σε κάθε χρονική στιγμή, μία από τις χωρικές δράσεις είναι ενεργή.

Ο γράφος που αντιστοιχεί σε αυτή τη μορφή είναι:

Ορισμός 20: Ακολουθία Χωρικών Δράσεων

Έστω χωρικές δράσεις 110 ,,, −nAAA . Mια ακολουθία χωρικών δράσεων

ορίζεται ως Seqi = (τi, controli, Δi), όπου τi θετικό χρονικό διάστημα. control i

ελεγκτήριο και Δ i μία από τις χωρικές δράσεις. Η ακολουθία εκφράζει το ότι το ελεγκτήριο controli θα εφαρμοστεί πάνω στη χωρική δράση Δi τη χρονική στιγμή:

t i = ∑=

=

ij

ji

H ακολουθία χωρικών δράσεων μας επιτρέπει να ορίζουμε χρονικές σχέσεις ανάμεσα σε χωρικές δράσεις με βάση τους χρόνους ενεργοποίησης των διαφόρων χειριστηρίων τους.

Η μορφή του γράφου είναι η ακόλουθη:

74

A1 A2 A3 An-1

Δ0.control

0

Δ1.control

1

Δn-1

.controln-1

t 0

t 1

t n-1

Page 81: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.13.2Στρατηγική Σύνθεσης Δράσεων

Η δεύτερη σημαντική παράμετρος της σύνθεσης δράσεων είναι το τι συμβαίνει όταν δύο χωρικές δράσεις επιχειρούν να μεταβάλλουν την ίδια ποσότητα. Π.χ. μία δράση διατάζει ένα μπαλόνι να ανεβεί στον ουρανό και μία άλλη διατάσει το ίδιο μπαλόνι να κινηθεί δεξιά. Oι δύο δράσεις επικαλύπτονται χρονικά. Το ερώτημα είναι: που θα πάει το μπαλόνι.

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

3.13.2.1 Αγνόηση

Η αγνόηση είναι η πιο απλή στρατηγική που μπορούμε να υλοποιήσουμε. Μια χωρική δράση μπλοκάρει όλες τις χωρικές δράσεις που ζητούν πρόσβαση στην ποσότητα που μετασχηματίζει. Διατηρεί την αποκλειστική πρόσβαση στην ποσότητα αυτή έως ότου τελειώσει την εκτέλεσή της. Οι χωρικές δράσεις που ζητούν πρόσβαση στην ποσότητα αγνοούνται.

Στην περίπτωση του παραδείγματος μας, αν αρχικά το μπαλόνι ανέβαινε στον ουρανό θα συνεχίσει να το κάνει, και η δράση «δεξιά κίνηση» αγνοείται.

3.13.2.2Αντικατάσταση

Η αντικατάσταση είναι μια ακόμα απλή στρατηγική. Όταν εμφανίζεται μια καινούρια χωρική δράση τότε αντικαθιστά αυτήν που προηγούμενα είχε τον έλεγχο της ποσότητας. Έτσι βεβαιωνόμαστε πως μια νεότερη δράση θα εκτελείται πάντοτε.

Στην περίπτωση του παραδείγματος μας, αν το μπαλόνι ανέβαινε αρχικά στον ουρανό, μόλις ενεργοποιηθεί η δράση «δεξιά κίνηση» θα σταματήσει να ανεβαίνει και θα αρχίσει να κινείται δεξιά

75

Page 82: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.13.2.3 Σύνθεση

Η σύνθεση είναι ένας τρόπος για την συνύπαρξη δύο ή περισσότερων χωρικών δράσεων. Μόλις έρθει μια δεύτερη δράση το αντικείμενο αρχίζει να κινείται σαν να εκτελούσε και τις δύο κινήσεις ταυτόχρονα. Το αποτέλεσμα είναι η θέση κάθε σημείου του συστήματος συντεταγμένων που μετακινείται να πάρει τη θέση που είναι το διανυσματικό άθροισμα των θέσεων του αν μετακινείτο ξεχωριστά σύμφωνα με τους δύο νόμους.

Στο παράδειγμά μας, το μπαλόνι θα κινιόταν προς τα πάνω και δεξιά.

3.14Κανόνες Συμπεριφοράς

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

Ένας κανόνας συμπεριφοράς είναι μια περιγραφή του τι θέλουμε να κάνει η εφαρμογή μας (δράση), ως αποτέλεσμα τίνος γεγονότος (αίτιο), και υπό ποιά συνθήκη. Μπορεί να μοντελοποιηθεί δηλαδή με το σχήμα ενός κανόνα ECA (Event – Condition – Action).

Ένας κανόνας ECA είναι της μορφής:«Αν συμβεί το γεγονός Γ και ισχύει η συνθήκη Σ κάνε τη δράση Δ».Επομένως για να μοντελοποιήσουμε συμπεριφορά πρέπει να εξετάσουμε τι

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

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

3.14.1Γεγονότα

76

Page 83: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

Ένα γεγονός είναι μια ειδοποίηση πως κάτι έχει συμβεί που χρειάζεται να αντιμετωπιστεί από την εφαρμογή. Η αξιοποίηση του γεγονότος επαφίεται στην εφαρμογή μέσω των κανόνων συμπεριφοράς που διαθέτει.

Ένα γεγονός συνδέεται με μια χρονική στιγμή της εφαρμογής δηλαδή περιλαμβάνει μια χρονο-σφραγίδα που δηλώνει το πότε έγινε (στο Παγκόσμιο Χρονικό Σύστημα της εφαρμογής). Μπορεί επίσης να περιέχει χωρική πληροφορία (λ.χ. που έγινε ένα κλικ του ποντικιού).

Τα γεγονότα μπορούν να κατηγοριοποιηθούν ως ακολούθως (δες και [VazBoll]):♦ Γεγονότα από αλληλεπίδραση με το χρήστη. Αυτά δημιουργούνται ως

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

♦ Γεγονότα από εσωτερικές λειτουργίες των αντικειμένων της εφαρμογής. Ένα αντικείμενο της εφαρμογής μπορεί να γεννάει γεγονότα.

♦ Γεγονότα από σχέση δύο ή περισσοτέρων αντικειμένων μιας εφαρμογής. Αυτά συμβαίνουν όταν τα αντικείμενα αυτά βρίσκονται σε μια καθορισμένη χωρική σχέση, λ.χ. συγκρούονται, πλησιάζει το ένα το άλλο πέρα από μια απόσταση, κ.ο.κ.

♦ Γεγονότα που προσδιορίζονται από το δημιουργό. Τα γεγονότα αυτά ορίζονται από το δημιουργό και πυροδοτούνται για συγκεκριμένη κατάσταση / σχέση των αντικειμένων της εφαρμογής

Τα γεγονότα που μπορούν να συμβούν είναι είτε ατομικά είτε σύνθετα. Ένα σύνθετο γεγονός αποτελείται από ατομικά γεγονότα σε συγκεκριμένη αλγεβρική ή χωρο-χρονική σχέση. Έχουμε τις εξής σχέσεις:

♦ ΟR. Όταν συμβεί ένα από τα γεγονότα♦ ANY. Όταν συμβούν οποιαδήποτε k από n γεγονόντα♦ SEQ. Όταν συμβούν κάποια γεγονότα με καθορισμένη σειρά♦ TIMES. Όταν συμβεί ένα γεγονός n φορές♦ IN. Όταν συμβεί ένα γεγονός σε ένα χρονικό διάστημα♦ NOT. Όταν δε συμβεί ένα γεγονός σε ένα χρονικό διάστημα♦ AFTER. Όταν το πρώτο γεγονός συμβεί πριν το δεύτερο♦ BEFORE. Όταν το δεύτερο γεγονός συμβεί πριν το πρώτο♦ SIMULTANEOUSLY. Όταν δύο γεγονότα συμβούν ταυτόχρονα

77

Page 84: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μοντέλο Δεδομένων

3.15Συνθήκες

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

Ένα παράδειγμα κανόνα με συνθήκη είναι το εξής: «Αν ο χρήστης κάνει κλικ πάνω στο αντικείμενο, και το αντικείμενο είναι κόκκινο, περιέστρεψε το κατά 90° στο οριζόντιο επίπεδο». Η υπογραμμισμένη φράση είναι παράδειγμα συνθήκης.

Η κατηγοριοποίηση των συνθηκών που παρουσιάζουμε είναι μια πρώτη προσέγγιση:

♦ Συνθήκες ύπαρξης.♦ Συνθήκες κατάστασης αντικειμένου. Γεωμετρικός Τύπος, Διαστάσεις,

Εμφάνιση. Για πολυμεσικό αντικείμενο: κατάσταση (π.χ. «παίζει», «παγωμένο», «ανάποδο παίξιμο», κ.ο.κ.

♦ Συνθήκες θέσης αντικειμένου σε σχέση με άλλο αντικείμενο: «πάνω», «κάτω», «κοντα», «μακριά», «απόσταση μεγαλύτερη των 10 μέτρων».

♦ Συνθήκες κίνησης αντικειμένου σε σχέση με άλλο αντικείμενο: «κινείται», «πλησιάζει», «απομακρύνεται», «ταχύτητα μεγαλύτερη των 7 μέτρων / δευτερόλεπτο».

Και οι συνθήκες μπορούν να συντεθούν σε σύνθετες συνθήκες. Μια σύνθετη συνθήκη είναι μια boolean λογική έκφραση δύο ή περισσότερων απλών ή σύνθετων συνθηκών.

78

Page 85: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

4

4 H Γλώσσα STEDEL

H γλώσσα Spatio-Temporal Descriptive Language είναι το πρακτικό αποτέλεσμα αυτής της εργασίας. Πρόκειται για μια γλώσσα περιγραφική που ακολουθεί σε πολλά σημεία τη φιλοσοφία της VRML αλλά διαθέτει μια σειρά από επιπρόσθετες δυνατότητες που αντικατοπτρίζουν ορισμένα από τα στοιχεία που αναπτύξαμε στο Μοντέλο Δεδομένων.

Η STEDEL είναι μια ερευνητική γλώσσα και βρίσκεται σε διαρκή εξέλιξη. Στο παρόν θα αναφέρουμε τη τρέχουσα γραμματική και σημασιολογία της, επισημαίνοντας ταυτόχρονα και τις δυνατότητες του υπάρχοντος μεταγλωττιστή. Θα αναφερθούμε επίσης στην απεικόνιση των εκφράσεων της STEDEL σε εκφράσεις VRML. Σημειώνεται πως η STEDEL δε διαθέτει επί του παρόντος μια μηχανή εκτέλεσης που να την αναγνωρίζει (ένα Browser ή plugin). Χρησιμοποεί τη VRML ως υπόστρωμα εκτέλεσης. Η διασυνδεσιμότητα της με τη VRML είναι από τους στόχους της γλώσσας, επιτρέποντας μας να χρησιμοποιήσουμε τόσο το λογισμικό της τελευταίας (Browsers, εργαλεία ανάπτυξης) όσο και το γραφικό υλικό που έχει ήδη αναπτυχθεί σε αυτή. Μπορέσαμε έτσι να επικεντρωθούμε στις δυνατότητες της γλώσσας, αποφεύγοντας τη δημιουργία εκ του μηδενός λειτουργικότητας και υλικού που είναι ήδη διαθέσιμο.

79

Page 86: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

4.1 Απαιτήσεις

Οι απαιτήσεις που κλήθηκε να καλύψει η γλώσσα STEDEL είναι οι ακόλουθες:1. Περιγραφή εικονικών κόσμων αποτελούμενων από απλά και σύνθετα

αντικείμενα τοποθετημένα σε χωρικές σχέσεις μεταξύ τους όπως περιγράφηκαν στο προηγούμενο κεφάλαιο. Χρησιμοποίηση της έννοιας του Συνδέσμου για τον καθορισμό αυτών των σχέσεων. Η περιγραφή αυτή να γίνεται μέσω ενός κατευθυνόμενου ακυκλικού γράφου (ΠΧωΓΑ) όπως αναφέρθηκε στα προηγούμενα.

2. Διασυνδεσιμότητα με τη γλώσσα VRML97. Ειδικότερα υπάρχει η απαίτηση αυθαίρετης εισαγωγής ενός ή περισσοτέρων κόμβων VRML στο Παγκόσμιο Χωρικό Γράφο της STEDEL ως κόμβους του ΠΧωΓΑ.

3. Καθορισμό Απλών και Συνθέτων Χωρικών Δράσεων όπως αυτές περιγράφηκαν στα προηγούμενα με μια σύνταξη που θα δίνει στο δημιουργό τη δυνατότητα να περιγράψει διασθητικά την απαιτούμενη κίνηση χωρίς να ενδιαφέρεται για τη χαμηλού επιπέδου υλοποίηση αυτής (scripts και events που την υλοποιούν).

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

4.2 Η Γραμματική και Σημασιολογία της STEDEL

Θα αναφερθούμε τώρα στη Γραμματική και Σημασιολογία της γλώσσας STEDEL, την τρέχουσα προδιαγραφή δηλαδή της γλώσσας . Θα αναφερθούμε στη δομή ενός αρχείου πηγαίου κώδικα της γλώσσας, στις νόμιμες εκφράσεις που μπορεί να περιέχει, καθώς και στο τι σημαίνουν αυτές με βάση όσα αναφέραμε στο προηγούμενο κεφάλαιο για το Μοντέλο Δεδομένων.

4.2.1Η δομή ενός αρχείου STEDEL

Ένα αρχείο STEDEL φέρει την κατάληξη “.stdl”. Περιλαμβάνει, με την ακόλουθη σειρά τα εξής:

80

Page 87: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

1. Μηδέν ή περισσότερους Ορισμούς Απλών Αντικειμένων2. Ένα Παγκόσμιο Χωρικό Γράφο Αντικειμένων3. Μηδέν ή περισσότερα Γεγονότα4. Μηδέν ή περισσότερες Συνθήκες5. Μηδέν ή περισσότερες Χωρικές Δράσεις6. Μηδέν ή περισσότερους Κανόνες Συμπεριφοράς

Δηλαδή ένα αρχείο STEDEL μπορεί να περιγραφεί με την ακόλουθη γραμματική:

<STEDEL> ::= ObjectDefinitions { {<SimpleObjectDefinition>} }<SpatialGraph>{<Event>}{<Condition>}{<Action>}{<Rule>}

Εμβόλιμα στον κώδικα της STEDEL μπορούν να παρεμβληθούν σχόλια με τη μορφή αρχικού χαρακτήρα ‘#’ και μιας οποιασδήποτε ακολουθίας χαρακτήρων έως το χαρακτήρα νέας γραμμής ‘\n’. Ό,τι βρίσκεται μεταξύ των δύο αυτών χαρακτήρων αγνοείται από το μεταγλωττιστή.

4.2.2Ορισμός Απλού Αντικειμένου

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

Οι γεωμετρικοί τύποι που επιτρέπονται στη STEDEL είναι οι ακόλουθοι:1. Σφαίρα (διάσταση radius)2. Kύλινδρος (διαστάσεις radius, height)3. Κώνος (διαστάσεις bottomRadius, height)

81

Page 88: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

4. Κουτί (διαστάσεις size[0], size[1], size[2])5. Ειδικός (Custom)

Τα αντικείμενα των τύπων 1-4 προσδιορίζονται μέσω ενός αναγνωριστικού και των γεωμετρικών τους διαστάσεων όπως αναφέραμε. Για το αντικείμενο τύπου Custom πρέπει να προσδιοριστεί επιπρόσθετα μέσω ενός αναγνωριστικού ο συγκεκριμένος τύπος του αντικειμένου. Για αυτόν τον τύπο πρέπει να είναι διαθέσιμος ο ορισμός, υπό μορφή PROTO της VRML.

Η εμφάνιση που επιτρέπεται από τη STEDEL είναι μια από τις:1. Χρώμα (συνιστώσες Kόκκινο, Πράσινο, Μπλε με διάστημα τιμών [0,1]).

Επιπρόσθετα μπορεί ο χρήστης να αναφέρει αν το χρώμα θα είναι εκπεμπόμενο, ή παθητικό, δηλαδή αν το αντικείμενο θα «λαμπει».

2. Υφή (μέσω ενός URL το οποίο περιέχει ένα αρχείο εικόνας GIF ή JPEG)

Ο ορισμός ενός Απλού Αντικειμένου σύμφωνα με τα παραπάνω γίνεται ώς εξής:

<SimpleObjectDefinition> ::= DEF <ID> <SimpleObject>

<SimpleObject> ::= <Geometry> [<Appearance>]

<Geometry> ::= <Sphere> | <Cylinder> | <Cone> | <Box> | <Custom>

<Sphere> ::= Sphere { radius <FLOAT> }

<Cylinder> ::= Cylinder { radius <FLOAT> height <FLOAT> }

<Cone> ::= Cone { bottomRadius <FLOAT> height <FLOAT> }

<Box> ::= Box { size <FLOAT> <FLOAT> <FLOAT> }

<Custom> ::= Custom <ID> { {<ID> <FLOAT>} }

<Appearance> ::= <Color> | <Texture>

<Color> ::= color [emissive] <FLOAT> <FLOAT> <FLOAT>

82

Page 89: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

<Texture> ::= texture “ <URL> ”

Τα ακόλουθα παραδείγματα είναι διάφοροι σωστοί ορισμοί απλών αντικειμένων:

DEF MySphere Sphere { radius 2.3 }

DEF Pole Cylinder { radius 0.2 height 10 } color 0.2 0.7 0

DEF Body_12 Box { size 2 3 4 } texture “metal.jpg”

DEF Cheops Custom Pyramid { bottomWidth 200 bottomLength 300 height 300} texture “http://www.egyptology.net/stone.gif”

4.2.3Παγκόσμιος Χωρικός Γράφος Αντικειμένων

Ο Παγκόσμιος Χωρικός Γράφος Αντικειμένων περιγράφει την χωρική ιεραρχία των αντικειμένων της εφαρμογής και περιλαμβάνει Απλά Αντικείμενα και Χωρικές Σχέσεις ανάμεσα σε απλά αντικείμενα, σύμφωνα με όσα περιγράψαμε στο Μοντέλο Δεδομένων. Πέρα από αυτά περιλαμβάνει και πληροφορία για τους αισθητήρες της εφαρμογής (λ.χ. ποια αντικείμενα είναι touch-sensitive) καθώς και για άλλα μη-γεωμετρικά αντικείμενα όπως π.χ. πηγές ήχου.

<SpatialGraph> ::= <SimpleObject> | <SimpleObjectDefinition>| <ParentSpatialGraph>

83

Page 90: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

<ParentSpatialGraph> ::= SpatialGraph [< <SensorsNonGeometryList> >] [<ID>]

[<SimpleObject>]{ <BranchList> }

<SensorsNonGeometryList> ::= {<TouchSensor> | <SoundSource> }

<TouchSensor> ::= Touch <ID>

<SoundSource> ::= Sound <ID>

<BranchList> ::= {<SpatialRelationship> <SpatialGraph>} | no_children

<SpatialRelationShip> ::= [<FromJoint>] <SimpleTransform> [<ToJoint>]

<SimpleTransform> ::= { <Translation> | <Rotation> | <Scale> }

<Translation> ::= translation <FLOAT> <FLOAT> <FLOAT>

| <SimpleTranslation>

<SimpleTranslation> ::= xpos <FLOAT> | ypos <FLOAT> | zpos <FLOAT>

<Rotation> ::= rotation <FLOAT> <FLOAT> <FLOAT>

| <SimpleRotation>

<SimpleRotation> ::= xrot <FLOAT> yrot <FLOAT> zrot <FLOAT>

<Scale> ::=scale <FLOAT> <FLOAT> <FLOAT>

| <SimpleScale>

<SimpleScale> ::= xscale <FLOAT> | yscale <FLOAT> | zscale <FLOAT>

84

Page 91: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

<FromJoint> ::= from <Joint>

<ToJoint> ::= to <Joint> <Joint> ::= <SimpleJoint> | <ComplexJoint>

<SimpleJoint> ::= <JointCoordSystem> <PerpendicularDirection>

<PerpendicularDirection> ::= in | out

< JointCoordSystem > ::=<ZeroParameterKeyword>

| <SingleParameterKeyword> <Float>| <DoubleParameterKeyword> <Float> <Float>

<ZeroParameterKeyword> ::= top | bottom | left | right | front | back

<SingleParameterKeyword> ::= side

<DoubleParameterKeyword> ::= surface <ComplexJoint> ::= (<SimpleJoint> , <SimpleJoint>, <SimpleJoint> )

Ο αναγνώστης που διάβασε το προηγούμενο κεφάλαιο δε θα δυσκολευτεί να κατανοήσει τη σημασιολογία του <SpatialGraph>. Ένας <SpatialGraph> είναι είτε <ParentSpatialGraph> (έχει παιδια) είτε <SimpleObject>. Στην περίπτωση που έχει παιδιά δηλώνεται ο τύπος του Απλού Αντικειμένου του κόμβου ρίζα του <SpatialGraph> και τα παιδιά δηλώνονται μέσα σε άγκιστρα με τη χωρική σχέση που τα συνδέει.

Σημειώνεται πως η τρέχουσα έκδοση του compiler της STEDEL δεν υποστηρίζει τις τρεις τελευταίες εκφράσεις <SingleParameterKeyword>, <DoubleParameterKeyword> και <ComplexJoint>. Έχουν υλοποιηθεί δηλαδή μόνο οι απλοί σύνδεσμοι του Κουτιού. Σημειώνεται όμως πως αυτοί μπορούν να χρησιμοποιηθούν και για αντικείμενα διαφορετικής γεωμετρίας οπότε αναφέρονται στο ελάχιστο περιμβάλλον κουτί τους.

Μια ακόμα παρατήρηση είναι πως αμέσως μετά τη λέξη κλειδί SpatialGraph μπορεί να παρεμβληθεί μέσα σε < > δηλώσεις ότι αυτό το αντικείμενο δέχεται κλικ του ποντικιού <TouchSensor> ή οτι μπορεί να είναι πηγή μουσικής.

85

Page 92: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Ένα απλό παράδειγμα Χωρικού Γράφου ακολουθεί. Πιο σύνθετα παραδείγματα θα δοθούν στο επόμενο κεφάλαιο.

SpatialGraph <Touch TOUCH1> ChristmasTree Cylinder { radius 0.2 height 0.7 } color 0.7 0.2 0.2{ from top out to bottom in SpatialGraph Branches Cone { bottomRadius 0.8 height 2 } color 0 0 1 { from top out to bottom in SpatialGraph Cross Box { size 0.1 0.5 0.1 } { zrot 1.5708 Box {size 0.1 0.5 0.1} } }}

To αποτέλεσμα αυτού του ορισμού φαίνεται παρακάτω:

86

Page 93: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

4.2.4Γεγονότα – Συνθήκες

Όπως αναφέραμε, δεν ασχοληθήκαμε εκτενώς με γεγονότα και συνθήκες στην παρούσα εργασία. Επομένως οι παραγωγές <Event> και <Condition> απομένουν να γίνουν στο μέλλον.

Χρησιμοποιούμε τα εξής γεγονότα.♦ Σε κάθε εφαρμογή STEDEL υπάρχει το γεγονός αρχής Startup το οποίο

συμβαίνει κατά την έναρξη της εφαρμογής.♦ Υπάρχουν τα γεγονότα «κλικ του ποντικιού» για τους χωρικούς υπο-γράφους

που περιλαμβάνουν <TouchSensor> παραγωγή στον ορισμό τους. Π.χ. στο προηγούμενο παράδειγμα υπάρχει το γεγονός TOUCH1.

♦ Yπάρχει το γεγονός Finished για κάθε δράση της εφαρμογής, το οποίο συμβαίνει μόλις τελειώσει κανονικά την εκτέλεση της.

4.3 Δράσεις

Μια δράση περιγράφεται με την ακόλουθη γραμματική:

<Action> ::= (<HideAction> | <ShowAction> | <MoveAction> | <RotateAction>

| <ScaleAction> | <TimeGapAction> | <SoundAction> | <ActionChain> | <Sequence> | <UseAction>)

[is <ID>]

<HideAction> ::= HideChildren <ID>

<ShowAction> ::= Parent <ID> Children { <ID> }

<MoveAction> ::= Move <ID> [ΤοJoint] [For <FLOAT> sec] WithLaw [ <ActionParameters> ]

<RotateAction> ::= Rotate <ID> [ΤοJoint] [For <FLOAT> sec] WithLaw [ <ActionParameters> ]

<ScaleAction> ::= Scale <ID> [ΤοJoint] [For <FLOAT> sec]

87

Page 94: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

WithLaw [ <ActionParameters> ]

<ActionParameters> ::= {<ID> | <FLOAT>}

<TimeGapAction> ::= <FLOAT> [sec]

<SoundAction> ::= Sound "<URL>" Source <ID>

<ActionChain> ::= ActionChain { {<Action>} }

<Sequence> ::= Sequence { {<SequenceItem>} }

<SequenceItem> ::= [ <FLOAT> [sec]] <Control> <Action>

<Control> ::= play | pause | kill | rewind

<UseAction> ::= USE <ID>

H λειτουργικότητα των δράσεων αναπτύσσεται στο υπο-κεφάλαιο Απεικόνιση σε VRML όπου παρουσιάζουμε τα script με τα οποία υλοποιήσαμε αυτές τις συμπεριφορές. Εδώ αναφέρουμε πως η λέξη ΤοJoint σημαίνει μετακίνηση του αντικειμένου όχι από το σύστημα συντεταγμένων του κέντρου του αλλά από το σύστημα συντεταγμένων του ΤΟ συνδέσμου που οδηγεί σε αυτό.

4.4 Κανόνες Συμπεριφοράς

Ένας κανόνας συμπεριφοράς περιγράφεται με την ακόλουθη γραμματική:

<Rule> ::= <TriggeringEvent> <Control> <ActionID>

<TriggeringEvent> ::= Startup | Touch <ID> | Finished <ID>

<Control> ::= play | pause | kill | rewind

<ActionID> ::= <ID>

88

Page 95: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Η έκφραση Touch <ID> δηλώνει πως έχει γίνει κλικ πάνω σε αντικείμενο του χωρικού γράφου που έχει ορίσει TouchSensor με το συγκεκριμένο ID. H έκφραση Finished <ID> δηλώνει πως έχει τελειώσει η δράση με το συγκεκριμένο ID.

To <ΑctionID> είναι το αναγνωριστικό της δράσης που ξεκινάει αυτός ο κανόνας.

4.5 Ανάπτυξη

Η ανάπτυξη του μεταγλωττιστή της γλώσσας STEDEL έγινε με χρήση της γλώσσας Java (JDK 1.1.7 και JDK 1.2) και σε περιβάλλοντα Red Hat Linux 5.2 και Microsoft Windows. Για τη συγγραφή του κώδικα χρησιμοποιήθηκε ο προγραμματιστικός κειμενογράφος ΕditPlus (http://www.editplus.com/) σε περιβάλλον Windows και ο Emacs σε περιβάλλον KDE πάνω στο Linux.

H δημιουργία του μεταγλωττιστή έγινε με χρήση του εργαλείου JavaCC (http://www.sun.com/suntest/). Το εργαλείο αυτό δέχεται ως είσοδο μια περιγραφή των κανόνων παραγωγής της γλώσσας σε μια BNF-like μορφή, καθώς και εμβόλιμο κώδικα Java ο οποίος καθορίζει τις ενέργειες που πρέπει να γίνουν κατά την αναγνώριση των εκφράσεων της γλώσσας. Το εργαλείο JavaCC βοηθάει τον προγραμματιστή, διεκπεραιώνοντας τη λεκτική και συντακτική ανάλυση. Επιπλέον κάνει την περιγραφή της γραμματικής της γλώσσας εύκολα τροποποιήσιμη, μέσω της αλλαγής των κανόνων παραγωγής στο αρχείο περιγραφής της γλώσσας.

Για την ανάπτυξη κώδικα VRML δε χρησιμοποιήθηκε συστηματικά κάποιο εργαλείο προγραμματισμού ή ανάπτυξης με βάση αυτή τη γλώσσα. Η συγγραφή του κώδικα έγινε με τους κειμενογράφους που προαναφέρθηκαν. Για την οπτικοποίηση της VRML χρησιμοποιήθηκε ο Cosmo Player 2.1 της Silicon Graphics (http://cosmosoftware.sgi.com/), ένας browser της γλώσσας υπό μορφή plugin του γενικού Web browser (Νetscape Communicator και Internet Explorer).

4.6 Απεικόνιση σε VRML97

Θα αναφερθούμε τώρα στην απεικόνιση των εκφράσεων της Spatio-Temporal Description Language (STEDEL) σε εκφράσεις της Virtual Reality Modeling Language (VRML97). Θα δείξουμε την αντιστοίχηση ανάμεσα στις δύο γλώσσες και θα περιγράψουμε την εργασία που έγινε για υλοποίηση των συνθέτων εκφράσεων της STEDEL σε VRML.

89

Page 96: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Οι δύο γλώσσες έχουν πολλά κοινά στοιχεία τόσο στη φιλοσοφία τους όσο και στη μορφή τους. Και οι δύο περιγράφουν τον εικονικό κόσμο μέσω ενός γράφου αντικειμένων (Scene Graph της VRML και Παγκόσμιος Χωρικός Γράφος Αντικειμένων της STEDEL). Kαι οι δύο επίσης ακολουθούν το μοντέλο των γεγονότων για να περιγράψουν την συμπεριφορά της εφαρμογής (Sensor κόμβοι και ROUTE Graph στη VRML και Event-Action κανόνες στην STEDEL).

Όπως θα δούμε, πολλά στοιχεία της STEDEL μπορούν να μεταγλωττιστούν σχεδόν άμεσα σε στοιχεία VRML (λ.χ. ένας Απλός Χωρικός Μετασχηματισμός αντιστοιχεί σε ένα Transform κόμβο). Για άλλα στοιχεία (π.χ. Σύνδεσμοι), η αντιστοίχηση είναι πιο δύσκολη αλλά μπορεί πάλι να εκφραστεί με στοιχεία της γλώσσας (ένας Σύνδεσμος αντιστοιχεί σε ένα Transform κόμβο με κάποιες παραμέτρους translation, rotation κλπ. που πρέπει να υπολογιστούν). Τέλος, υπάρχουν κάποια χαρακτηριστικά της STEDEL η αντιστοίχηση των οποίων σε VRML είναι πιο περίπλοκή, όπως λ.χ. οι διάφορες δράσεις που υποστηρίζει η STEDEL (μετασχηματισμοί διαστάσεων, κίνηση, ήχος). Η υλοποίηση αυτών των στοιχείων έγινε με συγγραφή μιας σειράς από Script PROTOs σε VRML τα οποία έχουν συγκεκριμένη και αυστηρά καθορισμένη λειτουργικότητα και υλοποιούν συγκεκριμένες δράσεις της STEDEL.

Θα αναφερθούμε αναλυτικά στην απεικόνιση STEDEL προς VRML, κάνοντας ιδιαίτερη μνεία για τα Script PROTOs που υλοποιήσαμε. Αυτά είναι ένα σημαντικό κομμάτι της εργασίας και ενδιαφέρουν κάθε χρήστη VRML αφού δε σχετίζονται άμεσα με τη γλώσσα που προτείνουμε και μπορούν να ενσωματωθούν δίχως δυσκολία σε μια εφαρμογή η οποία έχει γραφεί εξ' ολοκλήρου σε VRML. Αποτελούν μια αρκετά πλήρη βιβλιοθήκη γενικών δράσεων που μπορούν να προσαρμοστούν στις ανάγκες μιας ευρείας κλίμακας εφαρμογών Εικονικής Πραγματικότητας.

4.6.1Aρχή Εφαρμογής (InitialEvent)

To ΙnitialEvent είναι ένα πολύ απλό script το οποίο εκπέμπει το eventOut timeOrigin με την έναρξη της εφαρμογής. Το δημιουργήσαμε για χάρη ευκολίας. Σε συνδυασμό με το TimeDelayScript που θα αναφέρουμε αμέσως μετά, μας δίνει τη δυνατότητα να αναφερθούμε σε οποιαδήποτε χρονική στιγμή της εφαρμογής.

90

InitialEvent { eventOut SFTime timeOrigin}

Page 97: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

To InitialEvent αντιστοιχεί στο Startup γεγονός της STEDEL.

4.6.2Xρονική Καθυστέρηση (TimeDelayScript)

Το TimeDelayScript υλοποεί χρονικά διαστήματα. Το πεδίο duration καθορίζει το μήκος του χρονικού διαστήματος σε sec. Το eventOut finished εκπέμπεται duration δευτερόλεπτα αφού ληφθεί το play eventIn.

To TimeDelayScript μπορεί να συνδυαστεί με το script ActionChain και να υλοποιήσει μια ακολουθία από events σε καθορισμένα χρονικά σημεία της εφαρμογής.

Το TimeDelayScript ντιστοιχεί στο <ΤimeGapAction> της STEDEL.

4.6.3Εκτέλεση Ήχων (SoundScript)

H εκτέλεση ήχων είναι μια πολυμεσική δράση που υποστηρίζει επί του παρόντος η γλώσσα STEDEL. Υλοποιήσαμε ένα απλό script το οποίο μας επιτρέπει να χειριζόμαστε την εκτέλεση ήχων με όμοιο τρόπο με τις άλλες δράσεις. Το πεδίο sound_url είναι η πηγή του ηχητικού περιεχομένου (ένα αρχείο MIDI ή WAV). Το πεδίο sound δείχνει σε έναν κόμβο τύπου Sound της VRML που είναι η προέλευση του ήχου στο χώρο της εφαρμογής. Το eventIn play ξεκινά την ηχητική αναπαραγωγή και το kill τη σταματά.

91

TimeDelayScript {field SFTime duration 0eventIn SFTime playeventOut SFTime finished

]

SoundScript {field MFString sound_url ""field SFNode sound NULLeventIn SFTime playeventIn SFTime killeventOut SFTime finished

}

Page 98: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Δεν υποστηρίζεται pause, resume, fast forward, rewind και άλλες δυνατότητες που παρέχουν συνήθως τα συστήματα αναπαραγωγής ήχου.

Μετά το πέρας του ηχητικού κοματιού παράγεται ένα eventOut finished το οποίο ειδοποιεί το περιβάλλον του αντικειμένου πως η εκτέλεση έχει τελειώσει. Αυτό έχει σημασία για να αποτρέψουμε λ.χ. την απόπειρα ταυτόχρονης αίτησης για εκτέλεση διαφόρων κομματιών, κάτι που ίσως δεν υποστηρίζεται. Το πρότυπο VRML αναφέρει πως πρέπει να μπρορούν να παιχτούν τουλάχιστον 3 ήχοι ταυτόχρονα.

Το SoundScript αντιστοιχεί στο SoundAction της STEDEL.

4.6.4Εμφάνιση Αντικειμένου (ShowScript)

To ShowScript υλοποιεί την εμφάνιση ενός αντικειμένου. Το αντικείμενο, που αποτελείται από τους κόμβους VRML που ορίζονται μέσω του πεδίου objects εισέρχεται στον γράφο σκηνής ως παιδί του κόμβου που ορίζεται από το πεδίο parent. Η εισαγωγή γίνεται όταν ληφθεί το eventIn play. Αμέσως, παράγεται το eventOut finished.

To ShowScript αντιστοιχεί στο <ShowAction> της STEDEL.

4.6.5Aπόκρυψη Αντικειμένου (HideScript)

To HideScript υλοποιεί την απόκρυψη ενός αντικειμένου. Το αντικείμενο, που αποτελείται από τους κόμβους VRML που ορίζονται μέσω του πεδίου objects εξάγεται

92

ShowScript {field MFNode objects []field SFNode parent NULLeventIn SFTime playeventOut SFTime finished

}

HideScript {field MFNode objects []field SFNode parent NULLeventIn SFTime playeventOut SFTime finished

}

Page 99: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

από το γράφο σκηνής, παύοντας να είναι παιδιά του κόμβου που ορίζεται μέσω του πεδίου parent μόλις δεχτεί το eventIn play. Εφόσον κάποιοι από τους κόμβους αυτούς δεν είναι παιδιά του κόμβου parent τότε απλά αγνοούνται. Μόλις συμβεί η απόκρυψη παράγεται ένα eventOut finished.

Το HideScript αντιστοιχεί στο <HideAction> της STEDEL.

4.6.6Μετατόπιση Αντικειμένου (TranslationScript)

To TranslationScript υλοποιεί τη μετατόπιση αντικειμένων, μεταβάλλοντας το πεδίο translation του Transform κόμβου που καθορίζεται από το πεδίο node. Η αλλαγή διαρκεί duration δευτερόλεπτα. Αν το πεδίο duration είναι –1 τότε η μετατόπιση γίνεται επ’ άπειρον. Η παράμετρος time_step καθορίζει το χρονικό βήμα της μετατόπισης. Μικρή τιμή οδηγεί σε πιο ομαλή μετατόπιση αλλά και σε αυξημένο υπολογιστικό κόστος. Η τιμή αυτής της παραμέτρου αν δεν καθοριστεί, είναι 0.1 δευτερόλεπτα.

Ο νόμος της μετατόπισης, δηλαδή η ακριβής θέση όπως αυτή καθορίζεται από το πεδίο translation του κόμβου node, καθορίζεται από το πεδίο law το οποίο είναι ένας κόμβος Script που είναι παρόμοιος σε υλοποίηση με τον κόμβο TranslationLaw που θα αναφέρουμε παρακάτω. Η απαίτηση από αυτό τον κόμβο είναι να δέχεται ένα eventIn SFTime time με μια χρονική στιγμή σε δευτερόλεπτα και παράγει ένα eventOut SFVec3f με τη μετατόπιση για τη χρονική στιγμή αυτή. Η μετατόπιση αυτή πρέπει να εκφράζεται σε σχέση με την τιμή του πεδίου translation του κόμβου node κατά την έναρξη της δράσης.

Η μετατόπιση αρχίζει όταν το αντικείμενο τύπου TranslationScript λάβει το πρώτο eventIn play. Σταματάει όταν ληφθεί ένα eventIn pause. Αν το αντικείμενο δεχτεί ένα eventIn kill τότε γίνεται ανενεργό και σταματάει να αντιδρά στα ερεθίσματα του

93

TranslationScript { field SFTime duration -1

field SFTime time_step 0.1field SFNode law NULLfield SFNode node NULLeventIn SFTime playeventIn SFTime pauseeventIn SFTime rewindeventIn SFTime killeventOut SFTime finished

}

Page 100: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

περιβάλλοντος. Aν το αντικείμενο δεχτεί ένα eventIn rewind τότε επανέρχεται στην αρχική του κατάσταση. Αν τη στιγμή εκείνη ήταν ενεργό, τότε συνεχίζει να είναι, αλλιώς παραμένει παγωμένο. Μετά το κανονικό πέρας της μετατόπισης, δηλαδή μετά την πάροδο του διαστήματος duration, αγνοώντας τα χρονικά διαστήματα κατά τα οποία το αντικείμενο δεν ήταν ενεργό παράγεται ένα eventOut finished, το οποίο ειδοποιεί το περιβάλλον του αντικειμένου πως η μετατόπιση έχει ολοκληρωθεί.

Αν μετά το πέρας της μετατόπισης, το αντικείμενο δεχτεί ένα καινούριο eventIn play, τότε αρχίζει μια νέα μετατόπιση με τον ίδιο νόμο. Σημειώνεται, πως εφόσον η μετατόπιση εκφράζεται σε σχέση με την αρχική τιμή της θέσης, η νέα μετατόπιση που θα συμβεί, θα είναι επανάληψη της προηγούμενης αλλά μετατοπισμένη κατά το διάστημα που έχει μετακινηθεί το αντικείμενο στον ενδιάμεσο χρόνο.

Το ακόλουθο διάγραμμα καταστάσεων δείχνει τις καταστάσεις του αντικειμένου και τη μετάβαση ανάμεσα σε αυτές ως απόρροια γεγονότων:

Τα παρακάτω είναι παραδείγματα έγκυρων ορισμών TranslationScript:

TranslationScript {node USE F16duration 5time_step 0.2law USE MyLaw

}

TranslationScript { node USE MiG29 duration –1 time_step 0.01 law Script { eventIn SFTime time

94

InitialPlaying

play

pause

Paused

play

Killed

killkill

kill

normaltermination

rewind

Διάγραμμα ΚαταστάσεωνΧωρικών Δράσεων

Page 101: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

eventOut SFTime translation url "SimpleTranslation.class" } }

4.6.7Nόμος Μετατόπισης (TranslationLaw)

To Script αυτό υλοποιεί μια μετατόπιση ενός συστήματος συντεταγμένων σύμφωνα με τον ακόλουθο νόμο:

+++=

+++=

+++=

vztaztphasezfreqztbztz

vytaytphaseyfreqytbyty

vxtaxtphasexfreqxtbxtx

2)2cos()(

2)2cos()(

2)2cos()(

2

2

2

π

π

π

95

TranslationLaw {field SFFloat bx 0field SFFloat freqx 1field SFFloat phasex 0field SFFloat vx 0field SFFloat ax 0field SFFloat by 0field SFFloat freqy 1field SFFloat phasey 0field SFFloat vy 0field SFFloat ay 0field SFFloat bz 0field SFFloat freqz 1field SFFloat phasez 0field SFFloat vz 0field SFFloat az 0eventIn SFTime timeeventOut SFVec3f translation

}

Page 102: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Οι τιμές αυτές εξάγονται μέσω του eventOut translation κάθε φορά που το αντικείμενο δέχεται ένα eventIn time. To translation που εξάγεται είναι κάθε φορά το αντίστοιχο του time σύμφωνα με τον παραπάνω νόμο.

Σημειώνεται πως εάν ο δημιουργός θέλει να χρησιμοποιήσει ένα διαφορετικό νόμο κίνησης από τον παραπάνω, αρκεί να γράψει ένα αντίστοιχο με το TranslationLaw script της VRML το οποίο πρέπει απαραιτήτως να έχει τα δύο events time και translation.

Tα TranslationLaw και TranslationScript αντιστοιχούν στο <MoveAction> της STEDEL.

Tα ακόλουθα παραδείγματα είναι έγκυροι ορισμοί TranslationLaw. To πρώτο δηλώνει μια επιταχυνόμενη κίνηση στο x-άξονα με αρχική ταχύτητα 2m/sec και επτάχυνση 1.2 m/sec2. To δεύτερο μια ελλειπτική κίνηση περί τον z-άξονα με μεγάλο ημιάξονα 15m, μικρό ημιάξονα 10m και συχνότητα 3Hz.

TranslationLaw { vx 2.0 ax 1.2}

TranslationLaw { bx 10 by 15 freqx 3 freqy 3 phasey 1.5708 # 90 degrees}

4.6.8Περιστροφή Αντικειμένου (RotationScript)

To RotationScript υλοποιεί την περιστροφή αντικειμένων, μεταβάλλοντας το πεδίο rotation του Transform κόμβου που καθορίζεται από το πεδίο node. H λειτουργία του

96

RotationScript {field SFTime duration -1field SFTime time_step 0.1field SFNode law NULLfield SFNode node NULLeventIn SFTime playeventIn SFTime pauseeventIn SFTime rewindeventIn SFTime killeventOut SFTime finished

}

Page 103: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

script αυτού είναι ακριβώς όμοια με αυτή του TranslationScript που περιγράφηκε παραπάνω, αν αντικαταστήσουμε την έννοια του translation με την έννοια του rotation.

To παρακάτω είναι παράδειγμα έγκυρου ορισμού RotationScript:

RotationScript {node USE Earthduration -1law USE DailyRotation

}

4.6.9Νόμος Περιστροφής (RotationLaw)

Aυτό το script υλοποιεί μια περιστροφή περί τον άξονα που καθορίζεται από το πεδίο axis. Η περιστροφή είναι δεξιόστροφη αν το πεδίο righthand είνα TRUE, αλλιώς είναι αριστερόστροφη. Η γωνία περιστροφής για χρόνο t δίνεται από την ακόλουθη σχέση:

)(2)( 221 tfreqtfreqta += π

Η λειτουργία του script μέσω των time και rotation είναι αντίστοιχη με αυτή που περιγράφηκε για το TranslationLaw.

Τα RotationScript και RotationLaw αντιστοιχούν στο <RotateAction> της STEDEL.Οι παρακάτω είναι έγκυροι ορισμοί RotationScript. Το πρώτο απο αυτά περιγράφει

την περιστροφή της γής με συχνότητα 1 φορά / 24 ώρες περί τον άξονα περιστροφής της. Το δεύτερο περιγράφει μια επιβραδυνόμενη περιστροφή με αρχική συχνότητα 20Hz.

DEF EarhRotation RotationLaw { RotationLaw {

97

RotationLaw {field SFFloat freq1 0field SFFloat freq2 0field SFVec3f axis 1 0 0field SFBool righthand TRUEeventIn SFTime timeeventOut SFRotation rotation

}

Page 104: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

axis 0 1 0 freq1 0.00001157 # 1/(24*3600)}

axis 2 6 1 freq1 20 freq2 –2}

4.6.10Αλλαγή Κλίμακας Αντικειμένου (ScaleScript)

To ScaleScript υλοποιεί την περιστροφή αντικειμένων, μεταβάλλοντας το πεδίο scale του Transform κόμβου που καθορίζεται από το πεδίο node. H λειτουργία του script αυτού είναι ακριβώς όμοια με αυτή του TranslationScript που περιγράφηκε παραπάνω, αν αντικαταστήσουμε την έννοια του translation με την έννοια του scale.

To παρακάτω είναι παράδειγμα ενός έγκυρου ορισμού ScaleScript:

DEF BigBang ScaleScript { node USE TheUniverse duration –1 law USE HubbleExpansion}

4.6.11Νόμος Αλλαγής Κλίμακας Αντικειμένου (ScaleLaw)

98

ScaleScript {field SFTime duration -1field SFTime time_step 0.1field SFNode law NULLfield SFNode node NULLeventIn SFTime playeventIn SFTime pauseeventIn SFTime rewindeventIn SFTime killeventOut SFTime finished

}

Page 105: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

O νόμος αυτός λειτουργεί παρόμοια με το TranslationLaw που αναφέραμε προηγουμένως με τη διαφορά βέβαια πως το eventOut scale που εξάγεται για κάθε eventIn time που δέχεται το αντικείμενο τύπου ScaleLaw περιέχει μια κλίμακα. Καθώς η VRML δεν επιτρέπει αρνητική κλίμακα (λ.χ. το μεταχηματισμό καθρέφτη: scale –1 –1 –1 ), πρέπει ο δημιουργός να φροντίσει ώστε για τις τιμές του time που θα δεχτεί το αντικείμενο αυτό, οι τιμές του scale που θα εξαχθεί σύμφωνα με τις παραμέτρους του μετασχηματισμού να είναι θετικές.

Τα ScaleScript και ScaleLaw αντιστοιχούν στο <ScaleAction> της STEDEL.Τα ακόλουθα είναι παραδείγματα έγκυρων μετασχηματισμών scale:

DEF Explosion ScaleLaw { ax 2.0 ay 3.0 az 3.0}

DEF Shrink Scale Law{ vx –2 vy –2 vz –2}

To πρώτο από αυτά τα scripts υλοποιεί μια έκρηξη του χώρου (μια επιταχυνόμενη διαστολή δηλαδή) η οποία μάλιστα διαδίδεται ταχύτερα στo yz-επίπεδο. Το δεύτερο αντιπροσωπεύει μια συρρίκνωση του χώρου. Aν χρησιμοποιήσουμε αυτό το script πρέπει

99

ScaleLaw {field SFFloat bx 0field SFFloat freqx 1field SFFloat phasex 0field SFFloat vx 0field SFFloat ax 0field SFFloat by 0field SFFloat freqy 1field SFFloat phasey 0field SFFloat vy 0field SFFloat ay 0field SFFloat bz 0field SFFloat freqz 1field SFFloat phasez 0field SFFloat vz 0field SFFloat az 0eventIn SFTime timeeventOut SFVec3f scale

}

Page 106: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

να προσέξουμε έτσι ώστε ο χώρος να μη συρρικνωθεί πέραν του scale 0 0 0 γιατί αυτό θα έχει ως αποτέλεσμα ένα σφάλμα κατά την εκτέλεση.

4.6.12Αλλαγή Διαστάσεων Γεωμετρίας (GeometryScript)

Η αλλαγή διαστάσεων γεωμετρίας είναι πολύ σημαντική γιατί μας επιτρέπει να μετασχηματίζουμε αυθαίρετα ένα γεωμετρικό αντικείμενο μετασχηματίζοντας τις διαστάσεις του. Σε πολλές περιπτώσεις μπορούμε να επιτύχουμε το ίδιο οπτικό αποτέλεσμα με το μετασχηματισμό αλλαγής κλίμακας και το ScaleScript. Αυτό όμως έχει δύο μειονεκτήματα: μπορεί να μετασχηματίσει το αντικείμενο μόνο κατά τους τρεις άξονες του καρτεσιανού συστήματος συντεταγμένων και έχει ως αποτέλεσμα ο μετασχηματισμός να προστίθεται σε όλα τα παιδιά που είναι απόγονοι του μετασχηματιζόμενου αντικειμένου.

Το GeometryScript έχει όλα τα τυπικά eventIn και eventOut που ήδη έχουμε αναφέρει στα προηγούμενα. Τα πεδία του είναι το shape το οποίο αναφέρεται σε ένα Shape κόμβο (ή PROTO κόμβο που έχει ένα geometry πεδίο), το geometryType το οποίο περιέχει το όνομα του γεωμετρικού τύπου υπό μορφή string π.χ. "Cone”, το πεδίο dimensionNames το οποίο έχει τα ονόματα των διαστάσεων τουν αντικειμένου, και το πεδίο laws το οποίο περιέχει τους νόμους που ακολουθούν οι μετασχηματισμοί των διαστάσεων του αντικειμένου.

Παραδείγματα ορισμού ενός GeometryScript φαίνονται παρακάτω:

100

GeometryScript { eventIn SFTime play eventIn SFTime pause eventIn SFTime rewind eventIn SFTime kill eventOut SFTime finished field SFTime duration -1 field SFTime time_step 0.1 field SFNode shape NULL field SFString geometryType "" field MFString dimensionNames [] field MFNode laws []}

Page 107: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

GeometryScript { duration 10 shape USE myBox geometryType "Box" dimensionNames ["size"] laws [USE L1 USE L2 USE L3]}

GeometryScript { time_step 0.02 shape USE myCylinder geometryType "Cylinder" dimensionNames [ "radius" "height" ] laws [USE L1 USE L2]}

4.6.13Νόμος Αλλαγής Διάστασης (ResizeLaw)

Το αντικείμενο τύπου ResizeLaw υλοποιεί μια συνάρτηση του χρόνου κατάλληλη για μετασχηματισμό διαστάσεων αντικειμένου και είναι χρήσιμο για τον καθορισμό του πεδίου laws του GeometryScript που αναφέραμε. Μόλις δεχτεί το eventIn time, εκπέμπει το eventOut dimension που είναι η τιμή της συνάρτησης για την τιμή αυτή του χρόνου. Η συνάρτηση είναι της μορφής (όπως περιγράψαμε στο Μοντέλο Δεδομένων):

f(t) =( a0+b0cos(freqt+phase))(c0+c1t+c2t2)

O πρώτος παράγοντας του γινομένου είναι μια ημιτονοειδής μεταβολή με μέση τιμή a0 και διακύμανση ±|b0| και ο δεύτερος μια πολυωνυμική συνάρτηση του χρόνου 2ου βαθμού. Από τα επόμενα παραδείγματα το πρώτο εκφράζει μια διακύμανση από 2 έως 4 μέτρα και το δεύτερο μια αύξηση με ρυθμό 2 μέρα/sec και αρχική τιμή 5 μέτρα.

101

ResizeLaw {field SFFloat a 1field SFFloat b 0field SFFloat freq 1field SFFloat phase 0field SFFloat c0 1field SFFloat c1 0field SFFloat c2 0eventIn SFTime timeeventOut SFFloat dimension

}

Page 108: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

ResizeLaw { a0 3 b0 1 c0 1 }

ResizeLaw { a0 1 c0 5 c1 2}

4.6.14Αλυσίδα Χωρικών Δράσεων (ActionChain)

Μια Αλυσίδα Χωρικών Δράσεων περιλαμβάνει μία ακολουθία χωρικών δράσεων που πρέπει να συμβούν αυστηρώς ακολουθιακά. Κάθε μία από τις χωρικές δράσεις που περιλαμβάνει η αλυσίδα πρέπει να συμβεί αφού έχει τελειώσει η προηγούμενη. Η Αλυσίδα αυτή υλοποιείται με το script ΑctionChain.

Το πεδίο actions περιλαμβάνει με τη σειρά τις δράσεις που πρέπει να γίνουν μέσω κόμβων σεναρίου (όπως οι κόμβοι TranslationScript, RotationScript κλπ. που αναφέραμε). Για να λειτουργήσει η αλυσίδα, πρέπει όλοι οι κόμβοι που βρίσκονται στο πεδίο actions να έχουν events play, pause, kill, finished. Η αλυσίδα λειτουργεί στέλνοντας διαδοχικά play event στην επόμενη δράση, κάθε φορά που εκπέμπει event finished η προγούμενη. Σε κάθε χρονική στιγμή μια από τις δράσεις της αλυσίδας είναι ενεργή. Όταν τελειώσει η εκτέλεση της, εκπέμπει ένα eventOut finished το οποίο αξιοποιεί το αντικείμενο τύπου ActionChain ενεργοποιώντας την αμέσως επόμενη δράση από τη λίστα των actions.

Εάν ο κόμβος ActionChain δεχτεί ένα eventIn pause τότε παγώνει την ενεργό δράση. Αυτό έχει ως αποτέλεσμα να παγώσει και ολόκληρη η αλυσίδα, αφού η ενεργός δράση δεν μπορεί να τελειώσει και έτσι να ενεργοποιήσει τις επόμενες. Αν δεχτεί ένα eventIn kill τότε σκοτώνεται η δράση που είναι ενεργός. Αυτό έχει ως αποτέλεσμα να μην ενεργοποιηθούν ποτέ από το ActionChain οι δράσεις που έπονται. Θα μπορούσαμε ίσως να είχαμε υλοποιήσει το ActionChain έτσι ώστε να σκοτώνει όλες τις δράσεις. Αυτό

102

ActionChain {eventIn SFTime playeventIn SFTime pauseeventIn SFTime killeventOut SFTime finishedfield MFNode actions []

}

Page 109: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

όμως θα αχρήστευε ίσως κάποιες δράσεις οι οποίες πιθανών θέλουμε να ενεργοποιούνται και με άλλους τρόπους εκτός του ActionChain.

Aν όλα εξελιχθούν ομαλά και όλες οι δράσεις αφεθούν να ολοκληρωθούν, τότε μόλις εκπεμφθεί το finished eventOut από την τελευταία δράση εκπέμπεται και το αντίστοιχο eventOut από την αλυσίδα. Αυτό ειδοποιεί το περιβάλλον πως όλες οι δράσεις που περιλαμβάνει έχουν ολοκληρωθεί

Το παρακάτω διάγραμμα δείχνει τη λειτουργία του ActionChain:

Tη χρονική στιγμή που βλέπουμε την αλυσίδα, είναι ενεργή η Δράση 2. Η απόκριση του συστήματος για διάφορες εισόδους ακολουθεί στον πίνακα:

play Το αντικείμενο Δράση 2 βρίσκεται σε κατάσταση "playing”pause Το αντικείμενο Δράση 2 βρίσκεται σε κατάσταση "paused”kill Το αντικείμενο Δράση 2 βρίσκεται σε κατάσταση "killed”

Μόλις το αντικείμενο Δράση 2 εκπέμψει το finished η ActionChain στέλνει play στο αντικείμενο Δράση 3. Εαν δε διακοπεί με κάποιο τρόπο η αλυσίδα, μόλις η Δράση 4 ολοκληρωθεί, το ActionChain θα στείλει στο περιβάλλον του το eventOut finished.

To ΑctionChain αντιστοιχεί στο <ActionChain> της STEDEL

4.6.15Aκολουθία Χωρικών Δράσεων (Sequence)

103

Δράση 0 Δράση 4Δράση 1 Δράση 2 Δράση 3

actionsΑctionChain

play pause kill finished

Page 110: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

Η δεύτερη σύνθετη χωρική δράση που υλοποήσαμε είναι η Ακολουθία Χωρικών Δράσεων. Η ακολουθία χωρικών δράσεων μας επιτρέπει να ορίσουμε ένα πολύπλοκο σενάριο με απλό και κατανοητό τρόπο. Είναι ίσως το πλέον σημαντικό από τα scripts που υλοποιήσαμε.

Ένας κόμβος Sequence περιέχει τρία πεδία τα actions, controls, gaps. Και τα τρία αυτά πεδία είναι τύπου MF και πρέπει να περιέχουν τον ίδιο αριθμό από απλά πεδία. Το πεδίο actions περιέχει ένα σύνολο από κόμβους δράσης. Αυτοί οι κόμβοι γενικά μπορούν να είναι οποιοσδήποτε κόμβος VRML ο οποίος δέχεται τουλάχιστον ένα eventIn. Αυτές είναι οι δράσεις που περιλαμβάνει η ακολουθία.

Το πεδίο controls περιέχει μια σειρά από ονόματα eventIns. Το i- eventIn αντιστοιχεί στον i- κόμβο του πεδίου actions. Tο controls[i] αντιστοιχεί στο τι θέλουμε να κάνει ο αντίστοιχος κόμβος actions[i]. Π.χ. αν το controls[0] είναι "play" αυτό σημαίνει πως θέλουμε το actions[i] να δεχτεί ένα eventIn play. H χρήση των controls μας επιτρέπει να έχουμε πλήρη έλεγχο πάνω στις δράσεις που περιλαμβάνει η ακολουθία, ξεκινώντας, σταματώντας, παγώνοντας κ.ο.κ. όποτε θέλουμε.

Το πεδίο gaps υλοποιεί τη χρονική ακολουθιακότητα. Περιλαμβάνει τιμές χρονικών διαστημάτων, μία για κάθε έναν από τους κόμβους δράσης του αντικειμένου Sequence. Οι τιμές αυτές έχουν την εξής έννοια: η τιμή gaps[i] σημαίνει πως η αποστολή του event ελέγχου που προδιαγράφεται από το πεδίο controls[i] στον κόμβο actions[i] πρέπει να γίνει gaps[i] δευτερόλεπτα μετά την αποστολή του αντίστοιχου event στον κόμβο actions[i-1].

Το αντικείμενο Sequence έχει ένα μόνο eventIn το play. Αυτό αρχίζει την ακολουθία στέλνοντας το πρώτο event στη δράση actions[0] ενώ ταυτόχρονα αρχίζει να λογίζεται το χρόνο έτσι ώστε να στείλει τα κατάλληλα στην κατάλληλη στιγμή τα events στους υπόλοιπους κόμβους δράσης. Δεν υλοποιήσαμε events pause, kill, finished όπως στην ΑctionChain διότι αυτά δε θα είχαν νόημα εφόσον η ακολουθία των χωρικών δράσεων είναι αυθαίρετη και δεν υπάρχει αλληλεξάρτηση ανάμεσα τους.

Το σχήμα που ακολουθεί δείχνει τον τρόπο λειτουργίας ενός κόμβου Sequence.

104

Sequence {eventIn SFTime playfield MFNode actions []field MFString controls []field MFTime gaps []

}

Page 111: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

0 sec 1 sec 2 sec 3 sec 4 sec 5 sec 6 secA1.play A3.play A4.play A1.killA2.play A3.pause

Οι δράσεις Α1, Α2 ξεκινούν να παίζουν τη χρονική στιγμή 0, δηλαδή όταν έρθει το play eventIn στο κόμβο Sequence. Μετά από 2 sec αρχίζει να παίζει η δράση Α3 και μετά από ακόμα 3 sec (δηλαδή στα 5 sec) αρχίζει να παίζει η δράση Α4 ενώ ταυτόχρονα παγώνει η δράση Α3. Μετά από 1 sec (δηλαδή στα 6 sec) σκοτώνεται η δράση Α1.

Το Sequence αντιστοιχεί στο <Sequence> της STEDEL.

105

Sequence {actions [

USE A1 USE A2 USE A3 USE A4 USE A3 USE A1

]controls ["play" "play" "play""play" "pause" "kill"

]gaps [0 0 2

3 0 1]

}

Page 112: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

5

5 Παράδειγμα Λειτουργίας

Σε αυτό το κεφάλαιο θα αναφέρουμε ένα παράδειγμα λειτουργίας της γλώσσας STEDEL. Με βάση αυτό το παράδειγμα, ο αναγνώστης που θέλει να πειραματιστεί με τη γλώσσα μπορεί σύντομα να φτιάξει τις δικές του εφαρμογές.

5.1 Η Λειτουργία του Μεταγλωττιστή

Η περιγραφή της γλώσσας STEDEL βρίσκεται στο αρχείο STEDEL.jj. Αυτό είναι ένα αρχείο περιγραφής της γραμματικής της γλώσσας και χρησιμοποιείται από το γεννήτορα συντακτικών και λεξικών αναλυτών JavaCC. Αν κάποιος θέλει να τροποποιήσει / επεκτείνει την περιγραφή της γλώσσας πρέπει να επέμβει σε αυτό το αρχείο τροποποιώντας τη λειτουργικότητά του.

Με την ακόλουθη εντολή δημιουργούνται τα αντίστοιχα αρχεία πηγαίου κώδικα Java που υλοποιούν το μεταγλωττιστή (πρέπει να έχει εγκατασταθεί το JavaCC, δες [JavaCC]):

C:\USERS\JLAZAR> javacc STEDEL.jj

Στη συνέχεια πρέπει να μεταγλωττίσουμε τα αρχεία αυτά σε Java bytecodes. Αυτό γίνεται με την εντολή

106

Page 113: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Η Γλώσσα STEDEL

C:\USERS\JLAZAR> javac *.java

Για να τρέξουμε το πρόγραμμα του μεταγλωττιστή πρέπει να έχουμε ένα αρχείο με STEDEL κώδικα, λ.χ. το "test.stdl". Στη συνέχεια εισάγουμε την εντολή:

C:\USERS\JLAZAR> java STEDEL test.stdl > test.wrl

107

Page 114: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

6

6 Μελλοντικές Επεκτάσεις

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

Θα χωρίσουμε την αναφορά μας σε τρεις κατευθύνσεις: ολοκλήρωση και βελτιστοποίηση του υπάρχοντος συστήματος, επέκταση του συστήματος με δημιουργία ενός εργαλείου συγγραφής εφαρμογών εικονικής πραγματικότητας με βάση τη γλώσσα STEDEL και θεωρητική έρευνα σε μια σειρά από θέματα που η παρούσα εργασία δεν αντιμετώπισε.

6.1 Ολοκλήρωση και Βελτιστοποίηση του Υπάρχοντος Συστήματος

Η ολοκλήρωση του υπάρχοντος συστήματος μπορεί να γίνει άμεσα. Στο τρέχον σύστημα έχουν υλοποιηθεί:

108

Page 115: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μελλοντικές Επεκτάσεις

1. Ορισμοί Απλών Αντικειμένων2. Ο Παγκόσμιος Χωρικός Γράφος Αντικειμένων3. Οι απλές και σύνθετες Χωρικές Δράσεις4. Μερικά απλά events5. Κανόνες Συμπεριφοράς

Απομένει να γίνει:1. Η κατηγοριοποίηση και υλοποίηση επιπλέον τύπων events τα οποία

υποστηρίζονται από τη VRML καθώς και συνθέτων events. 2. Υλοποίηση Σύνθετων Συνδέσμων3. Κατηγοριοποίηση και υλοποίηση Συνθηκών.

Προς αυτές τις κατευθύνσεις πρέπει να συγγραφούν τα απαραίτητα Script PROTOs σε VRML που υλοποιούν τα αντίστοιχα στοιχεία, και να επεκταθεί η υπάρχουσα περιγραφή της γλώσσας STEDEL έτσι ώστε να υποστηρίζει αυτές τις αυξημένες δυνατότητες.

6.2 Εργαλείο Συγγραφής Εφαρμογών Εικονικής Πραγματικότητας με βάση τη γλώσσα STEDEL

Η προοπτική δημιουργίας ενός εργαλείου συγγραφής εφαρμογών εικονικής πραγματικότητας με βάση τη γλώσσα STEDEL είναι σημαντική. Ο κύριος σκοπός του μοντέλου δεδομένων που περιγράψαμε είναι η διευκόλυνση του χρήστη στη δημιουργία εικονικών κόσμων, με έμφαση στον καθορισμό ευκολονόητων χωρικών σχέσεων (με συνδέσμους) και κανόνων συμπεριφοράς μέσω Event-Condition-Action πλειάδων.

Προς την επίτευξη αυτού του σκοπού, η δημιουργία ενός εργαλείου το οποίο θα προσφέρει μια σειρά ακόμα από ευκολίες στο δημιουργό εφαρμογών, θα ολοκληρώσει και θα αναδείξει τα πλεονεκτήματα που φρονούμε πως διαθέτει το προτεινόμενο μοντέλο. Το εργαλείο αυτό θα είναι ένα front end το οποίο θα εξυπηρετεί δύο σκοπούς. Πρώτα απ’ όλα να αποκρύπτει από το χρήστη τη γλώσσα περιγραφής, προτάσσοντας στη θέση της ένα γραφικό περιβάλλον ανάπτυξης εφαρμογών.

Δεύτερος σκοπός είναι η δυνατότητα να έχει ο χρήστης άμεση επόπτευση του κόσμου που περιγράφει, και έτσι να μπορεί να κάνει ευκολότερα τις αναγκαίες τροποποιήσεις σε αυτόν. Θα μετατρέψει δηλαδή το χτίσιμο κόσμων από διαδικασία προγραμματισμού, σε μια περισσότερο καλλιτεχνική διαδικασία όπου ο δημιουργός

109

Page 116: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μελλοντικές Επεκτάσεις

μπορεί να πειραματίζεται με άνεση, αγνοώντας τις λεπτομέρειες της υλοποίησης των διαφόρων στοιχείων που χρησιμοποιεί.

Από τη φύση του προβλήματος είναι προφανές πως η ανάπτυξη είναι καλό να γίνει στη γλώσσα Java η οποία έχει μια σειρά από πλεονεκτήματα: υψηλό βαθμό συνεργασίας με τη VRML (μέσω του Script κόμβου καθώς και μέσω του External Authoring Interface της Silicon Graphics, το οποίο επιτρέπει σε ένα πρόγραμμα Java να αλληλεπιδρά άμεσα και να ελέγχει αυτά που συμβαίνουν μέσα σε ένα κόσμο VRML). Η ύπαρξη του Java3D ως εναλλακτική μέθοδο παρουσίασης για τον Παγκόσμιο Ιστό είναι ακόμα ένας λόγος για να χρησιμοποιηθεί η συγκεκριμένη γλώσσα.

Σε αδρές γραμμές, ένα λειτουργικό διάγραμμα του Εργαλείου Συγγραφής Εφαρμογών Εικονικής Πραγματικότητας φαίνεται στο ακόλουθο σχήμα:

H επιφάνεια εργασίας βρίσκεται σε μια εφαρμογή Java μέσω της οποίας ο χρήστης φτιάχνει τον κόσμο του. Η περιγραφή του κόσμου που βρίσκεται στην εφαρμογή αυτή αποτελείται από αντικείμενα της Java. Αυτά μετατρέπονται εσωτερικά σε κώδικα STEDEL, ο οποίος αποθηκεύεται στο δίσκο, ή μεταγλωττίζεται διάφανα από το μεταγλωττιστή STEDEL, δημιουργείται η VRML που αποστέλλεται σε ένα applet το οποίο εκτελείται μέσα στο Web browser. Αυτό το applet έχει μια πολύ απλή λειτουργία: ανανεώνει την περιγραφή ου εικονικού κόσμου στο VRML browser που βρίσκεται στην ίδια σελίδα με αυτό. Έτσι ο χρήστης μπορεί να έχει άμεση και διάφανη οπτικοποίηση του εικονικού κόσμου που οικοδομεί. Η χρήση του ενδιάμεσου applet μέσω της εφαρμογής

110

Java Application

Web Browser

Java Applet

VRML Browser(Preview)

EAIVRML

Aποθήκευση

STEDEL

STEDELCompiler

Java Objects

Εργαλείο Συγγραφής Εφαρμογών Εικονικής Πραγματικότητας

Page 117: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Μελλοντικές Επεκτάσεις

Java και του VRML browser έγινε έτσι ώστε να χρησιμοποιηθεί το External Authoring Interface [ΕΑΙ] που επιτρέπει τον έλεγχο ενός VRML κόσμου από ένα applet.

6.3 Θεωρητική Εργασία

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

Περιγραφικές χωρικές σχέσεις για τη σύνθεση αντικειμένων σε χωρικούς γράφους. Οι σύνδεσμοι που περιγράψαμε σε αυτή την εργασία δίνουν τη δυνατότητα τέτοιας σύνθεσης. Με τους συνδέσμους μπορούμε να εκφράσουμε πολύ καλά σχέσεις αντικειμένων που συνδέονται μέσω των εξωτερικών τους επιφανειών καθώς και να περιγράψουμε την κατεύθυνση των χωρικών σχέσεων. Θα ήταν χρήσιμο να αναζητηθούν σχέσεις που είναι ακόμα πιο ευκολόχρηστες και περιγραφικές.

Δυναμική δημιουργία / αποθήκευση κόσμων. Στο παράδειγμα που ακολουθήσαμε στο παρόν, το περιεχόμενο και η συμπεριφορά του εικονικού κόσμου είναι υπό τον έλεγχο του συγγραφέα της εφαρμογής. Θα ήταν χρήσιμο να επεκταθεί αυτό έτσι ώστε να μπορούμε να έχουμε ένα σύστημα το οποίο θα δημιουργεί εικονικούς κόσμους για να εξυπηρετήσει ειδικές αιτήσεις χρηστών και θα μπορεί να διατηρεί την κατάσταση του εικονικού κόσμου με τις αλλαγές που έχουν επέλθει σε αυτόν μόνιμα σε μια Βάση Δεδομένων. Το πρόβλημα αυτό απαιτεί:

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

Την υλοποίηση μιας γλώσσας ερωταποκρίσεων (query language) και περιγραφής δεδομένων που θα μας δίνει τη δυνατότητα να αλληλεπιδρούμε με τη βάση μέσω queries. Αυτή η γλώσσα μπορεί να είναι μια επέκταση / τροποποίηση της STEDEL, η οποία θα περιλαμβάνει τη δυνατότητα ερωταποκρίσεων. Με αυτή τη γλώσσα θα μπορούμε λ.χ. να κάνουμε ερωτήσεις του τύπου: «Δημιούργησε έναν κόσμο με όλα τα κόκκινα αντικείμενα που υπάρχουν στη βάση», «Φέρε μου όλα τα αντικείμενα διαστάσεων από 3 έως 10 μέτρα», «Διέγραψε όλα τα αντικείμενα του τύπου Χ από τη Βάση».

111

Page 118: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

112

Page 119: ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΑ ΠΕΡΙΓΡΑΦΗΣ ...iosif/publications/Diplom.pdfΕΒΓΔ-ΔΙΠΛ-99-03 ΙΟΥΛΙΟΣ 1999 ΜΟΝΤΕΛΟ ΔΕΔΟΜΕΝΩΝ

Βιβλιογραφία

8

7 Βιβλιογραφία

[VRML97] The Virtual Reality Modeling LanguageInternational Standard ISO/IEC 14772-1:1997http://www.web3d.org/technicalinfo/specifications/vrml97/index.htm

[ΕΑΙ] Cosmo Software. The External Authoring Interfacehttp://www.cosmosoftware.com/developer/eai.html

[Java3D] Sun Microsystems. Java 3D API Specificationhttp://java.sun.com/products/java-media/3D/forDevelopers/j3dguide/j3dTOC.doc.html

[Build3D] Martin McCarthy & Alistair Carty. Building 3D Worlds in Java and VRML. Prentice Hall 1998.

[Think] Bruce Eckel. Thinking in Java. Electronic Bookhttp://www.EckelObjects.com

[VRShop] Michalis Vazirgiannis, Hercules Varlamis, Iosif Lazaridis, Marina Papageorgiou. VR-Shop. Technical report in progress. Athens 1999

[VazBoll] Michalis Vazirgiannis, Suzanne Boll. Events in Interactive Multimedia Applications: Modeling and Implementation Design. 1996

113