ΨΗΦΙΑΚΟΣ ΕΠΕΞΕΡΓΑΣΤΗΣ ΓΙΑ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ. ΕΜΜΑΝΟΥΗΛ ΠΑΝΑΓΙΩΤΗ του ΠΑΝΤΕΛΗ ΜΙΧΑΛΟΠΟΥΛΟΥ ΔΗΜΗΤΡΙΟΥ του ΧΡΗΣΤΟΥ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΨΗΦΙΑΚΟΣ ΕΠΕΞΕΡΓΑΣΤΗΣ ΓΙΑ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ. ΕΜΜΑΝΟΥΗΛ ΠΑΝΑΓΙΩΤΗ του ΠΑΝΤΕΛΗ ΜΙΧΑΛΟΠΟΥΛΟΥ ΔΗΜΗΤΡΙΟΥ του ΧΡΗΣΤΟΥ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΣΗΜΑΤΩΝ ΚΑΙ ΕΙΚΟΝΩΝ ΨΗΦΙΑΚΟΣ ΕΠΕΞΕΡΓΑΣΤΗΣ ΓΙΑ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΜΜΑΝΟΥΗΛ ΠΑΝΑΓΙΩΤΗ του ΠΑΝΤΕΛΗ ΜΙΧΑΛΟΠΟΥΛΟΥ ΔΗΜΗΤΡΙΟΥ του ΧΡΗΣΤΟΥ ΦΟΙΤΗΤΩΝ ΤΟΥ ΤΜΗΜΑΤΟΣ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Θ. ΣΤΟΥΡΑΪΤΗΣ ΑΡΙΘΜΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ:.../2008 ΦΕΒΡΟΥΑΡΙΟΣ 2008

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: ΨΗΦΙΑΚΟΣ ΕΠΕΞΕΡΓΑΣΤΗΣ ΓΙΑ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ των φοιτητών του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Εμμανουήλ Παναγιώτη του Παντελή (Α.Μ. 5321) Μιχαλόπουλου Δημήτριου του Χρήστου (Α.Μ. 5388) παρουσιάστηκε δημόσια και εξετάσθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις Ο ΕΠΙΒΛΕΠΩΝ Ο ΔΙΕΥΘΥΝΤΗΣ ΤΟΥ ΤΟΜΕΑ Καθηγητής Θ.ΣΤΟΥΡΑΪΤΗΣ Καθηγητής Ε.ΧΟΥΣΟΣ 2

3 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ 1.1- Εφαρμογή των γραφικών στην καθημερινότητα Πλεονεκτήματα-Εξέλιξη της αλληλεπίδρασης των γραφικών Αντιπροσωπευτικές χρήσεις των γραφικών Κατηγοριοποίηση των γραφικών Ανάπτυξη υλικού και λογισμικού για γραφικά...6 ΚΕΦΑΛΑΙΟ 2 :RENDERING ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ 2.1- Το Pipeline της γραφικής αναπαράστασης Το στάδιο της εφαρμογής Το στάδιο της γεωμετρίας Το Rasterizer στάδιο Συνοπτικά...18 ΚΕΦΑΛΑΙΟ 3 :CLIPPING 3.1- Clipping σημείων Clipping πολυγώνων Ο αλγόριθμος των Sutherland-Hodgeman για Polygon Clipping Ο αλγόριθμος των Weiler-Atherton για Polygon Clipping Ο αλγόριθμος των Liang-Barsky για Polygon Clipping Clipping γραμμών Ο αλγόριθμος των Cohen-Sutherland για Line Clipping Ο αλγόριθμος των Liang-Barsky για Line Clipping Ο αλγόριθμος των Nicholl-Lee-Nicholl για Line Clipping Ο αλγόριθμος QuickClip για Line Clipping ΚΕΦΑΛΑΙΟ 4 :ΠΡΟΤΕΙΝΟΜΕΝΟΣ ΑΛΓΟΡΙΘΜΟΣ ΓΙΑ LINE CLIPPING 4.1 Παρουσίαση Παραδείγματα Υπολογιστική Πολυπλοκότητα Συμπεράσματα Σχεδίαση σε VHDL Παραδείγματα από VHDL ΠΑΡΑΡΤΗΜΑ Α.- C κώδικας του αλγορίθμου των Cohen-Sutherland Β.- C κώδικας του αλγορίθμου των Liang-Barsky Γ.- C κώδικας του αλγορίθμου των Ν-L-Ν Δ.- C κώδικας του αλγορίθμου Quick-Clip Ε.- C κώδικας του Προτεινόμενου αλγορίθμου ΣΤ.- Κώδικας σε VHDL της αρχιτεκτονικής του Προτεινόμενου αλγορίθμου Βιβλιογραφία Περίληψη

4 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 1.1- ΕΦΑΡΜΟΓΗ ΤΩΝ ΓΡΑΦΙΚΩΝ ΣΤΗΝ ΚΑΘΗΜΕΡΙΝΟΤΗΤΑ Όλα ξεκίνησαν από την γνωστή κινέζικη παροιμία: «Μια εικόνα αξίζει όσο χίλιες λέξεις». Μετά το τυπογραφείο μέσω της φωτογραφίας ήταν σειρά των υπολογιστών να ενστερνιστούν την ιδέα αυτή. Η εμφάνιση των γραφικών έγινε λίγο αργότερα από την εμφάνιση των ηλεκτρονικών υπολογιστών και βρήκε αρχικά εφαρμογή σε CRT οθόνες (καθοδικού σωλήνα). Το ποντίκι, το πληκτρολόγιο ακόμα και οι οθόνες αφής είναι κάποια από τα βασικά μέσα που διαθέτει ο χρήστης για την επικοινωνία του με τον υπολογιστή που όμως με τη βοήθεια των γραφικών έχει γίνει ιδιαίτερα εύχρηστη. Από τη δεκαετία του 80 η εξέλιξη των user interfaces όπως αναφέρονται συνήθως, δηλαδή των διεπαφών του χρήστη, είναι αυτό που έκανε δημοφιλή στο ευρύ κοινό τον προσωπικό υπολογιστή, αρχικά σε μορφή bitmap γραφικών. Πλέον οι χρήστες μπορούσαν να χειριστούν πληθώρα προγραμμάτων. Τη σκυτάλη πήραν τα παράθυρα με τα οποία ο χρήστης μπορούσε εύκολα (μέσω του ποντικιού και όχι δύσχρηστων εντολών) να εναλλάσσεται μεταξύ των εφαρμογών που είχε στη διάθεσή του. Έτσι οι εντολές αντικαταστάθηκαν από το γραφικό περιβάλλον με raster απεικόνιση. Μέρα με τη μέρα η χρησιμοποίηση των γραφικών γίνεται όλο και πιο εκτεταμένη, καθώς δημιουργούνται ολοένα και περισσότερες εφαρμογές όπου η χρησιμοποίησή τους κρίνεται απαραίτητη. Τηλεοπτικές διαφημίσεις και οπτικά εφέ στον κινηματογράφο είναι από τα παραδείγματα όπου ακόμα και κάποιος που δεν ασχολείται με υπολογιστές συναντά γραφικά ΠΛΕΟΝΕΚΤΗΜΑΤΑ-ΕΞΕΛΙΞΗ ΤΗΣ ΑΛΛΗΛΕΠΙΔΡΑΣΗΣ ΤΩΝ ΓΡΑΦΙΚΩΝ Τα γραφικά προσφέρουν μια περισσότερο φυσική επικοινωνία με τον υπολογιστή κάτι που διευκόλυνε πολύ και τον επιστημονικό τομέα αφού από τη δεκαετία του 80 και έπειτα οι γραφικές αναπαραστάσεις ήταν το κλειδί για την συλλογή πολυάριθμων δεδομένων που παράγονταν από υπολογιστές. Η αλληλεπίδραση με το χρήστη γίνεται από κειμενική (μέσω εντολών) γραφική. Τα γραφικά έχουν γίνει η τεχνολογία κλειδί για την ανταλλαγή ιδεών, δεδομένων και τάσεων. Επηρεάζονται όλοι οι τομείς ενώ μπορούμε με τη βοήθειά τους να δημιουργήσουμε εικονική πραγματικότητα (Α.I.) και εξετάζοντας αντικείμενα και φαινόμενα σε όλους τους τομείς να αναπαραστήσουμε τις γνώσεις μας σε εικονική μορφή. Στις αρχές της δεκαετίας του 80 οι 3D εφαρμογές ήταν πολύ περιορισμένες λόγω των μεγάλων υπολογιστικών απαιτήσεων για την εποχή. Η θεαματική εξέλιξη στον τομέα των VLSI οδήγησε στην δημιουργία των πρώτων προσωπικών υπολογιστών που χρησιμοποιούσαν γραφικά στα τέλη του 80. Από τότε μέχρι σήμερα η ραγδαία εξέλιξη στον τομέα έκανε τις 3D εφαρμογές να κατακλείσουν τον κόσμο μας και τομείς όπως το photorealistic rendering, που τότε φαίνονταν εξωτικοί, τώρα αποτελούν ρουτίνα της διεργασίας των γραφικών. 4

5 Η πρόκληση ήταν τώρα τα κινούμενα γραφικά. Γρήγορα ανακαλύφθηκε ότι γρήγορες εναλλαγές των εικόνων μέσα σε ένα δευτερόλεπτο παράγουν την αίσθηση της κίνησης, που οδήγησε στα fps (πλαίσια ανά δευτερόλεπτο) που είναι μέγεθος των κινούμενων γραφικών. Δύο χαρακτηριστικές έννοιες που συναντάμε εδώ είναι η δυναμική αναπροσαρμογών και η δυναμική κινήσεων. Στην πρώτη τα αντικείμενα κινούνται σε σχέση με σταθερό παρατηρητή ή τα αντικείμενα είναι σταθερά ενώ ο παρατηρητής κινούμενος ή σε αρκετές περιπτώσεις κινούνται κ τα δύο -προσομοιωτές και κάμερες είναι άμεσα συνδεδεμένα με την έννοια αυτή-. Η δεύτερη αφορά στο σχήμα, το χρώμα και άλλες ιδιότητες του αντικειμένου. Η εκμάθηση της χρήσης ηλεκτρονικών υπολογιστών προϋποθέτει πλέον την εκμάθηση της χρήσης απλών δισδιάστατων (2D) γραφικών. Με την ανάπτυξη της Ψηφιακής Επεξεργασίας Σημάτων (DSP) και της ηχητικής τεχνολογίας τα γραφικά προσφέρουν ένα περιβάλλον αρκετά ρεαλιστικό, έναν Virtual World. Χαρακτηριστικοί κλάδοι χρησιμότητάς τους είναι η βιομηχανία, οι επιχειρήσεις, η κυβέρνηση, η εκπαίδευση και η διασκέδαση. Παρακάτω αναφέρονται χαρακτηριστικά δείγματα αυτών ΑΝΤΙΠΡΟΣΩΠΕΥΤΙΚΕΣ ΧΡΗΣΕΙΣ ΤΩΝ ΓΡΑΦΙΚΩΝ à Αλληλεπίδραση με το χρήστη : Η αγορά κατακλύζεται διαρκώς με καινούρια προγράμματα και εφαρμογές. Σχεδόν κάθε πακέτο προγράμματος περιλαμβάνει ένα γραφικό περιβάλλον ώστε η χρησιμοποίησή του προγράμματος να είναι όσο το δυνατόν πιο εύκολη για το χρήστη. Ακόμα και αυτό το έγγραφο έχει δημιουργηθεί με τη βοήθεια γραφικών. à Σχεδιασμός στις επιχειρήσεις, στην επιστήμη και στην τεχνολογία : Με δυσδιάστατα και τρισδιάστατα γραφικά απεικονίζονται γραφήματα, ιστογράμματα, συναρτήσεις και άλλες μορφές ερευνητικών, στατιστικών και επιχειρηματικών συμπυκνωμένων δεδομένων μαθηματικών, φυσικής, οικονομικών και άλλων τομέων. à Αυτοματισμοί γραφείου και ηλεκτρονικές εκδόσεις : Εξειδικευμένες μορφές εκτυπώσεων που μπορούσαν να γίνουν μόνο από επαγγελματίες πλέον με τα γραφικά γίνεται να πραγματοποιηθούν ακόμα και από ένα κοινό χρήστη με ένα προσωπικό υπολογιστή. à Ο υπολογιστής σαν βοήθημα στη σχεδίαση : Στον τομέα CAD (Computer-aided design) oι υπολογιστές χρησιμοποιούνται στην σχεδίαση και παραγωγή οχημάτων, κτιρίων, κυκλωμάτων, δικτύων και άλλων αγαθών. Η βοήθεια που προσφέρουν στηρίζεται πάνω στην ιδιότητά τους να παράγουν και να βελτιώνουν σχεδιάσεις λειτουργώντας διαδραστικά με το χρήστη. Συχνά μελετώνται τα χαρακτηριστικά του σχεδιαζόμενου μοντέλου ώστε να δοκιμαστεί πριν παραχθεί. à Εξομοίωση και animation για επιστημονικές απεικονίσεις και διασκέδαση : Κινούμενες εικόνες και απεικόνιση της συμπεριφοράς στο χρόνο δίνει μια ευκόλως κατανοητή εικόνα δυσνόητων φαινόμενων όπως πυρηνικές αντιδράσεις ή λειτουργία ανθρώπινων οργάνων. Απ την άλλη αναπτύσσεται ένας νέος κλάδος γνωστός ως «cartooning» με 3D επέκταση. à Τέχνη και εμπόριο : Τα γραφικά χρησιμοποιούνται στην τέχνη και στη διαφήμιση για να στείλουν μηνύματα και να αποσπάσουν την προσοχή, κάτι που συναντάται καθημερινά σε δημόσιους κα ιδιωτικούς χώρους (μουσεία, 5

6 ξενοδοχεία, σταθμοί) ενώ οι παρουσιάσεις μέσω «slides» είναι μια αποδοτική οικονομικά χρήση των γραφικών. à Διεξαγωγή ελέγχου : Αισθητήρες που δίνουν πληροφορίες σε απομακρυσμένους χρήστες με τη βοήθεια γραφικών είναι ένα από τα βασικά εργαλεία της εθνικής άμυνας και όχι μόνο. à Βοήθημα για εκμάθηση : Διαδραστικοί εξομοιωτές και άλλα γραφικά συστήματα για εκμάθηση έχουν γίνει ένα απαραίτητο βοήθημα στην παιδεία και ιδιαίτερα στην εκπαίδευση. à Χαρτογραφία : Γεωγραφικά και φυσικά φαινόμενα, χάρτες και μετρήσεις δεδομένων πραγματοποιούνται μέσω γραφικών. à Διασκέδαση : Διαφημίσεις, κινούμενες εικόνες, παιχνίδια και πολλές άλλες εφαρμογές μπορούν και χρησιμοποιούν τις ιδιότητες των υπολογιστών για να αναπτύξουν ρεαλιστικές και λεπτομερείς εικόνες ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗ ΤΩΝ ΓΡΑΦΙΚΩΝ Υπάρχουν πολλά κριτήρια με τα οποία μπορούν να κατηγοριοποιηθούν τα γραφικά. Αρχικά ως προς την διάσταση του αντικειμένου και το είδος της εικόνας διακρίνουμε τις κατηγορίες: - 2D γραμμική απεικόνιση - 2D απεικόνιση με αποχρώσεις του γκρι - 2D έγχρωμη απεικόνιση - 3D γραμμική σχεδίαση - 3D γραμμική σχεδίαση με διάφορα εφέ - 3D έγχρωμη γραμμική απεικόνιση με σκιές και εφέ. Ως προς το είδος της αλληλεπίδρασης διακρίνουμε τις κατηγορίες: - μη ελεγχόμενος σχεδιασμός (προκαθορισμένος από άλλες εφαρμογές) - προκαθορισμός ή υπολογισμός του αντικειμένου (προσομοιωτές πτήσεων) - σχεδιασμός αλληλεπίδρασης (ξεκινώντας από μηδενική βάση). Κατηγοριοποίηση επίσης υφίσταται ως προς το ρόλο του αντικειμένου δηλαδή αν αποτελεί αυτόνομη μονάδα ή μέρος ενός μεγαλύτερου συνόλου (σχεδιασμός και έλεγχος VLSI κυκλωμάτων). Τέλος, ως προς τη σχέση αντικειμένου - απεικόνισης διακρίνουμε, για παράδειγμα, την απεικόνιση μιας εικόνας τη φορά (plotting) ή σχετικών εικόνων που εμφανίζονται με χρονική εξάρτηση (motion) ή δομημένης συλλογής αντικειμένων (CAD) ΑΝΑΠΤΥΞΗ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ ΓΙΑ ΓΡΑΦΙΚΑ Αρχικά τα γραφικά ήταν προνόμιο μόνο επιχειρήσεων που ήταν τεχνολογικά αναπτυγμένες και σε αυτό συνέτειναν διάφοροι παράγοντες: - Υψηλό κόστος του υλικού αφού τότε οι μονάδες απεικόνισης κόστιζαν πολύ - Ανάγκη μεγάλης έκτασης υπολογιστικών πηγών για να υποστηρίξουν μεγάλες βάσεις δεδομένων γραφικών 6

7 - Δυσκολία στην δημιουργία μεγάλων προγραμμάτων για τα γραφικά περιβάλλοντα - Έλλειψη φορητότητας του λογισμικού που τότε ήταν hardware dependent. Η έλευση των IBM PC και Apple Macintosh ήταν που μείωσε τους περιορισμούς και έκανε περισσότερο εμπορικά τα γραφικά. Το Hardware κομμάτι μπορεί να χωριστεί σε τμήμα εισόδου και τμήμα εξόδου. Το τμήμα εξόδου που αποτελείται από όλες τις συσκευές που κάνουν απεικόνιση των γραφικών έχει δύο βασικές αρχιτεκτονικές, την αρχιτεκτονική raster απεικόνισης και αυτή της απεικόνισης διανυσμάτων γραφικών. Η raster απεικόνιση πλεονεκτεί στην μείωση του κόστους, στην ικανότητα να απεικονιστεί ομοιόμορφα το γέμισμα περιοχών, στον ρεαλισμό της εικόνας καθώς και στην ανεξάρτητη από την πολυπλοκότητα υλοποίηση αφού η δομική μονάδα είναι το εικονοστοιχείο (Pixel=Picture Element) που αποθηκεύεται σε frame buffers. Μειονεκτεί στο γεγονός ότι η φύση των pixels είναι διακριτή κάτι που απαιτεί scan-convertion για την μετατροπή των κορυφών των αντικειμένων στα αντίστοιχα pixels στον buffer, διαδικασία χρονοβόρα και ενεργοβόρα. Επιπλέον αυτή η διακριτή φύση του raster είναι η αιτία των jaggies που αλλοιώνουν καμπύλες και ευαίσθητα σημεία όπως γωνίες δημιουργώντας πριονωτή επιφάνεια. Η λύση ήρθε με τη μέθοδο του antialiasing. Το τμήμα εισόδου αποτελείται από τις συσκευές που βοηθούν στην εισαγωγή των γραφικών με κύριους εκπροσώπους το mouse, τις οθόνες αφής αλλά και συσκευές που εισάγουν 3D γραφικά. Το ενδιαφέρον όλων είχε στραφεί στην μετάβαση από χαμηλού επιπέδου εξαρτώμενα από το υλικό γραφικά που κατασκευάζονταν για συγκεκριμένες μονάδες εξόδου σε υψηλότερου επιπέδου ανεξάρτητες από το υλικό υλοποιήσεις που μπορούν να απεικονιστούν από πολλές συσκευές εξόδου. Η φορητότητα των προγραμμάτων και κατ επέκταση των εφαρμογών οδήγησε στην αντιμετώπιση του hardware dependence. Έτσι άρχισαν να δημιουργούνται προδιαγραφές βασισμένες σε standards από το ANSI (American National Standards Institute) και τον ISO (International Standards Organization). Ενδεικτικά αναφέρουμε ότι η πρώτη προδιαγραφή γραφικών που τυποποιήθηκε ήταν το GKS (Graphical Kernel System) [9]. Σχεδόν κάθε σύστημα γραφικών μπορεί να περιγραφεί από την παρακάτω θεμελιώδη αναπαράσταση που χωρίζεται σε υλικό (γκρι χρώμα) και λογισμικό (μωβ χρώμα): Εικόνα 1.- Θεμελιώδης αναπαράσταση γραφικών συστημάτων 7

8 Στο hardware κομμάτι ο υπολογιστής λαμβάνει δεδομένα από το τμήμα εισόδου που προαναφέρθηκε και δίνει απεικονίσεις μέσω του τμήματος εξόδου. Στο software κομμάτι το τμήμα Application Program δημιουργεί, αποθηκεύει και ανακτεί δεδομένα από το τμήμα Application Model που αντιπροσωπεύει όσα θα απεικονιστούν στην οθόνη. Επίσης, το Application Program χειρίζεται τις εισόδους του χρήστη και παράγει απεικονίσεις στέλνοντας στο τρίτο τμήμα Graphics System εντολές για τη γεωμετρική αναπαράσταση και την εμφάνιση των αντικειμένων που εμφανίζονται. Το Graphics System με τη σειρά του είναι υπεύθυνο για την τελική παραγωγή της εικόνας και το πέρασμα των εισόδων του χρήστη στο Application Program. Το κυρίως καθήκον του σχεδιαστή Application Program γραφικών είναι να δημιουργήσει και να εισάγει το μοντέλο που χειρίζεται την αλληλεπίδραση με το χρήστη και όχι να δημιουργήσει απεικονίσεις αφού αυτή είναι δουλειά του Graphics System. ΚΕΦΑΛΑΙΟ 2 RENDERING ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Ένα από τα στάδια λειτουργίας μιας μηχανής παραγωγής 3D γραφικών, το Rendering, που είναι ένα από τα πιο απαιτητικά σε ισχύ στάδιά της, μπορεί και γεμίζει με χρώμα κάθε Pixel της οθόνης ανάλογα με τη 3D εικόνα που θέλουμε να παρουσιάσουμε στην οθόνη του υπολογιστή. Το στάδιο αυτό απαιτεί εκατοντάδες χιλιάδες υπολογισμούς και προσπελάσεις μνήμης το δευτερόλεπτο - για rendering πραγματικού χρόνου, συνεπώς απαιτείται σημαντική ποσότητα ισχύος. Η εφαρμογή της παραγωγής γραφικών 3D σε συσκευές που απαιτούν χαμηλή κατανάλωση ισχύος, όπως PDA, κινητά τηλέφωνα και άλλες φορητές συσκευές, έχει δημιουργήσει την ανάγκη για μείωση της κατανάλωσης ισχύος. Όμως όπως γίνεται αντιληπτό, αφού αναφερόμαστε σε τέτοιου είδους συσκευές μας ενδιαφέρει και η μείωση του όγκου της γενικότερης αρχιτεκτονικής τους για αύξηση της φορητότητάς τους. Αυτοί οι δύο παράγοντες μπορούν να επιτευχθούν σε διάφορα στάδια της μηχανής παραγωγής γραφικών και με διάφορες μεθόδους. Καταρχάς θα αναλύσουμε τα στάδια και τη λειτουργία της διαδικασίας του Rendering, ώστε να γίνουν πιο σαφείς όσες έννοιες αναφερθούν παρακάτω. 8

9 2.1- ΤΟ PIPELINE ΤΗΣ ΓΡΑΦΙΚΗΣ ΑΝΑΠΑΡΑΣΤΑΣΗΣ Εικόνα 2.- Graphics Rendering Pipeline [12] To Pipeline είναι στην ουσία η διαδικασία, που ακολουθεί η «μηχανή», που δημιουργεί τις εικόνες από τις 3D παραστάσεις. Τρία είναι τα εννοιολογικά στάδια του Pipeline, τα οποία φαίνονται στην Εικόνα 1 σαν ορθογώνια. Το Rendering γίνεται σε ένα σύνολο από «βασικά» αντικείμενα τα οποία χρησιμοποιούνται για να απεικονιστεί η 3D παράσταση. Ως εκ τούτου καταλαβαίνουμε ότι η εικόνα που θα εμφανιστεί θα είναι μια προσέγγιση της πραγματικής και όχι ακριβώς ίδια. Ένα παράδειγμα για το τι ακριβώς εννοούμε φαίνεται στην Εικόνα 3. Εικόνα 3.- Αριστερά φαίνεται η πραγματική τσαγιέρα σαν ένα σύνολο από βασικά αντικείμενα και δεξιά φαίνεται έτσι όπως θα εμφανιστεί στην οθόνη του υπολογιστή. [12] Στην Εικόνα 3 βλέπουμε ότι η υφή της τσαγιέρας θα προσεγγιστεί από ένα σύνολο από τρίγωνα, γραμμές, σημεία και άλλα βασικά αντικείμενα, τα οποία έχουν τοποθετηθεί έτσι ώστε να συνθέτουν μια τσαγιέρα. Με αυτά τα βασικά αντικείμενα έχουμε τη δυνατότητα να προσεγγίσουμε οποιοδήποτε αντικείμενο από τον πραγματικό κόσμο. 9

10 Ένα άλλο βασικό εργαλείο στην παραγωγή της τελικής εικόνας είναι η εικονική κάμερα. Με αυτήν μπορούμε να προσδιορίσουμε τι θέλουμε να απεικονίσουμε στην οθόνη του υπολογιστή από ένα σύνολο αντικειμένων του πραγματικού κόσμου. Μπορούμε να σκεφτούμε την ιδέα της εικονικής κάμερας σαν το ανθρώπινο μάτι. Όταν βρισκόμαστε σε ένα δωμάτιο δεν μπορούμε να δούμε όλα τα αντικείμενα του δωματίου, αλλά μόνο αυτά που βρίσκονται στο οπτικό μας πεδίο. Έτσι και η κάμερα έχει το δικό της οπτικό πεδίο και ανάλογα με το πού την τοποθετούμε και τα χαρακτηριστικά που έχει, μπορούμε και βλέπουμε διαφορετικά αντικείμενα στην οθόνη. Τα χαρακτηριστικά μιας εικονικής κάμερας είναι η θέση, η κατεύθυνση του διανύσματος, το πεδίο όρασης και το βάθος της κάμερας, όπως αυτά φαίνονται στην Εικόνα 4. Εικόνα 4.- Χαρακτηριστικά μιας εικονικής κάμερας [12] Η ορατή περιοχή είναι η γκρι περιοχή. Έξω από αυτήν τίποτα δεν εμφανίζεται στην οθόνη ΤΟ ΣΤΑΔΙΟ ΕΦΑΡΜΟΓΗΣ Εκτελείται στην CPU του υπολογιστικού συστήματός μας. Ο προγραμματιστής είναι αυτός που θα αποφασίσει για το τι θα γίνει εδώ. Αυτό το στάδιο τροφοδοτεί συνεχώς με εντολές το υποσύστημα γραφικών για το τι θα κάνει και το τι θα απεικονίσει στην οθόνη. Η πιο σημαντική διεργασία αυτού του σταδίου είναι η αποστολή των βασικών αντικειμένων (π.χ. τρίγωνα) που θα υποστούν Rendering από το hardware. Δέχεται σαν είσοδο μια 3D παράσταση και ο προγραμματιστής αποφασίζει τι θέλει να δει στην οθόνη και στέλνει στο επόμενο στάδιο τα απαραίτητα βασικά αντικείμενα που χρειάζονται για να συνδεθεί η εικόνα. 10

11 ΤΟ ΣΤΑΔΙΟ ΓΕΩΜΕΤΡΙΑΣ Tο Στάδιο Γεωμετρίας (Geometry Stage) αποτελείται τα παρακάτω πέντε βασικά στάδια: Model and View Transform Lighting Projection Clipping Screen Mapping Οι διεργασίες που λαμβάνουν χώρα εδώ, αφορούν γεωμετρικές επεμβάσεις στα δεδομένα εισόδου, δηλαδή στα βασικά αντικείμενα (τρίγωνα, γραμμές κ.α.). Κάθε αντικείμενο που χρησιμοποιείται είναι ένα μοντέλο χώρου. Δηλαδή έχει 3 συντεταγμένες, οι οποίες καθορίζουν τη θέση του μέσα στο χώρο. Μπορούμε αυτό το αντικείμενο να το μετασχηματίσουμε ως προς τις διαστάσεις, τη θέση και τον προσανατολισμό, αλλά όχι ως προς τη μορφή. Ας θεωρήσουμε το παράδειγμα μίας σφαίρας με κέντρο το σημείο (0,0,0) και ακτίνα 1. Αυτό το αντικείμενο μπορεί να μετασχηματιστεί εάν αλλάξουμε το σημείο του κέντρου ή την ακτίνα και μπορούμε να το τοποθετήσουμε οπουδήποτε μέσα στον εικονικό κόσμο. Λόγω συμμετρίας της σφαίρας, δεν μας δίνεται η δυνατότητα να αλλάξουμε τον προσανατολισμό της. Όμως σκεφτείτε ένα τρίγωνο το οποίο μπορούμε και να το στρίψουμε. Βλέπουμε ότι μπορούμε οποιοδήποτε βασικό αντικείμενο να το τοποθετήσουμε οπουδήποτε μέσα στον εικονικό μας κόσμο. Τα διάφορα αντικείμενα αποθηκεύονται σαν πίνακες που με στοιχεία τα σημεία των κορυφών (έστω ότι έχουμε τρίγωνα) και με τις κατάλληλες πράξεις (συνήθως πολλαπλασιασμούς) είναι εύκολο να τα «μετακινήσουμε». Με τον ίδιο τρόπο με παραπάνω μπορείς να μετακινείς την κάμερα. Αρκεί να αλλάξεις ορισμένα από τα χαρακτηριστικά της. Αφού μετακινηθεί η κάμερα μέσα στον χώρο και δει τα στοιχεία που θα εμφανισθούν στην οθόνη, θα πρέπει να κάνουμε μία μικρή μετατροπή. Πιο πάνω είπαμε ότι η κάμερα είναι σαν το μάτι μας. Άρα, θα πρέπει να βλέπουμε στην οθόνη αυτά που θα βλέπαμε εάν φέρναμε το μάτι μας στο σημείο που βρίσκεται η κάμερα. Αυτό γίνεται με έναν αντίστροφο μετασχηματισμό και το αποτέλεσμα φαίνεται στην Εικόνα 5. Εικόνα 5.- Βάζοντας το μάτι μας στη θέση της κάμερας [12] 11

12 Μόνο έτσι θα εμφανισθούν αυτά που θέλουμε να δούμε και όπως θέλουμε να τα δούμε στην οθόνη του υπολογιστή. Ένα άλλο στοιχείο που μπορεί να προσδώσει φυσικότητα στα αντικείμενα μας είναι η παρουσία του φωτισμού. Μπορούμε να εξομοιώσουμε τον φωτισμό του πραγματικού κόσμου με μία εικονική πηγή φωτός μέσα στον εικονικό κόσμο μας. Κατόπιν υπολογίζουμε την ένταση του φωτισμού που φτάνει στις διαφορετικές κορυφές π.χ. ενός τριγώνου και κάπως έτσι μπορούμε να υπολογίσουμε το πόσο φωτεινό ή σκοτεινό είναι ένα σημείο. Είναι πολύ δύσκολο να εξομοιώσουμε τον φυσικό φωτισμό με μία εικονική πηγή φωτός, καθώς στον φυσικό μας κόσμο το φως μπορεί και ανακλάται ενώ εδώ όχι (φυσικά δεν είναι μόνο αυτή η αιτία). Συχνά χρησιμοποιούνται εμπειρικά μοντέλα και πραγματικές θεωρίες οι οποίες είναι πολύ δύσκολο να εφαρμοσθούν στην πράξη. Ένα άλλο ζήτημα που πρέπει να μας απασχολήσει είναι η προβολή των αντικειμένων στον εικονικό κόσμο. Θα πει κάποιος ότι υπάρχουν 3 διαστάσεις και ότι ανάλογα με τις συντεταγμένες των σημείων, θα τοποθετήσουμε τα αντικείμενα μέσα στο χώρο. Όμως τα πράγματα δεν είναι τόσο απλά. Η μία λύση είναι αυτή και ονομάζεται «Ορθογώνια Προβολή», όμως δεν είναι αυτή που χρησιμοποιείται. Είπαμε ότι πρέπει να βάζουμε τον εαυτό μας στην θέση της κάμερας, σαν να βλέπουμε εμείς. Το ανθρώπινο μάτι δεν αντιλαμβάνεται το χώρο όπως φαίνεται σε ένα σχέδιο. Το φαινομενικό μέγεθος μειώνεται με την απόσταση. Αυτό το είδος της προβολής είναι το πιο συχνά χρησιμοποιούμενο και ονομάζεται «Προοπτική Προβολή». Η διαφορά των δύο προβολών φαίνεται στην Εικόνα 6. Εικόνα 6.- Αριστερά φαίνεται η Ορθογώνια Προβολή και δεξιά η Προοπτική Προβολή (έτσι όπως αντιλαμβάνεται το μάτι τον χώρο). [12] Επίσης, η διαδικασία αυτή γίνεται πάλι με πολλαπλασιασμό πινάκων. Οι δύο τελευταίες ενέργειες που συμβαίνουν κατά τη διάρκεια του Geometry Stage είναι το Clipping και το Screen Mapping, δηλαδή ο προσδιορισμός του τι θα εμφανισθεί, τελικά, στην οθόνη του υπολογιστή. Έχοντας ένα σύνολο από αντικείμενα, τα οποία λαμβάνουν χώρο στον εικονικό μας κόσμο, χρησιμοποιώντας την κάμερα μπορούμε να επιλέξουμε το τι θα δούμε. 12

13 Εικόνα 7.- Ο Εικονικός μας «κόσμος» Έστω ότι στην Εικόνα 7 είναι ο εικονικός μας κόσμος και ότι η κάμερα βλέπει μόνο ότι υπάρχει στο παρακάτω «παράθυρο»: Εικόνα 8.- Ο εικονικός μας «κόσμος» μαζί με το «Παράθυρο» «Παράθυρο» (Εικόνα 8) ορίζουμε το περίγραμμα ως προς το οποίο καθορίζουμε το τι θα απεικονιστεί στην οθόνη. Αποκαλείται συχνά «ορατό παράθυρο». Η διαδικασία του Clipping έχει σαν σκοπό την αφαίρεση των κομματιών που δεν βρίσκονται μέσα στο παράθυρο και την αποθήκευση των νέων σημείων τομής των πολυγώνων με τις γραμμές του παραθύρου, ώστε να πάρουμε στην έξοδο κάτι σαν αυτό που φαίνεται στην Εικόνα 9. Εικόνα 9.- Η έξοδος του Geometry Stage (μη λάβετε υπόψη τα χρώματα) 13

14 Οι συντεταγμένες αυτών των σημείων μαζί με την τιμή Z θα οδηγηθούν στο επόμενο στάδιο (Rasterizer). Η τιμή Ζ καθορίζει εάν κάτι θα εμφανιστεί στην οθόνη. Υπάρχουν πολλά είδη Clipping που επικεντρώνονται κυρίως σε δύο διαστάσεις (2D) αλλά και με επεκτάσεις σε τρεις διαστάσεις (3D).Πρώτη παράμετρος είναι το σχήμα του ορατού παραθύρου (ορθογώνιο ή πολύγωνο).δεύτερη παράμετρος είναι ο αριθμός των διαστάσεων (2D ή 3D).Ως προς την τρίτη παράμετρο που αφορά στο είδος των αντικειμένων που υπόκεινται Clipping συναντάμε τα περισσότερες κατηγορίες. Υπάρχει το Point Clipping (για σημεία), το Line Clipping (για γραμμές), το Polygon Clipping (για πολύγωνα), το Text Clipping (για κείμενα), το Curve Clipping (για καμπύλες), το Circle Clipping (για κύκλους) και άλλες εκδοχές. Στην ουσία το Clipping κάνει το Screen Mapping και αυτό οδηγείται στο Rasterizer Stage ΤΟ RASTERIZER ΣΤΑΔΙΟ Το τελευταίο στάδιο αφορά περισσότερο την απεικόνιση του ορατού παραθύρου στα pixels της οθόνης. Η είσοδος του Rasterizer Stage είναι οι συντεταγμένες των σημείων που καθορίζουν τα βασικά αντικείμενα. Αν το σχήμα που θέλουμε να απεικονιστεί στα pixels είναι ένα σύνολο από τρίγωνα, τότε η είσοδος αυτού του Stage είναι οι κορυφές των τριγώνων. Το πρώτο βήμα είναι να βρούμε ποια pixels της οθόνης βρίσκονται μέσα σε αυτά τα τρίγωνα, ώστε να τα «ενεργοποιήσουμε». Αυτή η διαδικασία ονομάζεται Μετατροπή Ανίχνευσης (Scan Conversion) και μπορούμε να την αντιληφθούμε καλύτερα με τη βοήθεια της Εικόνας 10. Εικόνα 10.- Pixels με ένα βασικό αντικείμενο Τα τετραγωνάκια συμβολίζουν ένα πολύ μικρό κομμάτι της οθόνης και το τρίγωνο είναι αυτό που θέλουμε να εμφανιστεί στα pixels. Βλέπουμε όμως ότι τα pixels σε πολλές περιπτώσεις δεν καλύπτονται ολόκληρα από το τρίγωνο. Ο 14

15 σχεδιαστής θα πρέπει να έχει προβλέψει την περίπτωση αυτή και ανάλογα να παίρνει αποφάσεις για το αν θα ενεργοποιηθεί το pixel ή όχι. Εάν ενεργοποιηθούν όλα όσα περιλαμβάνουν ένα κομμάτι του αντικειμένου, θα έχουμε αυτό που φαίνεται στην εικόνα 11, που κάθε άλλο παρά με τρίγωνο μοιάζει. Εικόνα 11.-Είναι ενεργοποιημένα όλα τα pixels που περιέχουν κομμάτια του αντικειμένου Εάν για παράδειγμα υπάρχει ένας κανόνας όπου εάν το αντικείμενο καλύπτει ένα ποσοστό μεγαλύτερο από το 50% του pixel τότε ενεργοποιείται, τότε μπορούμε να πάρουμε κάτι που θα μοιάζει λίγο περισσότερο με τρίγωνο (Εικόνα 12). Εικόνα 12.- Scan-Conversion με ενεργοποιημένα μόνο τα pixels που καταλαμβάνονται σε ποσοστό πάνω από 50% από το αντικείμενο Γίνεται αντιληπτό ότι όσο μικρότερα είναι τα pixels τόσο καλύτερα θα φαίνεται το σχήμα στην οθόνη του υπολογιστή. Οι οθόνες διαθέτουν δεκάδες εκατομμύρια pixels και ρυθμιζόμενη ανάλυση ώστε ο χρήστης να μπορεί να επιλέγει το πώς θέλει να βλέπει τα αντικείμενα. Ένα παράδειγμα με περισσότερα pixels είναι αυτό στην Εικόνα

16 Εικόνα 13.- Παράδειγμα όμοιο με το παραπάνω, αλλά με περισσότερα pixels [11] Υπάρχουν πολλοί αλγόριθμοι που καθορίζουν το ποια pixels θα ενεργοποιηθούν. Ο καθένας έχει τη δική του μεθοδολογία και τη δική του βασική ιδέα. Για τη δική μας αρχιτεκτονική θα μας ενδιέφερε ο αλγόριθμος που έχει τη μικρότερη πολυπλοκότητα καθώς μας ενδιαφέρει να μειώσουμε την επιφάνεια της αρχιτεκτονικής μας. Δεν θα ασχοληθούμε στη συνέχεια με αυτού του είδους τους αλγορίθμους, διότι δεν επιλέξαμε να εστιάσουμε σε αυτό το στάδιο παραγωγής των γραφικών, αν και είναι πολύ ενδιαφέρον για περαιτέρω έρευνα. Το δεύτερο βήμα είναι να εξετάσουμε την Παρεμβολή (Interpolation). Κάθε κορυφή των βασικών αντικειμένων φωτίζεται διαφορετικά μέσα στον ίδιο χώρο. Δεν θα ήταν σωστό εάν όλες οι κορυφές του ίδιου, για παράδειγμα, τριγώνου είχαν την ίδια απόχρωση χρώματος. Εάν το τρίγωνο είναι μπλε και κάποια κορυφή φωτίζεται και το φως ύστερα από την αντανάκλαση στο αντικείμενο κατευθύνεται κατευθείαν στην κάμερα, τότε το μπλε αυτού του σημείου θα πρέπει να είναι πιο φωτεινό από τα άλλα. Αυτό υπολογίζεται με πράξεις και είναι η βασική ιδέα για την απεικόνιση της σκίασης σε έναν χώρο. Αφού μπορούμε να υπολογίζουμε το πόσο σκοτεινό ή φωτεινό είναι ένα σημείο ανάλογα με το φως που προσκρούει σε αυτό, τότε μπορούμε να απεικονίσουμε όλες τις σκιές στο χώρο. Βέβαια ο υπολογισμός της κίνησης του φωτός μέσα στο χώρο δεν είναι καθόλου εύκολος και απαιτεί μεγάλη πολυπλοκότητα. Εικόνα 14.- Υπολογισμός του φωτισμού και των αποχρώσεων πάνω σε μία επιφάνεια. [12] Εύκολα διακρίνεται στην Εικόνα 14 το τι ακριβώς εννοούμε. Το στάδιο του Shading έχει έρθει στο προσκήνιο την τελευταία δεκαετία και υπάρχει πρόσφορο έδαφος για έρευνα. Είναι ένας πολύ ενδιαφέρον τομέας που μπορεί να 16

17 προσδώσει ακόμα μεγαλύτερη φυσικότητα στα διάφορα αντικείμενα του εικονικού μας κόσμου. Το τρίτο βήμα είναι η Ύφανση (Texturing). Texturing είναι η διαδικασία κατά την οποία μπορούμε να δώσουμε χρώμα σε ένα σχήμα. Εκτός από το χρώμα μπορούμε και να «κολλήσουμε» πάνω σε μία επιφάνεια μία εικόνα (Εικόνα 15). Εικόνα 15.- Texturing με επικόλληση εικόνας [12] Επίσης, σε αυτό το στάδιο εφαρμόζονται κάποιες διεργασίες που έχουν σαν στόχο να προσδώσουν φυσικότητα στην εικόνα. Εδώ εφαρμόζονται όσα είπαμε παραπάνω σε σχέση με τη σκίαση, μπορούμε να δημιουργήσουμε αντανακλάσεις για παράδειγμα σε έναν καθρέφτη ή κάποια ανωμαλία σε κάποια επιφάνεια και άλλες πολλές διεργασίες που όλες έχουν τον ίδιο στόχο. Τελευταία διεργασία του Rasterizer Stage είναι το Z-Buffering. Είπαμε ότι το Ζ είναι μια τιμή που έχει ένα σημείο και που καθορίζει το αν θα εμφανιστεί στην οθόνη ή όχι. Υπάρχει η περίπτωση να έχουν οδηγηθεί στο να εμφανιστούν στην οθόνη δύο αντικείμενα τα οποία επικαλύπτονται (Εικόνα 16). Σε αυτήν την περίπτωση θα πρέπει να υπάρχει ένας μηχανισμός, που θα επιτρέπει στο σύστημα να αναγνωρίζει ποιο αντικείμενο βρίσκεται πίσω από το άλλο. Η Βασική Ιδέα αυτού του μηχανισμού είναι η εξής: Αποθηκεύουμε το Ζ (καθορίζει το βάθος) σε κάθε pixel. Όταν το Scan Conversion ενεργοποιεί για δύο αντικείμενα το ίδιο pixel, τότε περνάμε τις τιμές από το Z-Buffer, ώστε να συγκρίνουμε τις τιμές των Ζ. Όποιου αντικειμένου η τιμή του Ζ είναι μικρότερη, αυτό είναι που θα μπει στον Color-Buffer ώστε να χρωματιστεί και να εμφανιστεί στην οθόνη. Εικόνα 16.- Επικαλυπτόμενα αντικείμενα μετά τη διαδικασία του Clipping Στην Εικόνα 16 βλέπουμε τα σχήματα, που έχουν περάσει από το στάδιο του Clipping και του Screen Mapping, αλλά όπως βλέπουμε επικαλύπτονται. 17

18 Στον πραγματικό κόσμο το τετράγωνο έχει μικρότερο βάθος ως προς το μάτι μας απ ότι το τρίγωνο. Παρομοίως, το τρίγωνο έχει μικρότερο βάθος από τον κύκλο. Έτσι, αυτό που θα πρέπει να δούμε στην οθόνη είναι αυτό που φαίνεται στην Εικόνα 17. Εικόνα 17.- Εμφάνιση των αντικειμένων μετά το Z-Buffering και το Color- Buffering 2.2- ΣΥΝΟΠΤΙΚΑ Όλα τα στάδια για την παραγωγή των γραφικών φαίνονται συνοπτικά στην Εικόνα 18. Εικόνα 18.- Όλα τα στάδια του Graphics Rendering Pipeline για συγκεκριμένο παράδειγμα. 18

19 ΚΕΦΑΛΑΙΟ 3 CLIPPING Θα επικεντρώσουμε το ενδιαφέρον μας στο στάδιο του Clipping (Ψαλίδισμα).Όπως αναφέρθηκε προηγουμένως το Clipping αποτελεί ένα από τα πέντε στάδια του Geometry Stage για την παραγωγή γραφικών. Το στάδιο αυτό εφαρμόζεται για να καθοριστεί το μέρος της εικόνας το οποίο θα είναι ορατό μέσα σε μια δεδομένη περιοχή το ορατό παράθυρο- γνωστή και ως viewing frustum ή viewport και να αποκοπούν εκείνα τα αντικείμενα που βρίσκονται έξω από αυτή. Αυτό που επιτυγχάνεται επομένως είναι να γίνεται rasterization μόνο στην ορατή περιοχή και αυτό είναι το βασικό πλεονέκτημα της χρήσης του Clipping. Επιτυγχάνεται καλύτερη απόδοση καθώς το στάδιο του rasterization είναι ιδιαίτερα απαιτητικό και μέσω του clipping βοηθάμε στην μείωση των αντικειμένων που θα απεικονισθούν άρα και στους μελλοντικούς υπολογισμούς. Κατά καιρούς έχουν δημιουργηθεί διάφοροι αλγόριθμοι για την υλοποίηση του σταδίου του Clipping κυρίως δύο διαστάσεων (2D) αλλά και με επεκτάσεις τριών διαστάσεων (3D). Σχετικά με τους 2D αλγόριθμους αυτοί κατηγοριοποιούνται σε: Point Clipping Line Clipping Polygon Clipping Clipping βέβαια μπορούμε να κάνουμε και σε καμπύλες ή κύκλους, ακόμα και σε κείμενο (text) CLIPPING ΣΗΜΕΙΩΝ Η περίπτωση του Point Clipping είναι η απλούστερη που μπορούμε να συναντήσουμε καθώς αναφέρεται σε μεμονωμένα σημεία τα οποία αν βρίσκονται μέσα στην ορατή περιοχή τα απεικονίζουμε αλλιώς τα απορρίπτουμε CLIPPING ΠΟΛΥΓΩΝΩΝ Στην περίπτωση του Polygon Clipping υπάρχουν διάφοροι αλγόριθμοι με τους οποίους μπορούμε να κάνουμε clipping σε ένα πολύγωνο δύο διαστάσεων (2D).Οι πιο ευρέως διαδεδομένοι είναι των: Sutherland-Hodgeman [1974] Weiler-Atherton [1977] Liang-Barsky [1983] 19

20 Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Sutherland-Hodgeman ΓΙΑ POLYGON CLIPPING: Η βασική ιδέα είναι ότι κόβουμε το πολύγωνο κατά μήκος των περιοριστικών γραμμών του παραθύρου, ακολουθώντας κάποιους κανόνες για τη δημιουργία καινούριων σημείων. Αυτά τα σημεία είναι που διαμορφώνουν την τελική εικόνα που παρουσιάζεται στην οθόνη μας. Σε αντίθεση με τον Cohen- Sutherland αλγόριθμο (Line Clipping) όπου οι πλευρές του παραθύρου που θα γίνει clipping εντοπίζονται από τις τομές εδώ εφόσον αναφερόμαστε σε πολύγωνα το clipping γίνεται πάντα και στις 4 πλευρές. Παράδειγμα: Εικόνα 19.- Το πολύγωνο που θα υποστεί Clipping. Εικόνα 20.- Κόβουμε από αριστερά. 20

21 Εικόνα 21.- Κόβουμε από δεξιά. Εικόνα 22.- Κόβουμε από κάτω. Εικόνα 23.- Κόβουμε από πάνω. 21

22 Εικόνα 24.- Τελική μορφή. Η μεθοδολογία που ακολουθείται για την υλοποίηση της διαδικασίας είναι οι εξής: 1.Καταρχάς πρέπει να γνωρίζουμε πως δηλώνεται το πολύγωνο στον αλγόριθμο... 2.Δηλώνεται σαν ένα σύνολο από σημεία! 3.Κάθε φορά που κόβουμε σε κάποιο περιοριστικό όριο (αριστερά, δεξιά, κλπ) δημιουργούμε καινούρια σημεία (κανένα, ένα ή δύο) όπου πλέον αυτά ορίζουν το πολύγωνο. 4.Πως βρίσκουμε αυτά τα σημεία: Καθώς κινούμαστε περιστροφικά γύρω από το πολύγωνο εξετάζουμε κάθε ζευγάρι συνεχόμενων σημείων και ανάλογα με το πού βρίσκονται (μέσα ή έξω από το παράθυρο), ακολουθούμε κάποιον από τους παρακάτω κανόνες: -Ας ονομάσουμε Α το πρώτο σημείο που εξετάζουμε κάθε φορά και Β το δεύτερο σημείο. -Αν το Α βρίσκεται μέσα στην οριοθετημένη περιοχή και το Β έξω, τότε το Β αντικαθίσταται από το Β που είναι το σημείο τομής της πλευράς του παραθύρου και του ευθύγραμμου τμήματος ΑΒ. Αποθηκεύεται μόνο το σημείο Β, όπως φαίνεται στις εικόνες που ακολουθούν: Εικόνα 25.- Εξετάζοντας το ζευγάρι σημείων Α,Β. 22

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

24 Παράδειγμα: Πριν: Εικόνα 28.- Το πολύγωνο που θα υποστεί Clipping. Μετά: Εικόνα 29.- Το πολύγωνο αφού έχει υποστεί Clipping. Πρέπει να διευκρινίσουμε ότι όταν λέμε ότι το Α είναι μέσα η έξω εννοούμε ως προς κάποια γραμμή (δεξιά ή αριστερά ή κάτω ή πάνω), όχι εάν είναι μέσα ή έξω από όλο το παράθυρο. Επίσης μπορεί να υπάρξουν και δύο ενδιάμεσα σημεία σε ένα ευθύγραμμο τμήμα. 24

25 Βασικό πρόβλημα αυτού του αλγόριθμου είναι ότι σε περίπτωση που θέλαμε να κάνουμε Clipping ένα σχήμα σαν το παρακάτω: Εικόνα 30.- Το πολύγωνο που θα υποστεί Clipping. το αποτέλεσμα θα ήταν κάτι τέτοιο: Εικόνα 31.- Το πολύγωνο αφού έχει υποστεί Clipping. Δηλαδή δημιουργούνται ενωμένα Clipped Polygons και όχι κάτι τέτοιο: Εικόνα 32.- Το πολύγωνο όπως έπρεπε να ήταν μετά το Clipping. Τη λύση σε αυτό το πρόβλημα δίνει ο αλγόριθμος των Weiler-Atherton. 25

26 Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Weiler-Atherton ΓΙΑ POLYGON CLIPPING: Ο αλγόριθμος των Weiler-Atherton είναι πιο γενικός αλγόριθμος καθώς το ορατό παράθυρο τώρα δεν είναι αποκλειστικά ορθογώνιο. Έτσι έχουμε 2 ειδών πολύγωνα. Το πολύγωνο που θα υποστεί Clipping και το πολύγωνο ως προς το οποίο θα γίνει το Clipping. Παράδειγμα: Εικόνα 33.- Το πολύγωνο Β θα υποστεί Clipping ως προς το Α. Στο παράδειγμα αυτό το πολύγωνο που θα υποστεί clipping είναι το Β (κόκκινο), ενώ αυτό που ως προς το οποίο θα γίνει το clipping είναι το Α (άσπρο). Αυτός ο αλγόριθμος δέχεται σαν είσοδο τις κορυφές των πολυγώνων και έχει σαν έξοδο λίστες από σημεία που εκφράζουν ένα ή περισσότερα πολύγωνα. Κάθε πολύγωνο ελέγχεται δεξιόστροφα. Βρίσκει τα σημεία τομής τους και αποθηκεύει κάθε πολύγωνο σαν συνεχόμενα σημεία (κορυφές και σημεία τομής). Επίσης φτιάχνεται μια λίστα, για κάθε πολύγωνο(στην πραγματικότητα μόνο για το ένα),που δείχνει ποια σημεία τομής συναντιούνται κατά την είσοδο στο άλλο πολύγωνο και ποια κατά την έξοδο: Λίστα για Α:A1,A2,A3,A4 Λίστα για Β:Β1,Β2,Β3,Β4,Β5,Β6 Σημεία Τομής:Γ1,Γ2,Γ3,Γ4 Αλλαγμένη λίστα για Α: A1,A2,Γ2,Γ3,A3,A4,Γ4,Γ1 Αλλαγμένη λίστα για Β: Β1,Γ1,Β2,Γ2,Β3,Β4,Β5,Γ3,Γ4,Β6 Σημεία τομής εισόδου του Β:Γ1,Γ3 26

27 Εικόνα 34.- Καταγραφή των σημείων τομής και των κορυφών. Η πορεία που ακολουθείται έχει ως εξής: Ξεκινάμε από το πρώτο σημείο τομής στη λίστα εισόδου:γ1 Από τη λίστα του Β παίρνουμε τα επόμενα σημεία μέχρι να βρούμε ένα σημείο εξόδου:γ2 Ακολούθως πάμε στη λίστα του Α(στο Γ2) και συνεχίζουμε να πέρνουμε σημεία μέχρι να βρούμε ένα σημείο εξόδου του Α(ή αλλιώς εισόδου του Β):Γ3 Πάμε στη λίστα του Β στο Γ3 και παίρνουμε σημεία μέχρι να βρούμε σημείο εξόδου του Β:Γ4 Πάμε στη λίστα του Α στο Γ4 και παίρνουμε τα σημεία μέχρι να συναντήσουμε σημείο εξόδου.όμως δε υπάρχει άλλο κι έτσι φτάνουμε στο τέλος, αφού επιστρέφουμε πάλι στο Γ1. Το αποτέλεσμα είναι ένα πολύγωνο με κορυφές τα σημεία:γ1,β2,γ2,γ3,γ4 Εικόνα 35.- Εφαρμόζουμε το Clipping. Πρέπει να χρησιμοποιήσουμε όλα τα στοιχεία την λίστας εισόδου του Β. Σε περίπτωση που φτάσουμε στο τέλος (έχουμε ήδη δημιουργήσει ένα πολύγωνο και έχουν περισσέψει σημεία στη λίστα εισόδου) ξανακάνουμε το ίδιο από την αρχή ξεκινώντας από το 1 ο σημείο που έχει περισσέψει.με τον τρόπο αυτό δημιουργούνται διαφορετικά πολύγωνα και όχι ένα όπως στον αλγόριθμο Sutherland-Hodgeman Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Liang-Barsky ΓΙΑ POLYGON CLIPPING: Στον αλγόριθμο των Liang-Barsky το πολύγωνο εξετάζεται διαμέσου των πλευρών του. Όπως και στην περίπτωση του Line Clipping αλγόριθμου των Liang-Barsky έτσι και εδώ χρησιμοποιείται παραμετροποίηση. Αν Ρ1,Ρ2 είναι τα άκρα της πλευράς τότε Ρ(u)=P1+uΔΡ,με 0<u 1 την παράμετρο. Η περιοχή χωρίζεται πάλι σε 9 τμήματα και κάποιο σημείο το οποίο ανήκει σε ένα τμήμα ικανοποιεί 2,3 ή 4 συνθήκες, όπως φαίνεται παρακάτω: 27

28 Εικόνα 36.- Πλήθος των συνθηκών που ικανοποιούν τα σημεία ανάλογα με την περιοχή Τα σημεία που βρίσκονται μέσα στο ορατό παράθυρο πρέπει να είναι: κάτω από την TOP πλευρά, πάνω από την BOTTOM, δεξιά από την LEFT και αριστερά από την RIGHT. Παράδειγμα(1): Εικόνα 37.- Η γραμμή που θα υποστεί Clipping και οι τομές με τις ευθείες του παραθύρου. Εδώ uin1, uin2, uout1, uout2 είναι οι τομές με τις ευθείες των πλευρών BOTTOM,LEFT,TOP,RIGHT αντίστοιχα, με uin1 την μικρότερη και uout2 την μεγαλύτερη. Αν uin2 uout1 (αναφερόμαστε στην x συντεταγμένη) η γραμμή περνά μέσα απ το παράθυρο και η αρχή και το τέλος της καθορίζονται αν θέσουμε στην παράμετρο u=0 και u=1. 28

29 Παράδειγμα(2): Εικόνα 38.- Η γραμμή που θα υποστεί Clipping και οι τομές με τις ευθείες του παραθύρου. Αν uin2 >uout1 η γραμμή δεν περνά μέσα απ το παράθυρο, όμως αν περνά από 2 γωνιακές περιοχές και όχι 3 τότε πρέπει να συμπεριλάβουμε στο ορατό παράθυρο και το γωνιακό σημείο (τη μια κορυφή δηλαδή του παραθύρου). Γενικά, αν μια πλευρά του πολυγώνου εισέρχεται σε γωνιακή περιοχή τότε γίνεται ορατή η αντίστοιχη κορυφή του παραθύρου.επειδή κάποια απ αυτά τα σημεία μπορεί να μη συμπεριλαμβάνονται στο πολύγωνο υπάρχει ένα στάδιο αργότερα που τα εξαιρεί. Για πλευρές κάθετες και οριζόντιες θεωρούμε την τιμή της παραμέτρου ± Το πρόβλημα με τα ενωμένα clipped polygons υπάρχει και εδώ CLIPPING ΓΡΑΜΜΩΝ Εδώ αφού αναφερόμαστε σε γραμμές έχουμε τρεις βασικές περιπτώσεις: 1. Η γραμμή να είναι εξ ολοκλήρου εντός της ορατής περιοχής οπότε και απεικονίζεται ως έχει 2.Η γραμμή να είναι εξ ολοκλήρου εκτός της ορατής περιοχής οπότε και απορρίπτεται 3.Μέρος της γραμμής να είναι μέσα στην ορατή περιοχή οπού εφαρμόζουμε τον επιθυμητό αλγόριθμο ώστε να κάνουμε clipping. Θα εστιάσουμε στην περίπτωση δισδιάστατου περιβάλλοντος και σε ορατό παράθυρο ορθογώνιου σχήματος.πολλές διαφορετικές προσεγγίσεις έχουν γίνει για να δημιουργηθεί ένας αλγόριθμος που να υλοποιεί Line Clipping η κάθε μια 29

30 με τα δικά της μειονεκτήματα και πλεονεκτήματα. Τρεις αλγόριθμου είναι οι περισσότερο διαδεδομένοι, των: Cohen-Sutherland [1968] Liang-Barsky [1984] NIcholl-Lee-Nicholl [1987] Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Cohen-Sutherland ΓΙΑ LINE CLIPPING: Ο αλγόριθμος των Cohen-Sutherland [5] είναι ο περισσότερο δημοσιευμένος και χρησιμοποιημένος αλλά αυτό το οφείλει στο γεγονός οτι είναι o παλαιότερος όλων (1968).Είναι ιδιαίτερα αποτελεσματικός στις περιπτώσεις που η γραμμή στην οποία θέλουμε να εφαρμόσουμε το Clipping απορρίπτεται εξ ολοκλήρου (Reject) ή εμφανίζεται εξ ολοκλήρου (Accept).Μειονέκτημά του αποτελεί το γεγονός ότι ο έλεγχος (testing) και το clipping γίνονται με καθορισμένη σειρά με αποτέλεσμα να υπάρχουν περιπτώσεις όπου ο αλγόριθμος κάνει άσκοπο clipping όπως αυτή των εξωτερικών τομών.με τον όρο εξωτερικές τομές εννοούμε τις τομές της δοσμένης γραμμής με τις προεκτάσεις των πλευρών του ορατού παραθύρου ( clip window ) που όπως γίνεται αντιληπτό δεν θα συμπεριληφθούν στην τελική ορατή γραμμή. Η αρχική ιδέα ήταν να χωριστεί ο χώρος σε εννέα (9) περιοχές με σύνορα τις τέσσερις ευθείες που δημιουργούν το ορατό παράθυρο, δηλαδή τις X left,x right,y top,υ bottom. Επίσης χρησιμοποιείται 4-bit outcode που ορίζεται ως εξής: Το 1 ο bit (MSB)έχει την τιμή 1 αριστερά της X left γραμμής και 0 δεξιά της. Το 2 ο bit έχει την τιμή 1 δεξιά της X right γραμμής και 1 αριστερά της. Το 3 ο bit έχει την τιμή 1 κάτω από την Υ bottom γραμμή και 0 πάνω από αυτή. Το 4 ο bit (LSB) έχει την τιμή 1 πάνω από την Y top γραμμή και 0 κάτω από αυτή. Έτσι δημιουργείται η παρακάτω κωδικοποίηση: X left X right Y top Y bottom Εικόνα 39.- Τα outcodes των περιοχών. 30

31 Το μωβ πεδίο είναι το ορατό μας παράθυρο. Η μεθοδολογία που ακολουθείται είναι η ακόλουθη: 1. Αν και τα δύο άκρα της δοσμένης γραμμής έχουν outcode 0000 τότε η γραμμή εμφανίζεται ως έχει (ACCEPT) 2. Αν η λογική AND πράξη μεταξύ τους δίνει έστω και ένα 1 τότε ολόκληρη η γραμμή είναι εκτός του παραθύρου, οπότε απορρίπτεται (REJECT) 3. Σε κάθε άλλη περίπτωση κάνω Clipping ως εξής: ελέγχω τα bit (4,3,2,1) και όταν κάποιο έχει την τιμή 1 κάνω Clipping ως προς την αντίστοιχη γραμμή (Y top,υ bottom,x right, X left ) απορρίπτοντας το μέρος της δοσμένης γραμμής που είναι έξω από το παράθυρο και θέτοντας ως νέο άκρο το σημείο τομής και επαναλαμβάνουμε από το βήμα 1. Σαν παράδειγμα παρουσιάζουμε το παρακάτω σχήμα όπου η μια άκρη της γραμμής (Α) έχει outcode 0100 ενώ η άλλη (Β) έχει 1010 και η AND πράξη τους δεν δίνει 1 άρα είμαστε στην περίπτωση 3 που σημαίνει ότι η γραμμή θα υποστεί Clipping. B A Εικόνα 40.- Η γραμμή πριν υποστεί Clipping. Παρατηρούμε ότι το τέταρτο bit του (Β) είναι 1 (1010) άρα γίνεται Clipping με την Y top ευθεία, απορρίπτω το πάνω τμήμα της δοσμένης γραμμής και θεωρώ σαν νέο άκρο το σημείο τομής Β : 31

32 B A Εικόνα 41.- Η γραμμή αφού υποστεί Clipping ως προς την Y top ευθεία. Κατόπιν γίνεται το ίδιο με την X right ευθεία αφού τώρα το 2ο bit είναι 1 (0010) και τη θέση του Β τώρα παίρνει το Β : B A Εικόνα 42.- Η γραμμή αφού υποστεί Clipping ως προς την X right ευθεία. Και εφόσον όσο είμαστε μέσα στο ορατό παράθυρο το outcode είναι 0000 πάμε στην τομή της γραμμής με την Υ bottom ευθεία αφού εκεί το τρίτο bit είναι 1 (0100) και απορρίπτεται το κάτω τμήμα της γραμμής.το νέο άκρο τώρα είναι το Α που παίρνει τη θέση του Α: 32

33 B A Εικόνα 43.- Η γραμμή αφού υποστεί Clipping ως προς την Y bottom ευθεία. Έτσι τελικά το (Α Β ) είναι το ορατό τμήμα της αρχικής γραμμής (ΑΒ) δηλαδή το τμήμα που βρίσκεται μέσα στο ορατό παράθυρο. 33

34 FLOWCHART Ακολουθεί το Flowchart του αλγορίθμου των Cohen-Sutherland όπου έχει γίνει η αντιστοιχία των Y top,υ bottom,x right, X left με τα Ymax,Ymin,Xmax,Xmin αντίστοιχα: Procedure CompOutcode 34

35 Procedure CSLineClipping 35

36 Παράδειγμα Θα εφαρμόσουμε τον αλγόριθμο για τα τυχαία σημεία P0(X0,Y0) και P1(X1,Y1) που φαίνονται στο παρακάτω σχήμα: Εικόνα 44.- Η γραμμή P0P1 πριν υποστεί Clipping. Για το P0(X0,Y0) η Procedure CompOutcode δίνει: Code=0 Y>Ymax (Τ) CODE=TOP (1000) X>Xmax (F) X<Xmin (F) RETURN CODE=1000 Ομοίως για το P1(X1,Y1) η Procedure CompOutcode δίνει: Code=0 Y>Ymax (F) Υ<Υmin (T) CODE=BOTTOM (0100) X>Xmax (F) X<Xmin (F) RETURN CODE=

37 Στη συνέχεια στη CSLineclipping γίνονται τα ακόλουθα: ACCEPT=F DONE=F outcode0=1000 outode1=0100 (outcode0 outcode1)==0 (F) (outcode0&&outcode1) ==1 (F) outcodeout=outcode0 (oucode0&&top)==1 (T) Y=Ymax, X=X0+(X1-X0)*(Ymax-Y0)/(Y1-Y0) outcodeout=-outcode0 (T) X0=X,Y0=Y,outcode0=0000 DONE==F (T) (outcode0 outcode1)==0 (F) (outcode0&&outcode1) ==1 (F) outcodeout=outcode1 (oucode0&&top)==1 (F) (oucode0&&bottom)==1 (T) Y=Ymin, X=X0+(X1-X0)*(Ymin-Y0)/(Y1-Y0) outcodeout=-outcode0 (F) X1=X,Y1=Y,outcode1=0000 DONE==F (T) (outcode0 outcode1)==0 (T) ACCEPT=T DONE=T 37

38 DONE==F (F) END Έτσι τελικά η ορατή γραμμή είναι αυτή που φαίνεται παρακάτω: Εικόνα 45.- Η γραμμή μετά το Clipping. C Code Μια ενδεικτική υλοποίηση σε C κώδικα του αλγορίθμου των Cohen-Sutherland [10] παρουσιάζεται στο Παράρτημα Α Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Liang-Barsky ΓΙΑ LINE CLIPPING Ο αλγόριθμος Liang-Barsky [3] παρουσιάστηκε το 1984 και αποτελεί βελτίωση του αλγορίθμου των Cyrus-Beck [4]. Χρησιμοποιεί παραμετροποίηση που έχει σαν πλεονέκτημα ότι δεν κάνει άσκοπο υπολογισμό των σημείων τομής της γραμμής που θα υποστεί Clipping με τις προεκτάσεις του ορατού παραθύρου, αλλά υπολογίζει την τιμή της παραμέτρου (t) που με τη βοήθειά της βρίσκει και τα σημεία εισόδου-εξόδου της γραμμής. Πλεονέκτημά του είναι η γρήγορη απόρριψη (REJECT) των γραμμών που δεν είναι ορατές μέσα στο παράθυρο αλλά και αυτών που είναι εξ ολοκλήρου ορατές (ACCEPT). Εν συγκρίσει με τον αλγόριθμο των Cohen-Sutherland [5] παρουσιάζει 36% έως 79% βελτίωση της απόδοσης [3] αφού στον Cohen-Sutherland γίνονται άσκοποι υπολογισμοί σημείων τομής. Αν Α(X1,Y1) και Β(X2,Y2) είναι τα δυο σημεία που ορίζουν τη γραμμή τότε χρησιμοποιώντας την παράμετρο t έχουμε: Χ=Χ1+tΔΧ και Y=Y1+tΔY, όπου: 0 t 1 και ΔΧ=Χ2-Χ1, ΔY=Y2-Y1 Έτσι μέσα στο ορατό παράθυρο ισχύει: Χmin X1+tΔΧ Χmax, 38

39 Ymin Y1+tΔY Ymax Δηλαδή η συνθήκη εντός του ορατού παραθύρου είναι tp k q k, κ=1,2,3,4,όπου: p1 =-ΔΧ, p2=δχ, p3=-δυ, p4=δυ και q1 =Χ1-Χmin, q2=χmax-x1, q3=υ1-υmin, q4=υmax-υ1 Υπάρχουν οι παρακάτω πιθανές περιπτώσεις: Αν p k =0 τότε η δοσμένη γραμμή είναι παράλληλη με κάποια από τις γραμμές του παραθύρου οπότε: -αν q k <0 απορρίπτεται η γραμμή (REJECT) -αν q k 0 ικανοποιείται η ανισότητα tp k q k άρα η γραμμή βρίσκεται μέσα στο παράθυρο ή περνάει από αυτό. Αν p k <0 η γραμμή εισέρχεται στην k ευθεία του παραθύρου, δηλαδή από μη ορατό τμήμα πηγαίνει σε ορατό (tk out q k / p k ) Αν p k >0 η γραμμή εξέρχεται απ την k ευθεία του παραθύρου, δηλαδή από ορατό τμήμα πηγαίνει σε μη ορατό (tk in q k / p k ) Για τις 2 τελευταίες περιπτώσεις έχω: t min =max[0, tk], k ε k out t max =min[1, tk], k ε k in έτσι όσο t min < t max κάνω Clipping και η ορατή γραμμή ξεκινά στο σημείο (X1+ t min ΔΧ, Y1+t min ΔY) και τελειώνει στο (X1+ t max ΔΧ, Y1+t max ΔY) Τα Χmin,Χmax,Ymax,Ymin αντιστοιχούν στα X left,x right,y top,y bottom Ας δούμε το ακόλουθο παράδειγμα: u4 u2 C u3 u1 Α Εικόνα 46.- Η γραμμή πριν το Clipping. Η μωβ περιοχή είναι το ορατό παράθυρο και η γραμμή ΑC είναι αυτή στην οποία θα εφαρμόσουμε το Clipping. Στην συγκεκριμένη περίπτωση έχουμε: p1<0,p2>0, p3<0,p4>0 Επομένως για k=1,3: 39

40 και για k=2,4: t min =max[0, q1/p1,q3/p3]=q1/p1 t max =min[1, q2/p2,q4/p4]=q4/p4 Και αφού q1/p1<q4/p4 η γραμμή AC θα υποστεί Clipping και τελικά το ορατό τμήμα της θα ξεκινά από το σημείο u1 και θα τελειώνει στο u4 όπως φαίνεται παρακάτω: u4 u1 Εικόνα 47.- Η γραμμή μετά το Clipping. 40

41 FLOWCHART Ακολουθεί το Flowchart του αλγορίθμου των Liang-Barsky: Function Cliptest(p,q,t0,t1) 41

42 Procedure Clipline2D(X0,Y0,X1,Y1) 42

43 Παράδειγμα Θα εφαρμόσουμε τον αλγόριθμο για τα τυχαία σημεία P0(X0,Y0) και P1(X1,Y1) που φαίνονται στο ακόλουθο σχήμα: Εικόνα 48.- Η γραμμή πριν το Clipping. : H Function Cliptest όταν πάρει σαν όρισμα (-ΔΧ,Χ0-Χleft,t0,t1) δίνει: ACCEPT=T -ΔΧ<0 (T) r=(x0-xleft)/-δχ r>t1=1 (F) r<t0=0 (F) Cliptest=ACCEPT=T H Function Cliptest όταν πάρει σαν όρισμα (ΔΧ,Χright-Χ0,t0,t1) δίνει: ACCEPT=T ΔΧ<0 (F) ΔΧ==0 (F) r=(xright-x0)/δχ r<t0=0 (F) r<t1=1 (F) Cliptest=ACCEPT=T 43

44 H Function Cliptest όταν πάρει σαν όρισμα (-ΔY,Y0-Ybottom,t0,t1) δίνει: ACCEPT=T -ΔY<0 (T) r=(y0-ybottom)/δy r>t1=1 (F) r>t0=0 (T) t0=r Cliptest=ACCEPT=T H Function Cliptest όταν πάρει σαν όρισμα (ΔY,Ytop-Y0,t0,t1) δίνει: ACCEPT=T ΔY<0 (F) ΔY==0 (F) r=(ytop-y0)/δχ r<t0=0 (F) r<t1=1 (T) t1=r Cliptest=ACCEPT=T Έτσι η Procedure Clipline2D θα δώσει: u0=0 u1=1 ΔΧ=Χ1-Χ0 Cliptest(-ΔΧ,Χ0-Χleft,u0,u1)==T (T) Cliptest(ΔΧ,Χright-Χ0,u0,u1)==T (T) ΔY=Y1-Y0 44

45 Cliptest(-ΔY,Y0-Ybottom,u0,u1)==T (T) Cliptest(ΔY,Ytop-Y0,u0,u1)==T (T) u1<1 (T) X1=X0+u1ΔΧ Y1=Y0+u1ΔY u0>0 X0=X0+u0ΔΧ Y0=Y0+u0ΔY END Έτσι τελικά η ορατή γραμμή είναι αυτή που φαίνεται παρακάτω: Εικόνα 49.- Η γραμμή μετά το Clipping. C Code Στο Παράρτημα Β παρουσιάζεται μια ενδεικτική υλοποίηση σε C κώδικα του αλγορίθμου των Liang-Barsky. 45

46 Ο ΑΛΓΟΡΙΘΜΟΣ ΤΩΝ Nicholl-Lee-Nicholl ΓΙΑ LINE CLIPPING Ο αλγόριθμος Nicholl-Lee-Nicholl [2] δημιουργήθηκε το 1987.Είναι ο πιο περίπλοκος αλλά και ο πιο γρήγορος. Βασικό μειονέκτημά του η εφαρμογή του σε 2D περιβάλλον χωρίς την δυνατότητα επέκτασης σε τρεις διαστάσεις (3D). Μια αδυναμία των αλγορίθμων που είχαν παρουσιαστεί πριν τον Ν-L-N αλγόριθμο είναι ο υπολογισμός σημείων τομής που τελικά δεν συμπεριλαμβάνονται στο αποτέλεσμα. Στην περίπτωση του Ν-L-N για να αποφευχθούν οι υπολογισμοί των σημείων τομής της εκάστοτε γραμμής με τις προεκτάσεις των γραμμών του δεδομένου παραθύρου (clip window),κάτι που είχε παρατηρηθεί ως μειονέκτημα του QuickClip αλγορίθμου. Έστω τα δύο σημεία Α(X1,Y1) και Β(X2,Y2) που ορίζουν την ευθεία που θέλουμε να εξετάσουμε. Η μέθοδος που χρησιμοποιείται έχει σαν κεντρική ιδέα το χωρισμό του χώρου σε τοπολογίες με σύνορα τις ευθείες που ορίζονται από το σημείο Α και τις γωνίες του παραθύρου. Έτσι δημιουργούνται οι εξής υποπεριοχές: T,L,B,R,TB,TR,LB,LR. Πρώτη δουλειά είναι να εντοπίσουμε που βρίσκεται το σημείο Α σχετικά με το ορατό παράθυρο ενώ η περιοχή είναι πάλι χωρισμένη σε 9 κομμάτια, όπως φαίνεται στα παρακάτω σχήματα. Άν λάβουμε υπ όψη μας την συμμετρία τότε τρεις τοπολογίες καλύπτουν όλες τις πιθανές περιπτώσεις. Τέλος ακολουθεί ο εντοπισμός της περιοχής μέσα στην οποία βρίσκεται το Β και συνεπώς η απόρριψή του (REJECT), η αποδοχή του (ACCEPT) ή εντοπισμός του σημείου τομής του (CLIPPING). Οι τρεις τοπολογίες απεικονίζονται στα παρακάτω σχήματα (το ορατό παράθυρο εμφανίζεται με μωβ χρώμα): Τοπολογία 1: Το Α είναι μέσα στο ορατό παράθυρο -αν το Β είναι επίσης μέσα στο ορατό παράθυρο γίνεται απεικόνιση (ACCEPT) ολόκληρης της γραμμής. -αν το Β βρίσκεται σε κάποια απο τις περιοχές Τ,R,B,L γίνεται εύρεση του σημείου τομής με την πλευρά του ορατού παραθύρου και απεικόνιση της νέας γραμμής που ορίζεται από το Α και το σημείο τομής (CLIPPPING). 46

47 Τ L Α R B Εικόνα 50.- Ο χωρισμός των περιοχών βάσει του σημείου Α. Τοπολογία 2: Το Α είναι αριστερά απ το ορατό παράθυρο (συμμετρικές ειναι οι περιπτώσεις που το Α βρίσκεται δεξιά, πάνω ή κάτω από το ορατό παράθυρο) -αν το Β βρίσκεται σε κάποια απο τις περιοχές LT,LR,LB,L γίνεται εύρεση του σημείου τομής με την πλευρά του ορατού παραθύρου και απεικόνιση της νέας γραμμής που ορίζεται από το Α και το σημείο τομής (CLIPPPING). -αν το Β βρίσκεται αλλού, γίνεται απόρριψη της γραμμής (REJECT). LT L Α L L LR LB Εικόνα 51.- Ο χωρισμός των περιοχών βάσει του σημείου Α. Τοπολογία 3: 47

48 Η τοπολογία αυτή καλύπτει τις υπόλοιπες περιπτώσεις που δεν έχουν εξεταστεί μέχρι τώρα, δηλαδή τις γωνιακές περιοχές.σε κάθε μια διακρίνουμε δύο υποπεριπτώσεις.για την πάνω αριστερή γωνιακή περιοχή : 1. αν το Α βρίσκεται πάνω από τη νοητή διαγώνιο του παραθύρου τότε: -αν το Β εντοπιστεί μέσα σε κάποια απ τις περιοχές L,T,TR,TB,LB γίνεται εύρεση του σημείου τομής με την πλευρά του ορατού παραθύρου και απεικόνιση της νέας γραμμής που ορίζεται από το Α και το σημείο τομής (CLIPPPING). -αν το Β εντοπιστεί αλλού, γίνεται απόρριψη της γραμμής (REJECT). 2. αν το Α βρίσκεται κάτω από τη νοητή διαγώνιο του παραθύρου τότε: -αν το Β εντοπιστεί σε κάποια απ τις περιοχές L,T,TR,LR,LB γίνεται εύρεση του σημείου τομής με την πλευρά του ορατού παραθύρου και απεικόνιση της νέας γραμμής που ορίζεται από το Α και το σημείο τομής (CLIPPPING). -αν το Β εντοπιστεί αλλού, γίνεται απόρριψη της γραμμής (REJECT). A A T T L T TR L L TR TB LR LB LB Εικόνα 52.- Ο χωρισμός των περιοχών βάσει του σημείου Α. Για να βρούμε σε ποιά από τις περιοχές ανήκει το σημείο Β ώστε να διαπιστώσουμε αν θα γίνει CLIPPING ή όχι βρίσκουμε τις κλίσεις (slopes) των ευθειών που ενώνουν το Α με τις κορυφές του ορατού παραθύρου και τις συγκρίνουμε με την κλίση της ευθείας που ενώνει τα Α και Β. Ενδεικτικά αναφέρουμε ότι στην τοπολογία 2 αν: slope(αtr)<slope(αβ)<slope(αtl) τότε το Β είναι στην περιοχή LT,όπου εδώ TL και TR υποδηλώνουν τις κορυφές του ορατού παραθύρου. 48

49 Σχόλια: -Τα αρχικά που χρησιμοποιούνται για τις περιοχές (π.χ. TR, LB) δείχνουν τις πλευρές του παραθύρου ως προς τις οποίες θα υποστεί clipping η γραμμή της οποίας το άκρο βρίσκεται στην περιοχή αυτή.δηλαδή αν το Β βρίσκεται στην περιοχή ΤΒ τότε η ευθεία των Α και Β τέμνει τις TOP και BOTTOM πλευρές του παραθύρου και η γραμμή θα υποστεί clipping ως προς αυτές. -Επίσης για την αποφυγή μακροσκελούς κώδικα που θα περιλαμβάνει παρόμοια αλλά όχι ίδια τμήματα για τις συμμετρικές περιπτώσεις μπορούμε να κάνουμε rotation κατά ένα πολλαπλάσιο των 90 μοιρών ως προς το ορατό παράθυρο ή αντανάκλαση ως προς την ευθεία x=-y ή συνδυασμό αυτών. -Ο NLN αποφεύγει τις εξωτερικές τομές διαιρώντας το χώρο σε περισσότερες από τον CS(Cohen-Sutherland)περιοχές.Έχει τις λιγότερες διαιρέσεις και τις λιγότερες συγκρίσεις (1/3 απ του CS και 1/2 απ του LB(Liang- Barsky)) άρα είναι ο πιο ταχύς και αποδοτικός και συνεπώς ο πιο επιθυμητός σε 2D περιβάλλοντα. -Μπορεί να ανιχνεύσει απο την αρχή την θέση δυο σημείων και να λειτουργεί μόνο σε περίπτωση που είναι το ένα σημείο μέσα στο παράθυρο,διαφορετικά μπορεί να γίνουν άσκοπες πράξεις. -Πολύ μικρό ποσοστό των γραμμών υπόκεινται Clip -μόλις το 6% κατά μέσο όρο [1]- έτσι για τη βελτίωση του αλγορίθμου πρέπει να επικεντρωθούμε στα προηγούμενα στάδια (μέχρι την απόφαση να κάνουμε CLIPPING). -Μειονέκτημα η έλλειψη επέκτασης στις τρείς διαστάσεις (3D). 49

50 FLOWCHART Ακολουθεί το Flowchart του αλγορίθμου N-L-N: Εύρεση τοπολογίας: 50

51 Τοπολογία1: 51

52 Τοπολογία2L: Τοπολογία2Τ, Τοπολογία2Β, Τοπολογία2R : Για τις περιπτώσεις αυτές μπορούμε να ξανακάνουμε τα αντοίστιχα Flowcharts και επομένως να ξαναγράψουμε τους αντίστοιχους κώδικες ή να κάνουμε rotation ως προς το παράθυρο κατά ένα πολλαπλάσιο των 90 μοιρών ή/και αντανάκλαση ως προς τον x=-y άξονα. 52

53 Τοπολογία3LT: 53

54 Τοπολογία3LB, Τοπολογία3RΒ, Τοπολογία3RT : Ομοίως για τις περιπτώσεις αυτές μπορούμε να ξανακάνουμε τα αντοίστιχα Flowcharts και επομένως να ξαναγράψουμε τους αντίστοιχους κώδικες ή να κάνουμε rotation ως προς το παράθυρο κατά ένα πολλαπλάσιο των 90 μοιρών ή/και αντανάκλαση ως προς τον x=-y άξονα. C Code Στο Παράρτημα Γ παρουσιάζεται μια ενδεικτική υλοποίηση του N-L-N αλγόριθμου σε C κώδικα. 54

55 Ο ΑΛΓΟΡΙΘΜΟΣ QuickClip ΓΙΑ LINE CLIPPING Ο αλγόριθμος QuickClip [1] βασίζεται στην παρατήρηση ότι συνήθως οι περισσότερες γραμμές δεν υπόκεινται CLIPPING αλλά REJECT. Πιο συγκεκριμένα υποστηρίζεται ότι ένα ποσοστό της τάξης του 88% των γραμμικών τμημάτων υπόκεινται εξ ολοκλήρου απόρριψη [1]. Έτσι χρησιμοποιείται μια γρήγορη μέθοδος απόρριψης των γραμμών εκείνων που εντοπίζονται ολόκληρες εκτός του παραθύρου στο οποίο θα εφαρμόσουμε τη διαδικασία του CLIPPING.Με τη μέθοδο αυτή χρησιμοποιούνται λίγες μόνο συγκρίσεις ώστε τελικά οι γραμμές να υποστούν REJECT. Η μέθοδος αυτή ξεκινάει με την ανίχνευση της κλίσης της ευθείας(αν είναι θετική ή αρνητική) με δύο συγκρίσεις των συντεταγμένων των σημείων που ορίζουν το ευθύγραμμο τμήμα. Δηλαδή γίνεται σύγκριση του X1 με το X2 και του Y1 με το Y2. Θα εξετάσουμε την περίπτωση που η κλίση είναι θετική. Τότε αν το κατώτερο σημείο του ευθύγραμμου τμήματος (μπορεί να είναι το Α(X1,Y1) ή το Β(X2,Y2)) βρίσκεται πιο ψηλά από την πάνω οριζόντια ευθεία του παραθύρου η οποία ορίζεται από το Υ top (μια πράξη σύγκρισης) απορρίπτουμε αμέσως την γραμμή αυτή. To ίδιο κάνουμε και για τα ευθύγραμμα τμήματα που εντοπίζονται δεξιά από το X right,κάτω από το Υ bottom και αριστερά από το X left.έτσι όπως φαίνεται στα παρακάτω σχήματα έχει γίνει REJECT σε όλα τα ευθύγραμμα τμήματα που βρίσκονται εξ ολοκλήρου εντός των γραμμοσκιασμένων περιοχών. Εικόνα 53.- Η περιοχή όπου ισχύει X<X left. 55

56 Εικόνα 54.- Η περιοχή όπου ισχύει Y<Y top. Εικόνα 55.- Η περιοχή όπου ισχύει X>X right. 56

57 Εικόνα 56.- Η περιοχή όπου ισχύει Y>Y bottom. Έτσι παρατηρούμε ότι ένα μεγάλο ποσοστό των ευθειών που είναι ολόκληρες εκτός παραθύρου ανιχνεύονται με τη βοήθεια λίγων συγκρίσεων. Εάν δεν βρισκόμαστε σε καμία από αυτές τις περιπτώσεις, προσπαθούμε να ανιχνεύσουμε την περίπτωση του να βρίσκεται ολόκληρη η γραμμή μέσα στο παράθυρο (περίπτωση ACCEPT). Αυτό γίνεται με παρόμοιο τρόπο με παραπάνω ύστερα από τέσσερις συγκρίσεις των συντεταγμένων των γραμμών με τα Υ t,χ l,y b,x r.στην περίπτωση της πλήρους αποδοχής του ευθύγραμμου τμήματος θέλουμε τα X1,X2,Y1,Y2 να βρίσκονται εντός του παραθύρου. Αν δεν γίνει αποδεκτή (ACCEPT) ολόκληρη η γραμμή, οδηγούμαστε στο στάδιο να κάνουμε CLIPPPING. Ανάλογα με κάποιες συνθήκες οι οποίες φαίνονται στο Flowchart του αλγορίθμου, αποφασίζουμε ως προς ποια ευθεία του παραθύρου θα κάνουμε CLIP. Υπάρχουν όμως αρκετές περιπτώσεις όπου το σημείο τομής της γραμμής με την εκάστοτε πλευρά του παραθύρου δε βρίσκεται πάνω στο παράθυρο αλλά πάνω σε μια προέκταση των πλευρών του. Στις περιπτώσεις αυτές γίνεται CLIPPING στην ευθεία και κατόπιν REJECT της γραμμής. Αυτή είναι μια από τις περιπτώσεις που δεν καλύπτει το γρήγορο CLIPPPING που εισάγει αυτός ο αλγόριθμος. Έτσι, θα πρέπει ύστερα από το στάδιο του CLIP, να σώσουμε το σημείο τομής και να του κάνουμε τις απαραίτητες συγκρίσεις για να δούμε εάν βρίσκεται πάνω στο παράθυρο. Εάν όχι, διαγράφουμε το σημείο αυτό, όπως και κάνουμε REJECT ολόκληρη τη γραμμή. Μια τέτοια περίπτωση απεικονίζεται παρακάτω: 57

58 B xl xr yt A yb Εικόνα 57.- Η γραμμή ΑΒ που θα υποστεί Clipping και μετά Reject. Στην περίπτωση που η κλίση είναι αρνητική, δημιουργούμε ένα είδωλο του παραθύρου και του ευθύγραμμου τμήματος ως προς τον άξονα των Χ και κάνουμε τις απαραίτητες αλλαγές των τεταγμένων. Με τον τρόπο αυτό μετατρέπουμε την κλίση της ευθείας μας σε θετική και ακολουθούμε την ίδια διαδικασία με παραπάνω. Στο τέλος, κάνουμε αντιστοίχιση των αποτελεσμάτων μας στο πραγματικό παράθυρο (αν δεν έχει γίνει REJECT). Παρατηρούμε ότι το πλεονέκτημα του αλγόριθμου αυτού είναι το γρήγορο REJECT της πλειοψηφίας των γραμμών, αλλά έχει το μειονέκτημα ότι για μία γραμμή που μπορεί να βρίσκεται εκτός του παραθύρου, θα κάνει πρώτα CLIPPPING και μετά θα την απορρίψει (REJECT). Μάλιστα, συνήθως δεν είναι μόνο ένα το «άχρηστο» CLIPPING, αλλά στη χειρότερη περίπτωση μπορούν να φτάσουν τα τέσσερα. Αυτό είναι ανεπιθύμητο καθώς η διαδικασία του CLIPPING είναι μία πολύ χρονοβόρα διαδικασία και καλό θα ήταν να την αποφεύγουμε όσο το δυνατόν περισσότερο και να την εφαρμόζουμε μόνο στις περιπτώσεις που είναι αναπόφευκτο να γίνει. FLOWCHART Ακολουθεί το Flowchart του αλγορίθμου QuickClip: 58

59 59

60 C Code Στο Παράρτημα Δ παρουσιάζεται μια ενδεικτική υλοποίηση σε C κώδικα του QuickClip αλγόριθμου. ΚΕΦΑΛΑΙΟ 4 ΠΡΟΤΕΙΝΟΜΕΝΟΣ ΑΛΓΟΡΙΘΜΟΣ ΓΙΑ LINE CLIPPING ΠΑΡΟΥΣΙΑΣΗ Ο παρακάτω αλγόριθμος δημιουργήθηκε για line Clipping ένα στάδιο του pipeline των γραφικών. Θεωρούμε γραμμή AB με A(X1,Y1) και B(X2,Y2) στην οποία θέλουμε να εφαρμόσουμε Clipping ως προς ένα ορατό παράθυρο σχήματος παραλληλογράμμου που ορίζεται από τις ευθείες Χ left,x right,y top,υ bottom. Ο αλγόριθμος αυτός πραγματοποιεί έναν συνδυασμό κάποιων χαρακτηριστικών των αλγορίθμων Nicholl-Lee-Nicholl και QuickClip, που παρουσιάστηκαν προηγουμένως, ώστε να εκμεταλλευτεί τα πλεονεκτήματά τους και να μειώσει της αδυναμίες τους. Ο αλγόριθμος N-L-N είναι ένας από τους βασικούς αλγορίθμους που χρησιμοποιούνται ευρέως στον τομέα των 2D γραφικών καθώς αποφεύγει τις εξωτερικές τομές (τομές μεταξύ του ΑΒ και των προεκτάσεων των πλευρών του παραθύρου) διαιρώντας το χώρο σε περισσότερες από τον C-S (Cohen-Sutherland) περιοχές, έχει τις λιγότερες διαιρέσεις και τις λιγότερες συγκρίσεις (1/3 από τον C-S και 1/2 από τον L-B (Liang-Barsky)) άρα είναι ο πιο ταχύς και αποδοτικός και συνεπώς ο πιο επιθυμητός σε 2D περιβάλλοντα. Όμως πολύ μικρό ποσοστό των γραμμών υπόκεινται Clipping -μόλις το 6% κατά μέσο όρο [1]- έτσι για τη βελτίωση του αλγορίθμου πρέπει να επικεντρωθούμε στα προηγούμενα στάδια (μέχρι την απόφαση να κάνουμε Clip).Πιο συγκεκριμένα στο [1] υποστηρίζεται ότι τα 8/9 των γραμμών αυτών υπόκεινται Reject αφού είναι εξ ολοκλήρου εκτός του ορατού παραθύρου και μόνο το 1/9 Accept ή Clip. Για το λόγο αυτό δημιουργήθηκε ο QuickClip, ένας αλγόριθμος που στοχεύει στο πολύ γρήγορο reject ενός μεγάλου αριθμού γραμμών, όχι όμως όλων όσων πρέπει να υποστούν reject. Σκοπός λοιπόν του προτεινόμενου αλγορίθμου είναι να επιτευχθεί Full Reject (δηλαδή απόρριψη όλων των γραμμών που δεν είναι εξ ολοκλήρου ορατές) με όσο το δυνατόν λιγότερες πράξεις σε συνδυασμό με ένα αποδοτικό και συνολικά γρήγορο αλγόριθμο. Παίρνουμε σαν εισόδους τη γραμμή AB με Α(X1,Y1) και Β(X2,Y2) καθώς και τα X left,x right,y top,υ bottom.όπως και στον QuickClip αλγόριθμο γίνονται κάποιες αρχικές συγκρίσεις μεταξύ των συντεταγμένων των δεδομένων σημείων και του παραθύρου ως προς το οποίο θα γίνει το Clipping με στόχο το γρήγορο reject των γραμμών που βρίσκονται εξ ολοκλήρου πάνω από το Y top, κάτω από το Υ bottom, αριστερά του X left και δεξιά του X right.για να επιτευχθεί αυτό γρήγορα προσδιορίστηκε η (θετική ή αρνητική) κλίση της γραμμής ΑΒ χωρίς να γίνει ο υπολογισμός της. 60

61 Τα σχήματα που ακολουθούν δείχνουν τις καλυπτόμενες περιπτώσεις. Με γκρι χρώμα απεικονίζεται το ορατό παράθυρο. Οι γραμμές που εντοπίζονται εξ ολοκλήρου μέσα στις μωβ περιοχές υπόκεινται κατ ευθείαν Reject: Εικόνα 58.- Η περιοχή όπου ισχύει X<X left. Εικόνα 59.- Η περιοχή όπου ισχύει Υ>Υ top. 61

62 Εικόνα 60.- Η περιοχή όπου ισχύει X>X right. Εικόνα 61.- Η περιοχή όπου ισχύει Υ<Υ bottom. 62

63 Μένουν όμως αρκετές περιπτώσεις που δεν έχουν καλυφθεί, όπως αυτή του παρακάτω σχήματος: B yt xl xr A yb Εικόνα 62.- Η γραμμή ΑΒ επιθυμούμε να υποστεί Reject. Είναι δυνατόν να γίνουν μέχρι και τρία άσκοπα clipping με τη μέθοδο του QuickClip και τελικά η γραμμή να υποστεί reject. Για αυτές τις περιπτώσεις και για να αποφύγουμε τις άσκοπες και χρονοβόρες πράξεις του Clipping χρησιμοποιείται η μέθοδος των τοπολογιών του N-L-N αλγορίθμου. Πιο συγκεκριμένα με δύο συγκρίσεις βρίσκουμε τις πιθανές τοπολογίες που μπορεί να βρίσκεται το Α και δεν έχουν συμπεριληφθεί ήδη αλλά πρέπει να ληφθούν υπ όψη ώστε να υποστούν και αυτές Reject, Accept ή Clipping. Η καινοτομία εδώ είναι ότι οι τοπολογίες (stages) ακολουθούνται από (+) ή (-) για να δηλωθεί κάθε φορά η θετική ή αντίστοιχα αρνητική κλίση του ΑΒ. yt xl xr ΤΟΠΟΛΟΓΙΑ1 yb Εικόνα 62.- Η ΤΟΠΟΛΟΓΙΑ 1 (το ορατό παράθυρο). 63

64 Εικόνα 63.- H ΤΟΠΟΛΟΓΙA 2T, η ΤΟΠΟΛΟΓΙA 2R, η ΤΟΠΟΛΟΓΙA 2B και η ΤΟΠΟΛΟΓΙA 2L (με άσπρο). Εικόνα 64.- H ΤΟΠΟΛΟΓΙA 2LT, η ΤΟΠΟΛΟΓΙA 2RT, η ΤΟΠΟΛΟΓΙA 2RB και η ΤΟΠΟΛΟΓΙA 2LB (με μωβ). 64

65 FLOWCHART Ακολουθεί το Flowchart του προτεινόμενου αλγορίθμου: Ας υποθέσουμε λοιπόν ότι μετά τις συγκρίσεις αυτές καταλήγουμε στο συμπέρασμα ότι το σημείο Α εντοπίζεται στην τοπολογία STAGE1(+).Αυτό σημαίνει ότι είναι στην STAGE1 με θετική κλίση του ευθύγραμμου τμήματος ΑΒ και ισχύει X2 X1 και Y2 Y1.Βλέπουμε λοιπόν από το Flowchart της STAGE1(+) ότι με 2 συγκρίσεις (αυτή τη φορά των X2 και Y2) βρίσκουμε αν θα γίνει Accept του ΑΒ ή Clipping ως προς κάποια πλευρά του παραθύρου. Εδώ να σημειωθεί ότι αφού η κλίση του ΑΒ είναι θετική στην STAGE1(+),αν γίνει Clipping θα γίνει ως προς την ΤΟP ή RIGHT πλευρά του παραθύρου. Δηλαδή θα βρεθεί το σημείο τομής της γραμμής με τις ευθείες X right ή Y top. 65

66 Αντίστοιχα στην STAGE1(-) αν γίνει Clipping αυτό θα γίνει ως προς την BOTTOM ή RIGHT πλευρά. Με τις δύο αυτές τοπολογίες έχουν καλυφθεί και οι περιπτώσεις που μπορεί να γίνει Accept του AB. STAGE1(+) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y top - Y1)/( X right -X1) A Εικόνα 65.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE1(+). 66

67 STAGE1(-) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) A Εικόνα 66.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE1(-). Σχετικά με την τοπολογία STAGE2 πρέπει να καλύψουμε μόνο τις περιπτώσεις 2L(+),2L(-),2T(-),2B(+).Οι άλλες περιπτώσεις,όπως η 2Β(-) δεν έχει νόημα να μελετηθούν αφού εχουν μελετηθεί από τα προηγούμενα βήματα Reject. 67

68 STAGE2L(+) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right,y top ) δηλαδή (Y top Y1)/( X right -X1) LT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y top ) δηλαδή (Y top - \ Y1)/( X left -X1) Α Εικόνα 67.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE2L(+). Το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή. Επομένως πρέπει να μελετήσουμε τις πιθανές αυτές περιπτώσεις: 68

69 STAGE2L(-) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) LB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y bottom ) δηλαδή (Y bottom -Y1)/(X left -X1) Α Εικόνα 68.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE2L(-). Ομοίως με πρίν το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή.επομένως πρέπει να μελετήσουμε τις πιθανές αυτές περιπτώσεις: 69

70 STAGE2Β(+) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right,y top ) δηλαδή (Y top Y1)/( X right -X1) A Εικόνα 69.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE2B(+). Το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή.επομένως πρέπει να μελετήσουμε τις πιθανές αυτές περιπτώσεις: 70

71 STAGE2Τ(-) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right,y top ) δηλαδή (Y top Y1)/( X right -X1) A Εικόνα 70.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE2T(-). Όμοια με πριν το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή.επομένως πρέπει να μελετήσουμε τις πιθανές αυτές περιπτώσεις: 71

72 STAGE3LT(-) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right,y top ) δηλαδή (Y top Y1)/( X right -X1) LT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y top ) δηλαδή (Y top - \ Y1)/( X left -X1) LB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y bottom ) δηλαδή (Y bottom -Y1)/(X left -X1) D : η κλίση της διαγωνίου που ενώνει τα (X left, Y top ) και (X right, Y bottom ) δηλαδή (Y bottom - Y top )/( X right -X left ) A Εικόνα 71.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE3LT(-). Το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή. Τώρα όμως πρέπει να εξετάσουμε αν το Α βρίσκεται πάνω ή κάτω από την ευθεία της διαγωνίου του παραθύρου μέσω της σύγκρισης LT<D: 72

73 STAGE3LB(+) S : η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X2,Y2) δηλαδή (Y2- Y1)/(X2-X1) RB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right, Y bottom ) δηλαδή (Y bottom -Y1)/( X right -X1) RT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X right,y top ) δηλαδή (Y top Y1)/( X right -X1) LT: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y top ) δηλαδή (Y top - \ Y1)/( X left -X1) LB: η κλίση της ευθείας που ενώνει τα (X1,Y1) και (X left, Y bottom ) δηλαδή (Y bottom -Y1)/(X left -X1) D : η κλίση της διαγωνίου που ενώνει τα (X left, Y top ) και (X right, Y bottom ) δηλαδή (Y bottom - Y top )/( X left - X right ) 73

74 A Εικόνα 72.- H περιοχή που μπορεί να βρίσκεται το Β στην STAGE3LB(+). Το σημείο Β θα βρίσκεται κάπου μέσα στη γραμμοσκιασμένη περιοχή. Τώρα όμως πρέπει να εξετάσουμε αν το Α βρίσκεται πάνω ή κάτω από την ευθεία της διαγωνίου του παραθύρου μέσω της σύγκρισης LB>D: 74

75 C Code Στο παράρτημα Ε παρουσιάζεται μια ενδεικτική υλοποίηση σε C κώδικα του προτεινόμενου αλγορίθμου ΠΑΡΑΔΕΙΓΜΑΤΑ 1 o ΠΑΡΑΔΕΙΓΜΑ: Έστω ότι έχουμε το ορατό παράθυρο που φαίνεται στην εικόνα 73 (με έντονη γραμμή) και οι συντεταγμένες που το οριοθετούν (X L,X R,Y B,Y T ) είναι αντίστοιχα (200,350,50,200). Θέλοντας να διαπιστώσουμε αν γίνεται σωστά η διαδικασία του Clipping (και του Accept-Reject) θα δώσουμε τις συντεταγμένες ενός τυχαίου σχήματος που αποτελείται από 10 γραμμές και θα εξετάσουμε αν απεικονίζονται τα σωστά ευθύγραμμα τμήματα αφού εφαρμοστεί το Clipping αλλά και μετά από πόσες και ποιες πράξεις ολοκληρώνεται η διαδικασία αυτή σύμφωνα με τον προτεινόμενο αλγόριθμο. Τα αποτελέσματα θα συγκριθούν με τα αντίστοιχα των αλγορίθμων QuickClip και Nicholl-Lee-Nicholl. Εικόνα 73.- Το ορατό παράθυρο και το τυχαίο σχήμα που θα υποστεί clipping. 75

76 Για κάθε γραμμή υπολογίζουμε τις πράξεις που γίνονται από τον προτεινόμενο αλγόριθμο και από τους QuickClip και NLN και τα παραθέτουμε στον πίνακα 1: Συντεταγμένες Γραμμής Πράξεις QuickClip NLN Προτεινόμενος (Χ1,Υ1)-(Χ2,Υ2) (100,185)-(245,250) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (245,250)-(255,355) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (255,355)-(320,275) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (320,275)-(440,310) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (440,310)-(375,210) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (375,210)-(435,135) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (435,135)-(330,150) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (330,150)-(210,-60) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (210,-60)-(230,170) Συγκρίσεις Αφαιρέσεις Προσθέσεις

77 Πολλαπλασιασμοί Διαιρέσεις (230,170)-(100,185) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις ΣΥΝΟΛΟ Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις Πίνακας 1.- Στοιχεία 1 ου παραδείγματος. Αν εκτελέσουμε τον C κώδικα που δόθηκε παραπάνω και δώσουμε πλήθος γραμμών 10 και τις συντεταγμένες της κάθε γραμμής τότε τα σημεία τομής (intersection points) με το ορατό παράθυρο θα είναι το (350,147) με τη δεξιά πλευρά, το (272,50) και το (219,50) με την κάτω πλευρά και το (200,173) με την αριστερή πλευρά. Έτσι θα πάρουμε το ακόλουθο σχήμα: Εικόνα 74.- Το ορατό παράθυρο και το ορατό πλέον σχήμα, αφού έγινε clipping. 77

78 2 o ΠΑΡΑΔΕΙΓΜΑ: Έστω τώρα ότι έχουμε το ορατό παράθυρο που φαίνεται στην εικόνα 75 (με έντονη γραμμή) και οι συντεταγμένες που το οριοθετούν (X L,X R,Y B,Y T ) είναι αντίστοιχα (150,300,0,150). Θα δώσουμε τις συντεταγμένες ενός τυχαίου πάλι σχήματος που αποτελείται από 4 γραμμές και θα εξετάσουμε αν απεικονίζονται τα σωστά ευθύγραμμα τμήματα αφού εφαρμοστεί το Clipping αλλά και μετά από πόσες και ποιες πράξεις ολοκληρώνεται η διαδικασία αυτή σύμφωνα με τον προτεινόμενο αλγόριθμο. Τα αποτελέσματα θα συγκριθούν πάλι με τα αντίστοιχα των αλγορίθμων QuickClip και Nicholl-Lee-Nicholl. Εικόνα 75.- Το ορατό παράθυρο και το τυχαίο σχήμα που θα υποστεί clipping. 78

79 Για κάθε γραμμή υπολογίζουμε τις πράξεις που γίνονται από τον προτεινόμενο αλγόριθμο και από τους QuickClip και NLN και τα παραθέτουμε στον πίνακα 2: Συντεταγμένες Γραμμής Πράξεις QuickClip NLN Προτεινόμενος (Χ1,Υ1)-(Χ2,Υ2) (-245,-220)-(440,470) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (440,470)-(180,-420) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (180,-420)-(-90,400) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις (-90,400)-(-245,-220) Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις ΣΥΝΟΛΟ Συγκρίσεις Αφαιρέσεις Προσθέσεις Πολλαπλασιασμοί Διαιρέσεις Πίνακας 2.- Στοιχεία 2 ου παραδείγματος. Αν εκτελέσουμε τον C κώδικα που δόθηκε παραπάνω και δώσουμε πλήθος γραμμών 4 και τις συντεταγμένες της κάθε γραμμής δε θα πάρουμε σημεία τομής (intersection points) με το ορατό παράθυρο αφού όλες οι γραμμές υπόκεινται Reject. Έτσι θα πάρουμε το ακόλουθο σχήμα: 79

80 Εικόνα 76.- Το ορατό παράθυρο, αφού έγινε clipping. 4.3 ΥΠΟΛΟΓΙΣΤΙΚΗ ΠΟΛΥΠΛΟΚΟΤΗΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Προτεινόμενος αλγόριθμος: Κάνοντας εκτίμηση της υπολογιστικής πολυπλοκότητας -σε αλγοριθμικό επίπεδο- του προτεινόμενου αλγορίθμου βλέπουμε ότι χρειάζονται: Συνολικά (worst case)*: 14 συγκρίσεις (5 double,9 integer) 8 διαιρέσεις/πολλ/σμοί (double) 9 αφαιρέσεις (double) 2 προσθέσεις (double) Για την περίπτωση Accept μιας γραμμής: 10 συγκρίσεις (integer) Για την χειρότερη περίπτωση Reject μιας γραμμής: 11 συγκρίσεις (9 integer,2 double) 3 διαιρέσεις (double) 6 αφαιρέσεις (double) 80

81 *Όταν αποφασιστεί ότι θα εφαρμοστεί Clipping ως προς κάποια από τις πλευρές του παραθύρου τότε απαιτούνται 2 διαιρέσεις-πολλ/σμοί (double),3 αφαιρέσεις (double) και 1 πρόσθεση (double) που είναι πράξεις που δεν φαίνονται στο Flowchart του αλγορίθμου αλλά έχουν συμπεριληφθεί στην υπολογιστική πολυπλοκότητα. Αλγόριθμος QuickClip: Συνολικά (worst case): 18 συγκρίσεις (10 integer,8 double) 8 διαιρέσεις/πολλ/σμοί (double) 6 αφαιρέσεις (double) 4 προσθέσεις (double) Για την περίπτωση Accept μιας γραμμής: 10 συγκρίσεις (integer) Για την χειρότερη περίπτωση Reject μιας γραμμής: 18 συγκρίσεις (10 integer,8 double) 8 διαιρέσεις/πολλ/σμοί (double) 6 αφαιρέσεις (double) 4 προσθέσεις (double) Αλγόριθμος NLN: Συνολικά (worst case): 10 συγκρίσεις (4 integer,6 double) 7 διαιρέσεις/πολλ/σμοί (double) 12 αφαιρέσεις (double) 2 προσθέσεις (double) Για την περίπτωση Accept μιας γραμμής: 9 συγκρίσεις (6 integer,3 double) 4 διαιρέσεις (double) 8 αφαιρέσεις (double) Για την χειρότερη περίπτωση Reject μιας γραμμής: 9 συγκρίσεις (4 integer,5 double) 5 διαιρέσεις (double) 10 αφαιρέσεις (double) 81

82 Συνοπτικά τα παραπάνω στοιχεία εμφανίζονται στον παρακάτω πίνακα: Πράξεις QuickClip NLN Προτεινόμενος Accept Συγκρίσεις Αφαιρέσεις Προσθέσεις Διαιρέσεις/Πολλ/σμοί Reject Συγκρίσεις Αφαιρέσεις Προσθέσεις Διαιρέσεις/Πολλ/σμοί Worst case Συγκρίσεις Αφαιρέσεις Προσθέσεις Διαιρέσεις/Πολλ/σμοί Πίνακας 3.- Γενική εκτίμηση. Η επιλογή αυτού του αλγορίθμου έγινε ύστερα από μια έρευνα στους υπάρχοντες αλγορίθμους του Clipping Stage. Αφού μελετήσαμε, μετρήσαμε και κατανοήσαμε τη λογική και τον τρόπο σκέψης των σχεδιαστών των αλγορίθμων, διαπιστώσαμε ότι όλοι ανήκουν σε διαφορετικές φιλοσοφίες και ότι όλοι έχουν τα θετικά, αλλά και τα αρνητικά στοιχεία τους. Έτσι, προσπαθήσαμε να δημιουργήσουμε έναν αλγόριθμο που να εκμεταλλεύεται τα πλεονεκτήματα των προγενέστερων, προσπαθώντας παράλληλα να λύσει τα προβλήματά τους. Ο αλγόριθμος N-L-N είναι ένας από τους βασικούς αλγορίθμους που χρησιμοποιούνται ευρέως στον τομέα των 2D γραφικών καθώς αποφεύγει τις εξωτερικές τομές (τομές μεταξύ του ΑΒ και των προεκτάσεων των πλευρών του παραθύρου) διαιρώντας το χώρο σε περισσότερες από τον C-S (Cohen- Sutherland) περιοχές, έχει τις λιγότερες διαιρέσεις και τις λιγότερες συγκρίσεις (1/3 από τον C-S και 1/2 από τον L-B (Liang-Barsky) [2] ) άρα είναι ο πιο ταχύς και αποδοτικός και συνεπώς ο πιο επιθυμητός σε 2D περιβάλλοντα. Όμως πολύ μικρό ποσοστό των γραμμών υπόκεινται Clipping -μόλις το 6% κατά μέσο όρο [1]- έτσι για τη βελτίωση του αλγορίθμου επικεντρωθήκαμε στα προηγούμενα στάδια (μέχρι την απόφαση να κάνουμε Clip).Πιο συγκεκριμένα στο [1] υποστηρίζεται ότι τα 8/9 των γραμμών αυτών υπόκεινται Reject αφού είναι εξ ολοκλήρου εκτός του ορατού παραθύρου και μόνο το 1/9 Accept ή Clip. Για το λόγο αυτό δημιουργήθηκε ο QuickClip, ένας αλγόριθμος που στοχεύει στο πολύ γρήγορο reject ενός μεγάλου αριθμού γραμμών, όχι όμως όλων όσων πρέπει να υποστούν reject. Σκοπός λοιπόν του προτεινόμενου αλγορίθμου είναι να επιτευχθεί Full Reject (δηλαδή απόρριψη όλων των γραμμών που δεν είναι εξ ολοκλήρου ορατές) με όσο το δυνατόν λιγότερες πράξεις. Ο Quick Clip στη χειρότερη περίπτωση, μπορεί να κάνει έως και 3 άσκοπα Clipping, πριν αποφασίσει να αποκλείσει τη γραμμή. Αυτό ήταν κάτι ανεπιθύμητο, που προσπαθήσαμε να 82

83 ελαχιστοποιήσουμε στον αλγόριθμό μας. Η οπτική γωνία από την οποία ο N-L-N αλγόριθμος αντιμετωπίζει το Clipping και o μηχανισμός των κλίσεων που χρησιμοποιεί μας βοήθησε στην δική μας υλοποίηση. Το αποτέλεσμα ήταν ένας αλγόριθμος, που σύμφωνα με τις μετρήσεις της υπολογιστικής πολυπλοκότητας απόδεικνύει ότι κάνει λιγότερες πράξεις κυρίως στις περιπτώσεις απόρριψης των γραμμών ( Full Reject ), αλλά και αποδοχής ( Full Accept ) από τους κυρίαρχους αλγορίθμους. Επίσης σε συνολικό επίπεδο, ακόμα και στην χειρότερη περίπτωση ( Worst case ) όπου απαιτούνται οι περισσότερες πράξεις είναι ανταγωνιστικός με τους αλγόριθμους N-L-N και Quickclip. Σε συνδυασμό με τις μετρήσεις που έχουν προηγηθεί μεταξύ των αλγορίθμων που έχουν επικρατήσει ως τώρα στο Clipping ([1],[2],[3],[4],[5],[7]) μπορούμε να ισχυριστούμε ότι ο προτεινόμενος είναι ένας αλγόριθμος που θα είναι αποδοτικός λόγω των λιγότερων πράξεων του σε Low Power κατασκευές. Με την κατάλληλη Low power και Low area υλοποίηση σε VLSI θα δώσει ένα αποτέλεσμα χαμηλής κατανάλωσης ενέργειας αλλά και μικρής επιφάνειας, στοιχεία που είναι καίρια για mobile συσκευές. 4.4-Σχεδίαση σε VHDL Για λόγους πληρότητας της διπλωματικής εργασίας, έγινε μια ενδεικτική σχεδίαση σε VHDL του αλγόριθμού μας, προσέχοντας τη χρονοδρομολόγηση των δεδομένων και την περιορισμένη χρήση των πόρων ώστε να είναι υλοποιήσιμο σε VLSI. Η σχεδίαση του κυκλώματος είναι σειριακή και προσπαθήσαμε να χρησιμοποιήσουμε όσον το δυνατόν λιγότερους πόρους. Δηλαδή, αντί να χρησιμοποιήσουμε πολλούς συγκριτές, χρησιμοποιήσαμε μόνον έναν. Για να το πετύχουμε αυτό, προσθέσαμε στο κύκλωμα έναν Controller ο οποίος ελέγχει τα υπόλοιπα Components. Το κάναμε αυτό, ώστε να γλιτώσουμε σε area και σε κατανάλωση ισχύος. Εάν είχαμε δεκάδες συγκριτές, διαιρέτες κλπ είναι φυσικό η πλειονότητα αυτών να μην χρησιμοποιείται συνέχεια και να μην έχει καμία επίδραση στο τελικό αποτέλεσμα, ενώ η area καθώς και η κατανάλωση ενέργειας θα αυξάνονταν. Το ότι γλιτώνουμε σε area μας ενδιαφέρει, γιατί κατά το πλείστον οι low power συσκευές θέλουμε να έχουν και μικρό μέγεθος. Το βασικό εργαλείο για να επιτύχουμε τα παραπάνω είναι ο Controller. Ανάλογα με την κατάσταση στην οποία βρίσκεται το κύκλωμα, παράγει και τα κατάλληλα control bits στα στοιχεία του κυκλώματος, ώστε να συνεχιστεί σωστά ο αλγόριθμος. Όπως φαίνεται στο ακόλουθο flowchart σχεδόν κάθε βήμα του αλγορίθμου χαρακτηρίζεται από δύο καταστάσεις (states) σύμφωνα με τον κλάδο που θα ακολουθηθεί με βάση τις αρχικές συγκρίσεις συντεταγμένων. Συνολικά λοιπόν συναντάμε 300 (s0 s299) καταστάσεις στις οποίες ο Controller βγάζει τα control bits που απαιτούνται ώστε να δώσουν όλα τα components το επιθυμητό αποτέλεσμα. 83

84 Επιλογή Τοπολογίας 84

85 Τοπολογία 1(+) Τοπολογία 1(-) 85

86 Τοπολογία 2L(+) Τοπολογία 2L(-) 86

87 Τοπολογία 2Β(+) Tοπολογία 2Τ(-) 87

88 Τοπολογία 3LB(+) Τοπολογία 3LT(-) 88

89 Η σχεδίαση των components και η σύνδεση τους φαίνεται στο παρακάτω σχήμα: Εικόνα 77.- Ενδεικτική υλοποίηση του προτεινόμενου αλγόριθμου. Στη σχεδίασή μας έχουμε χρησιμοποιήσει διάφορα components, τη λειτουργία των οποίων θα εξηγήσουμε παρακάτω. Component 1: Έχει 8 εισόδους και 6 control bits. Ανάλογα με τις συγκρίσεις που θέλουμε να κάνουμε, επιτρέπουμε να περάσουν στην επόμενη βαθμίδα τα κατάλληλα στοιχεία. Το control bit Α είναι «1» όταν θέλουμε να κάνουμε σύγκριση συντεταγμένων και «0» όταν θέλουμε κάνουμε υπολογισμό και σύγκριση κλίσεων. Ο πίνακας των control bits και η λειτουργία που επιτελείται κάθε φορά φαίνονται στον παρακάτω πίνακα: 89

90 Ab 1 b 2 b 3 b 4 b 5 ΣΥΓΚΡΙΣΗ Χ 1 <Χ Υ 1 <Υ Υ 2 <Υ Υ 1 <Υ Υ 1 <Υ Β Χ 2 <Χ L X R <X Y T <Y X 1 <X L Y 2 <Y B X R <X Y 2 <Y T X 2 <X R Y B <Y Y T <Y Y 2 <Y B X 1 <X L X R <X Y T <Y X 2 <X L Y 1 <Y B X R <X Y 1 <Y T X 1 <X R Y B <Y Y T <Y 1 Πίνακας 4.- Component 1. Component 2: Έχει 8 εισόδους και 4 control bits. Ανάλογα με τον υπολογισμό των κλίσεων που θέλουμε να κάνουμε, επιτρέπουμε να περάσουν στην επόμενη βαθμίδα τα κατάλληλα στοιχεία. Ο πίνακας των control bits και η πράξη που γίνεται σε κάθε περίπτωση φαίνονται στον παρακάτω πίνακα: 90

91 abcd ΑΦΑΙΡΕΣΗ 0000 XR-XL 0001 YT-Y YB-Y XL-X XR-X X2-X Y2-Y YB-YT 1000 XL-XR 1001 YT-Y YB-Y XL-X XR-X X1-X Y1-Y XL-XR Πίνακας 5.- Component 2. Component 3: Είναι ένα component που ανάλογα με τα control bits αποθηκεύει το αποτέλεσμα της αφαίρεσης στον σωστό register. Ο πίνακας των control bits και η πράξη που επιτρέπει να κάνει ο κάθε συνδυασμός φαίνονται στον παρακάτω πίνακα: abcd ΑΦΑΙΡΕΣΗ 0000 XR-XL 0001 YT-Y YB-Y XL-X XR-X X2-X Y2-Y YB-YT 1000 XL-XR 1001 YT-Y YB-Y XL-X XR-X X1-X Y1-Y XL-XR Πίνακας 6.- Component 3. 91

92 Component 4: Επιλέγει ποιες διαφορές θα διαιρεθούν ανάλογα με τα control bits. Ο πίνακας των control bits και η κλίση που υπολογίζεται από το καθένα φαίνεται στον παρακάτω πίνακα: abcd ΚΛΙΣΗ 0000 S 0001 RT 0010 RB 0011 LT 0100 LB 0101 D(-) 0110 D(+) 0111 S 1000 RT 1001 RB 1010 LT 1011 LB Πίνακας 7.- Component 4. Component 5: Ανάλογα με τα control bits αποθηκεύεται στον σωστό register η σωστή κλίση. Ο πίνακας των control bits και η κλίση που αποθηκεύεται από το καθένα φαίνεται στον παρακάτω πίνακα: abcd ΚΛΙΣΗ 0000 S 0001 RT 0010 RB 0011 LT 0100 LB 0101 D(-) 0110 D(+) 0111 S 1000 RT 1001 RB 1010 LT 1011 LB Πίνακας 8.- Component 5. 92

93 Component 6: Επιλέγει εάν θα γίνει σύγκριση μεταξύ συντεταγμένων ή κλίσεων και προωθεί τα σωστά στοιχεία στη βαθμίδα της σύγκρισης.ο πίνακας των control bits και η σύγκριση που θα γίνει φαίνεται στον παρακάτω πίνακα: Abcde ΣΥΓΚΡΙΣΕΙΣ RT<S RB<S LT<S S<LB S<RB S<RT LT<D(-) D(+)<LB LB<S a<b RT <S RB <S LT <S S <LB S <RB S <RT LT <D(-) D(+)<LB LB <S Πίνακας 9.- Component 6. Component 7 Mux1: Επιλέγει εάν θα γίνει η σύγκριση (<) ή (<=).Ο πίνακας του control bit και της σύγκριση που θα γίνει φαίνεται στον παρακάτω πίνακα.το ίδιο control bit με τα ίδια αποτελέσματα παίρνει και ο Mux1: A_CNTRL ΣΥΓΚΡΙΣΗ 0 <= 1 < Πίνακας 10.- Component 7-Mux1. 93

94 Mux 2: Ανάλογα με τα control bits επιλέγεται η διαφορά η οποία θα συνεισφέρει στον υπολογισμό του σημείου τομής. Έχουμε 3 control bits και στον παρακάτω πίνακα φαίνεται τι κάνει το κάθε control bit: abc AΦΑΙΡΕΣΗ 000 YT-Y1 001 YB-Y1 010 XL-X1 011 XR-X1 100 YT-Y2 101 YB-Y2 110 XL-X2 111 XR-X2 Πίνακας 11.- Mux2. Component 8: Επιλέγει εάν θα γίνει διαίρεση ή πολλαπλασιασμός και μεταξύ ποιων στοιχείων. Ο πίνακας του control bit και η πράξη που θα γίνει φαίνεται στον παρακάτω πίνακα: Ab_cnt ΠΡΑΞΗ 00 S*(κ-λ) 01 S/(κ-λ) 10 S *(κ-λ) 11 S /(κ-λ) Πίνακας 12.- Component 8. Mux 3: Ανάλογα με το control bit επιλέγεται η πράξη από την οποία θα πάρουμε το αποτέλεσμα που θα περάσουμε στην επόμενη βαθμίδα. Στον παρακάτω πίνακα φαίνεται τι κάνει το κάθε control bit: a_cnt ΠΡΑΞΗ 0 (*) 1 (/) Πίνακας 13.- Mux3. 94

95 Mux 4: Ανάλογα με τα control bits επιλέγεται η συντεταγμένη που θα περάσουμε στην επόμενη βαθμίδα για τον τελικό υπολογισμό του σημείου τομής. Στον παρακάτω πίνακα φαίνεται το τι κάνει το κάθε control bit. ab_cnt ΣΗΜΑ 00 Υ1 01 Χ1 10 Υ2 11 Χ2 Πίνακας 14.- Mux4. Διαιρέτες: Χρησιμοποιούμε Sequantial Division. Αρχικά non-restoring για τη διαίρεση των signed ακεραίων μιας και με τους non-restoring αποφεύγονται θέματα που έχουν να κάνουν με το clock cycle και γενικά η διαίρεση signed ακεραίων είναι ευκολότερη μέσω αυτού. Έπειτα, για τη διαίρεση του υπολοίπου με το διαιρέτη (A/B=Q + R/B) γίνεται πρώτα η μετατροπή τους σε θετικούς και γίνεται χρήση restoring divisor που δέχεται θετικούς ακεραίους και δίνει δεκαδικό πηλίκο. Τέλος, μέσω των Components Negflag παίρνουμε το επιθυμητό signed αποτέλεσμα. Τα ίδια ισχύουν και για το component divisor16 όπου οι είσοδοι είναι δεκαδικοί. Πολλαπλασιαστής: Έγινε χρήση πολλαπλασιαστή που δέχεται 16-bit δεκαδικές εισόδους (8 δεκαδικά ψηφία) και βγάζει 32-bit δεκαδικό αποτέλεσμα (16 δεκαδικών ψηφίων). Αφαιρέτης: Δέχεται 8-bit ακέραιες signed εισόδους και δίνει 8-bit signed αποτέλεσμα. Αθροιστής: 32-bit αθροιστής που δέχεται δεκαδικές signed εισόδους χωρίς να δίνει carry-out, αφού το αποτέλεσμα δεν θα ξεπεράσει τα όρια του παραθύρου. Choose-Pix: Δέχεται το αποτέλεσμα του αθροιστή και κάνει την στρογγυλοποίηση βγάζοντας 16-bit τελικό αποτέλεσμα για τις συντεταγμένες. Έτσι ενεργοποιείται κάθε φορά το επιθυμητό pixel. Για την υλοποίηση στη VHDL έγινε χρήση του βιβλίου [13] αλλά και του [14] ενώ για τις εξομοιώσεις χρησιμοποιήθηκαν τα προγράμματα Modelsim SE-EE 5.4e και Synopsis. H υλοποίηση μας έγινε με τη βιβλιοθήκη 0,18 μm 1,8 V CMOS standard cell-library. Έχει Total Cell Area , μm 2 και Critical Path 3,81 nsec. 95

96 4.5 Παραδείγματα από VHDL Με το πρόγραμμα Modelsim εξομοιώσαμε την αρχιτεκτονική μας και πήραμε για διάφορες πειραματικές τιμές τα επιθυμητά αποτελέσματα. Τα παραδείγματα αυτά παρουσιάζονται στις παρακάτω εικόνες (οι τιμές μέσα στις παρενθένσεις συμβολίζουν τα Χ1,Υ1,Χ2,Υ2,ΧL,XR,YB,YT): Περίπτωση accept (21,20,24,23,10,64,64,10) 96

97 Περίπτωση reject (21,112,24,118,10,64,64,10) 97

98 Περίπτωση clip top (15,15,50,75,10,64,64,10) 98

99 Περίπτωση clip right (15,15,75,50,10,64,64,10) 99

100 Περίπτωση clip left and right (5,15,75,50,10,64,64,10) 100

101 Περίπτωση clip left and bottom (-5,32,24,8,10,64,64,10) 101

102 Περίπτωση clip top and bottom (10,-20,50,70,20,64,64,20) 102

103 Περίπτωση clip top and bottom (50,70,10,-20,20,64,64,20) 103

104 Περίπτωση clip top and left (50,70,5,32,20,64,64,20) 104

105 Περίπτωση clip top and left (50,70,-5,32,20,64,64,20) 105

106 Ο κώδικας της VHDL παρατίθεται στο Παράρτημα ΣΤ. 106

Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch

Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch Ματθές Δημήτριος 1, Μαγουλάς Αντώνιος 2 1 Εκπαιδευτικός Πληροφορικής ΠΕ86, dimmat@gmail.com 2 Εκπαιδευτικός Πληροφορικής ΠΕ03, amagul@yahoo.com

Διαβάστε περισσότερα

Οδηγίες σχεδίασης στο περιβάλλον Blender

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

Διαβάστε περισσότερα

Γραφικά Υπολογιστών & Εικονική Πραγματικότητα. Μετασχηματισμός απεικόνισης & Αλγόριθμοι αποκοπής

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

Διαβάστε περισσότερα

Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης

Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης Προβολές Προβολές Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε Δ συσκευές. Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3Δ Μαθηματικά Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ

ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ ΚΕΦΑΛΑΙΟ 5: ΑΠΕΙΚΟΝΙΣΗ ΚΑΙ ΑΠΟΚΟΠΗ Ένα γεωμετρικό μοντέλο είναι μια αριθμητική περιγραφή ενός αντικειμένου, που περιλαμβάνει το μέγεθος, το σχήμα, καθώς και άλλες ιδιότητές του. Η περιγραφή του μοντέλου

Διαβάστε περισσότερα

Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ. 3ο Μάθημα Αποκοπή. Γραφικα. Ευάγγελος Σπύρου

Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ. 3ο Μάθημα Αποκοπή. Γραφικα. Ευάγγελος Σπύρου Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ Γραφικα Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Ακ Έτος 2016-17 Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε

Διαβάστε περισσότερα

Γεωμετρικές Σκιές. Θ. Θεοχάρης Ι. Κακαδιάρης - Γ. Πασσαλής

Γεωμετρικές Σκιές. Θ. Θεοχάρης Ι. Κακαδιάρης - Γ. Πασσαλής Γεωμετρικές Σκιές Θ. Θεοχάρης Ι. Κακαδιάρης - Γ. Πασσαλής Περιεχόμενα Σ1 Χαρακτηριστικά Σκιών στα Γραφικά Σ2 Απλές Σκιές Σ3 Σύγχρονοι Αλγόριθμοι Σκιών 2 Εισαγωγή (1) Οι σκιές είναι σημαντικές στην κατανόηση

Διαβάστε περισσότερα

Εισαγωγή στο 3DS Max 2009

Εισαγωγή στο 3DS Max 2009 Μάθημα 1ο Εισαγωγή στο 3DS Max 2009 Σε αυτό το μάθημα πραγματοποιείται εκμάθηση του περιβάλλοντος του προγράμματος 3DS Max 2009. Το 3D Studio Max είναι ένα από τα ισχυρότερα προγράμματα δημιουργίας και

Διαβάστε περισσότερα

Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API)

Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API) Εισαγωγή Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API) Γιατί OpenGL; Άλλα APIs: PHIGS (ANSI), GKS, Direct3D, VRML, JAVA-3D

Διαβάστε περισσότερα

Γραφικά με Η/Υ Αποκοπή

Γραφικά με Η/Υ Αποκοπή Γραφικά με Η/Υ Αποκοπή Βασικές λειτουργίες απεικόνισης μετατροπή των φυσικών συντεταγμένων, ενός αντικειμένου, σε συντεταγμένες της συσκευής απεικόνισης (δημιουργία μετασχηματισμού απεικόνισης) αφαίρεση

Διαβάστε περισσότερα

Διδάσκων: Φοίβος Μυλωνάς

Διδάσκων: Φοίβος Μυλωνάς Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο Γραφικά με υπολογιστές Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #08 Αποκοπή (εισαγωγή) Σημειακή Αποκοπή Αποκοπή Ευθύγραμμων Τμημάτων (line

Διαβάστε περισσότερα

Γραφικά με Η/Υ Αποκοπή

Γραφικά με Η/Υ Αποκοπή Γραφικά με Η/Υ Αποκοπή Αποκοπή Οι αλγόριθμοι αποκοπής έχουν σχεδιαστεί έτσι ώστε να είναι αποτελεσματικοί στο να εντοπίζουν τα τμήματα μίας σκηνής ή ενός αντικειμένου σε συντεταγμένες προβολής που βρίσκονται

Διαβάστε περισσότερα

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

Διαβάστε περισσότερα

Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering)

Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering) Υφή Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering) Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3D Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης Απομάκρυνση Πίσω Επιφανειών

Διαβάστε περισσότερα

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1 Εικόνα Εισαγωγή Ψηφιακή αναπαράσταση Κωδικοποίηση των χρωμάτων Συσκευές εισόδου και εξόδου Βάθος χρώματος και ανάλυση Συμβολική αναπαράσταση Μετάδοση εικόνας Σύνθεση εικόνας Ανάλυση εικόνας Τεχνολογία

Διαβάστε περισσότερα

Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect. ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη

Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect. ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη Computer graphics Μοντελοποίηση τρισδιάστατου κόσμου 2d/3d computer

Διαβάστε περισσότερα

Γραφικά με Η/Υ / Εισαγωγή

Γραφικά με Η/Υ / Εισαγωγή Γραφικά με Η/Υ Εισαγωγή Πληροφορίες μαθήματος (1/4) Υπεύθυνος μαθήματος: Μανιτσάρης Αθανάσιος, Καθηγητής ιδάσκοντες: Μανιτσάρης Αθανάσιος: email: manits@uom.gr Μαυρίδης Ιωάννης: email: mavridis@uom.gr

Διαβάστε περισσότερα

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1 Εικόνες και γραφικά Περιγραφή στατικών εικόνων Αναπαράσταση γραφικών Υλικό γραφικών Dithering και anti-aliasing Σύνθεση εικόνας Ανάλυση εικόνας Μετάδοση εικόνας Τεχνολογία Πολυµέσων 05-1 Περιγραφή στατικών

Διαβάστε περισσότερα

Ανάπτυξη Χωρικής Αντίληψης και Σκέψης

Ανάπτυξη Χωρικής Αντίληψης και Σκέψης Ανάπτυξη Χωρικής Αντίληψης και Σκέψης Clements & Sarama, 2009; Sarama & Clements, 2009 Χωρική αντίληψη και σκέψη Προσανατολισμός στο χώρο Οπτικοποίηση (visualization) Νοερή εικονική αναπαράσταση Νοερή

Διαβάστε περισσότερα

Γραφικά Ι. Ενότητα 1: Εισαγωγή. Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

Γραφικά Ι. Ενότητα 1: Εισαγωγή. Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Γραφικά Ι Ενότητα 1: Εισαγωγή Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ενότητα 1 Εισαγωγή Ιστορικά Ιστορική ανασκόπηση : 3 Ιστορικά (2) Ρυθμοί ανάπτυξης CPU και

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων 1 2.1 Τύποι Δεδομένων Τα δεδομένα σήμερα συναντώνται σε διάφορες μορφές, στις οποίες περιλαμβάνονται αριθμοί,

Διαβάστε περισσότερα

Γραφικά & Οπτικοποίηση. Κεφάλαιο 1. Εισαγωγή. Γραφικά & Οπτικοπίηση: Αρχές & Αλγόριθμοι Κεφάλαιο 1

Γραφικά & Οπτικοποίηση. Κεφάλαιο 1. Εισαγωγή. Γραφικά & Οπτικοπίηση: Αρχές & Αλγόριθμοι Κεφάλαιο 1 Γραφικά & Οπτικοποίηση Κεφάλαιο 1 Εισαγωγή Ιστορικά Ιστορική ανασκόπηση : 2 Ιστορικά (2) Ρυθμοί ανάπτυξης CPU και GPU 3 Εφαρμογές Ειδικά εφέ για ταινίες & διαφημίσεις Επιστημονική εξερεύνηση μέσω οπτικοποίησης

Διαβάστε περισσότερα

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί Πολλά προβλήματα λύνονται μέσω δισδιάστατων απεικονίσεων ενός μοντέλου. Μεταξύ αυτών και τα προβλήματα κίνησης, όπως η κίνηση ενός συρόμενου μηχανισμού.

Διαβάστε περισσότερα

Επεξεργασία Χαρτογραφικής Εικόνας

Επεξεργασία Χαρτογραφικής Εικόνας Επεξεργασία Χαρτογραφικής Εικόνας Διδάσκων: Αναγνωστόπουλος Χρήστος Κώδικες μετρήσεων αντικειμένων σε εικόνα Χρωματικά μοντέλα: Munsell, HSB/HSV, CIE-LAB Κώδικες μετρήσεων αντικειμένων σε εικόνες Η βασική

Διαβάστε περισσότερα

Γραφικά Υπολογιστών: Εμφάνιση σε 2D

Γραφικά Υπολογιστών: Εμφάνιση σε 2D 1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Εμφάνιση σε 2D Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιεχόμενα Έννοιες παραθύρων (windowing) Αποκοπή (clipping)

Διαβάστε περισσότερα

5ο Μάθημα Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων

5ο Μάθημα Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων 5ο Μάθημα Αλγόριθμοι Σχεδίασης Βασικών Σχημάτων Γραφικα Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Ακ Έτος 2016-17 Εισαγωγή Ευθεία Κύκλος Έλλειψη Σύνοψη του σημερινού μαθήματος 1 Εισαγωγή 2 Ευθεία 3 Κύκλος

Διαβάστε περισσότερα

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Γ Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Η χρήση των ηλεκτρονικών υπολογιστών στο τεχνικό σχέδιο, και ιδιαίτερα στο αρχιτεκτονικό, αποτελεί πλέον μία πραγματικότητα σε διαρκή εξέλιξη, που επηρεάζει

Διαβάστε περισσότερα

ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ

ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ του Υποπυραγού Αλέξανδρου Μαλούνη* Μέρος 2 ο - Χαρτογραφικοί μετασχηματισμοί Εισαγωγή Είδαμε λοιπόν ως τώρα, ότι η γη θα μπορούσε να χαρακτηρισθεί και σφαιρική και αυτό μπορεί να γίνει εμφανές όταν την

Διαβάστε περισσότερα

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #07

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #07 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο Γραφικά με υπολογιστές Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #07 Γραμμές και Πολύγωνα: Εισαγωγή Αναπαράσταση 2D και 3D Χρωματισμός πολυγώνων

Διαβάστε περισσότερα

Σχεδιαστικά Προγράμματα Επίπλου

Σχεδιαστικά Προγράμματα Επίπλου Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ

Διαβάστε περισσότερα

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή Oι οπτικές επιδράσεις, που μπορεί να προκαλέσει μια εικόνα στους χρήστες, αποτελούν ένα από τα σπουδαιότερα αποτελέσματα των λειτουργιών γραφικών με Η/Υ. Τον όρο της οπτικοποίησης

Διαβάστε περισσότερα

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά Ιόνιο Πανεπιστήμιο, Τμήμα Πληροφορικής, 2015 Κωνσταντίνος Οικονόμου, Επίκουρος Καθηγητής Βασίλειος Κομιανός, Υποψήφιος Διδάκτορας

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ

2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ 2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ Η σάρωση ενός εγγράφου εισάγει στον υπολογιστή μια εικόνα, ενώ η εκτύπωση μεταφέρει στο χαρτί μια εικόνα από αυτόν. Για να αντιληφθούμε επομένως τα χαρακτηριστικά των σαρωτών

Διαβάστε περισσότερα

Τι είναι Αποκοπή (clip)?

Τι είναι Αποκοπή (clip)? Αποκοπή Τι είναι Αποκοπή (clip)? Η διαδικασία απεικόνισης μόνο των τμημάτων των αντικειμένων που βρίσκονται μέσα σε μια περιοχή Από μεγαλύτερη 2Δ σκηνή στην οποία έχουμε ήδη τιμές για τα piels Κατά την

Διαβάστε περισσότερα

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Σχεδίαση με Ηλεκτρονικούς Υπολογιστές Ενότητα # 13: Τεχνικές απεικόνισης στην οθόνη του ΗΥ Καθηγητής Ιωάννης Γ. Παρασχάκης Τμήμα Αγρονόμων

Διαβάστε περισσότερα

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας

Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας Η πρώτη οθόνη μετά την εκτέλεση του προγράμματος διαφέρει κάπως από τα προηγούμενα λογισμικά, αν και έχει αρκετά κοινά στοιχεία. Αποτελείται

Διαβάστε περισσότερα

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση

Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Ενδεικτική πολυ-εργασία 1 - εφαρμογή στην υπολογιστική όραση Εντοπισμός ενός σήματος STOP σε μια εικόνα. Περιγράψτε τη διαδικασία με την οποία μπορώ να εντοπίσω απλά σε μια εικόνα την ύπαρξη του παρακάτω

Διαβάστε περισσότερα

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Ασκήσεις της Ενότητας 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- α. Η χρήση της πένας Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Υπάρχουν εντολές που μας επιτρέπουν να επιλέξουμε το χρώμα της πένας, καθώς και το

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας. Παρουσίαση 12 η. Θεωρία Χρώματος και Επεξεργασία Έγχρωμων Εικόνων

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας. Παρουσίαση 12 η. Θεωρία Χρώματος και Επεξεργασία Έγχρωμων Εικόνων Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Παρουσίαση 12 η Θεωρία Χρώματος και Επεξεργασία Έγχρωμων Εικόνων Εισαγωγή (1) Το χρώμα είναι ένας πολύ σημαντικός παράγοντας περιγραφής, που συχνά απλουστεύει κατά

Διαβάστε περισσότερα

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ

Εργαστήριο Τεχνολογίας Πολυμέσων & Γραφικών, Τ.Ε.Π Π.Μ, Μάθημα: Γραφικά με Η/Υ ΓΡΑΦΙΚΑ Γέμισμα ΑΛΓΟΡΙΘΜΟΙ ΓΕΜΙΣΜΑΤΟΣ Για τις πλεγματικές οθόνες υπάρχουν: Αλγόριθμοι γεμίσματος:, που στηρίζονται στη συνάφεια των pixels του εσωτερικού ενός πολυγώνου Αλγόριθμοι σάρωσης: που στηρίζονται

Διαβάστε περισσότερα

Συστήματα συντεταγμένων

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

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Μορφές των χωρικών δεδομένων

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

Διαβάστε περισσότερα

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας

Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας Εκτελώντας το πρόγραμμα παίρνουμε ένα παράθυρο εργασίας Γεωμετρικών εφαρμογών. Τα βασικά κουμπιά και τα μενού έχουν την παρακάτω

Διαβάστε περισσότερα

Στο Κεφάλαιο 5 µελετώντας την προβολή του τρισδιάστατου χώρου στο επίπεδο της κάµερας εξετάστηκε

Στο Κεφάλαιο 5 µελετώντας την προβολή του τρισδιάστατου χώρου στο επίπεδο της κάµερας εξετάστηκε Κεφάλαιο 6 Αποκοπή (clipping) Στο Κεφάλαιο 5 µελετώντας την προβολή του τρισδιάστατου χώρου στο επίπεδο της κάµερας εξετάστηκε η διαδικασία προβολής µεµονωµένων σηµείων και µόνο προς το τέλος του κεφαλαίου

Διαβάστε περισσότερα

Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods)

Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods) 1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods) Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιεχόμενα

Διαβάστε περισσότερα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα ΕΝΤΟΛΕΣ χρησιμοποιηθούν παρακάτω στα παραδείγματα Βάζοντας την εντολή αυτή σε οποιοδήποτε αντικείμενο μπορούμε να αλλάζουμε

Διαβάστε περισσότερα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 3 ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ

ΕΝΟΤΗΤΑ 3 ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ ΓΕΩΜΕΤΡΙΑ Διερεύνηση αριθμών Γ2.1 Oνομάζουν και κατασκευάζουν σημεία, ευθύγραμμα τμήματα, ημιευθείες, ευθείες και διάφορα είδη γραμμών (καμπύλες, ευθείες, τεθλασμένες) με διάφορα

Διαβάστε περισσότερα

Εισαγωγή στη σχεδίαση κινούμενων γραφικών

Εισαγωγή στη σχεδίαση κινούμενων γραφικών ΕΣΔ200 Δημιουργία Περιεχομένου ΙI Εισαγωγή στη σχεδίαση κινούμενων γραφικών Νικόλας Τσαπατσούλης Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & Σπουδών Διαδικτύου Εισαγωγή Εφαρμογές Κύρια Χαρακτηριστικά Flash

Διαβάστε περισσότερα

Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία

Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία Στην άσκηση αυτή θα μάθετε πώς να χρησιμοποιήσετε βασικά εργαλεία στο περιβάλλον 3Ds Max για να δημιουργήσετε ένα τρισδιάστατο

Διαβάστε περισσότερα

Β2.6 Άλλες Περιφερειακές Συσκευές και Κάρτες Επέκτασης

Β2.6 Άλλες Περιφερειακές Συσκευές και Κάρτες Επέκτασης Β2.6 Άλλες Περιφερειακές Συσκευές και Κάρτες Επέκτασης Τι θα μάθουμε σήμερα: Να αναγνωρίζουμε και να ονομάζουμε άλλες περιφερειακές συσκευές και κάρτες επέκτασης Να εντοπίζουμε τα κύρια χαρακτηριστικά

Διαβάστε περισσότερα

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

Διαβάστε περισσότερα

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

Διαβάστε περισσότερα

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B:

Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B: Συστήματα floppy disk Τοποθετήστε τη δισκέτα στο drive B και σε περιβάλλον MS-DOS πληκτρολογήστε: B: Συστήματα σκληρού δίσκου Οι χρήστες σκληρού δίσκου θα πρέπει να δημιουργήσουν ένα directory με το όνομα

Διαβάστε περισσότερα

Τι θα απαντούσατε αλήθεια στην ίδια ερώτηση για την περίπτωση της επόμενης εικόνας;

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

Διαβάστε περισσότερα

Γραφικά Υπολογιστών: Αποκοπή στις 3D Διαστάσεις

Γραφικά Υπολογιστών: Αποκοπή στις 3D Διαστάσεις ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Αποκοπή στις 3D Διαστάσεις Πασχάλης Ράπτης ttp://aetos.it.teite.gr/~praptis praptis@it.teite.gr 2 Περιεχόμενα Θα δούμε μερικά demos προοπτικών προβολών

Διαβάστε περισσότερα

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ Οι Μεταβλητές στον Προγραμματισμό Οι μεταβλητές είναι θέσεις μνήμης που έχουν κάποιο όνομα. Όταν δίνω τιμή σε μία μεταβλητή, ουσιαστικά, αποθηκεύουμε στη μνήμη αυτή τον αριθμό που

Διαβάστε περισσότερα

ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design)

ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design) Ενότητα # 2: Στερεοί Μοντελοποιητές (Solid Modelers) Δρ Κ. Στεργίου

Διαβάστε περισσότερα

Προτεινόμενα Θέματα Διπλωματικών Εργασιών

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

Διαβάστε περισσότερα

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ. Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ & ΣΠΟΥΔΩΝ ΔΙΑΔΙΚΤΥΟΥ ΕΣΔ 200: ΔΗΜΙΟΥΡΓΙΑ ΠΕΡΙΕΧΟΜΕΝΟΥ ΙΙ Ακαδημαϊκό Έτος 2011 2012, Χειμερινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης ΕΡΩΤΗΣΕΙΣ ΕΠΑΝΑΛΗΨΗΣ

Διαβάστε περισσότερα

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

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

Διαβάστε περισσότερα

Μετασχηματισμοί Μοντελοποίησης (modeling transformations)

Μετασχηματισμοί Μοντελοποίησης (modeling transformations) Μετασχηματισμοί Δ Μετασχηματισμοί Μοντελοποίησης (modeling trnformtion) Καθορισμός μετασχηματισμών των αντικειμένων Τα αντικείμενα περιγράφονται στο δικό τους σύστημα συντεταγμένων Επιτρέπει την χρήση

Διαβάστε περισσότερα

Αποκοπή ευθυγράμμων τμημάτων

Αποκοπή ευθυγράμμων τμημάτων Αλγόριθμος των Cohen-Sutherland Αποκοπή ευθυγράμμων τμημάτων Χαρακτηριστικά (Attrbutes LEFT : αριστερά της ευθείας LEFT RIGHT: δεξιά της ευθείας RIGHT ΤΟΡ : άνω της ευθείας TO BOTTO: κάτω της ευθείας BOTTO

Διαβάστε περισσότερα

Γραφικά με υπολογιστές

Γραφικά με υπολογιστές Γραφικά με Υπολογιστές Ενότητα # 3: Εισαγωγή Φοίβος Μυλωνάς Τμήμα Πληροφορικής Φοίβος Μυλωνάς Γραφικά με υπολογιστές 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Ανάκλαση Είδωλα σε κοίλα και κυρτά σφαιρικά κάτοπτρα. Αντώνης Πουλιάσης Φυσικός M.Sc. 12 ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ

Ανάκλαση Είδωλα σε κοίλα και κυρτά σφαιρικά κάτοπτρα. Αντώνης Πουλιάσης Φυσικός M.Sc. 12 ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ Ανάκλαση Είδωλα σε κοίλα και κυρτά σφαιρικά κάτοπτρα Αντώνης Πουλιάσης Φυσικός M.Sc. 12 ο ΓΥΜΝΑΣΙΟ ΠΕΡΙΣΤΕΡΙΟΥ Πουλιάσης Αντώνης Φυσικός M.Sc. 2 Ανάκλαση Είδωλα σε κοίλα και κυρτά σφαιρικά κάτοπτρα Γεωμετρική

Διαβάστε περισσότερα

Προγραμματισμός. Το περιβάλλον του scratch

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

Διαβάστε περισσότερα

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΑΘΗΜΑΤΙΚΩΝ Β ΓΥΜΝΑΣΙΟΥ ΜΕΡΟΣ 1ο «ΑΛΓΕΒΡΑ»

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΑΘΗΜΑΤΙΚΩΝ Β ΓΥΜΝΑΣΙΟΥ ΜΕΡΟΣ 1ο «ΑΛΓΕΒΡΑ» ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΑΘΗΜΑΤΙΚΩΝ Β ΓΥΜΝΑΣΙΥ ΜΕΡΣ ο «ΑΛΓΕΒΡΑ». Να υπολογίσετε την τιμή της παράστασης: Α = ( + ) 4( ) 8, όταν = 0,45. Απλοποιούμε πρώτα την παράσταση : Α = ( + ) 4( ) 8 = = + 6 4 + 4 8

Διαβάστε περισσότερα

Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ

Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 1 (Βαρύτητα 30%. Ομάδες: μέχρι 2 ατόμων): Ανάπτυξη 2Δ παιχνιδιού τύπου «ποδοσφαιράκι» το οποίο θα έχει τις παρακάτω λειτουργίες/δυνατότητες: Μπάλα:

Διαβάστε περισσότερα

Οδηγίες για το SKETCHPAD Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας. Με την εκτέλεση του Sketchpad παίρνουμε το παρακάτω παράθυρο σχεδίασης:

Οδηγίες για το SKETCHPAD Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας. Με την εκτέλεση του Sketchpad παίρνουμε το παρακάτω παράθυρο σχεδίασης: Οδηγίες για το SKETCHPAD Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας Με την εκτέλεση του Sketchpad παίρνουμε το παρακάτω παράθυρο σχεδίασης: παρόμοιο με του Cabri με αρκετές όμως διαφορές στην αρχιτεκτονική

Διαβάστε περισσότερα

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

«Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ BarCode» ( Μια πρόταση για ένα μαθητικό project )

«Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ BarCode» ( Μια πρόταση για ένα μαθητικό project ) «Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ BarCode» ( Μια πρόταση για ένα μαθητικό project ) Παναγιώτης Μουρούζης Φυσικός Ρ/Η - Υπεύθυνος Ε.Κ.Φ.Ε Κέρκυρας ekfekerk@otenet.gr ΠΕΡΙΛΗΨΗ Ένα τεχνολογικό επίτευγμα που βλέπουμε καθημερινώς

Διαβάστε περισσότερα

Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω»(topdown). Βαθμίδα διασύνδεσης προγραμματιστή εφαρμογών (API)

Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω»(topdown). Βαθμίδα διασύνδεσης προγραμματιστή εφαρμογών (API) Εισαγωγή Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω»(topdown). Βαθμίδα διασύνδεσης προγραμματιστή εφαρμογών (API) Γιατί OpenGL; Portable, παιδαγωγική, καλά τεκμηριωμένη, open standard,

Διαβάστε περισσότερα

Εργαλεία Δημιουργίας Τρισδιάστατων Γραφικών

Εργαλεία Δημιουργίας Τρισδιάστατων Γραφικών Τεχνικός Εφαρμογών Πληροφορικής Εργαλεία Δημιουργίας Τρισδιάστατων Γραφικών Εισαγωγή Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: http://moodleforall.ictlab.edu.gr/ Περιεχόμενα Τι είναι τα γραφικά Είδη

Διαβάστε περισσότερα

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

Το μάθημα Διδακτική Μαθημάτων Ειδικότητας φέρνει τους φοιτητές σε επαφή με τα επιστημονικά, επιστημολογικά και διδακτικά χαρακτηριστικά της κάθε Το μάθημα Διδακτική Μαθημάτων Ειδικότητας φέρνει τους φοιτητές σε επαφή με τα επιστημονικά, επιστημολογικά και διδακτικά χαρακτηριστικά της κάθε επιστήμης που πρόκειται να διδάξουν Πώς ένα επιστημονικό

Διαβάστε περισσότερα

Ενότητα 2: Εντολές Επανάληψης

Ενότητα 2: Εντολές Επανάληψης Ενότητα 2: Εντολές Επανάληψης Όταν κάποια εντολή ή ολόκληρη ομάδα εντολών επαναλαμβάνεται τότε δεν είναι απαραίτητο να τις γράψουμε πολλές φορές αλλά χρησιμοποιούμε την εντολή ΕΠΑΝΑΛΑΒΕ Συντάσσεται ως

Διαβάστε περισσότερα

Μοντέλο φωτισμού Phong

Μοντέλο φωτισμού Phong ΚΕΦΑΛΑΙΟ 9. Στο προηγούμενο κεφάλαιο παρουσιάσθηκαν οι αλγόριθμοι απαλοιφής των πίσω επιφανειών και ακμών. Απαλοίφοντας λοιπόν τις πίσω επιφάνειες και ακμές ενός τρισδιάστατου αντικειμένου, μπορούμε να

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab ΠΑΡΑΡΤΗΜΑ IV Παρακάτω παραθέτουμε μία σειρά ασκήσεων για το Robolab ομαδοποιημένων σε κατηγορίες : Επιμέλεια : Κυριακού Γεώργιος 1 Φύλλο Ασκήσεων (πρόκληση με κινητήρες) ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ

Διαβάστε περισσότερα

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

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

Διαβάστε περισσότερα

3 ο Εργαστήριο Μεταβλητές, Τελεστές

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

Διαβάστε περισσότερα

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; ΚΕΦΑΛΑΙΟ 2 ο ΚΙΝΗΣΗ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης. Στην Κινηματική

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΗΛΕΚΤΡΟΝΙΚΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΟΜΑ Α Α Αριθµητική Λογική Μονάδα των 8-bit 1. Εισαγωγή Γενικά µια αριθµητική λογική µονάδα (ALU, Arithmetic Logic Unit)

Διαβάστε περισσότερα

PowerPoint Ένα εργαλείο παρουσίασης

PowerPoint Ένα εργαλείο παρουσίασης Εργασία 7η 2 Αρκετοί πιστεύουν πως η επιτυχία μιας παρουσίασης είναι δεδομένη εάν ο παρουσιαστής κατέχει το θέμα που πρόκειται να παρουσιάσει και είναι σε θέση να χειρίζεται ί ά άνετα έ ένα πρόγραμμα ό

Διαβάστε περισσότερα

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα Απεικόνιση Γραφικά ΥφήςΥπολογιστών Απεικόνιση Υφής Μέρος Α Υφή σε Πολύγωνα Γ. Γ. Παπαϊωάννου, - 2008 Τι Είναι η Υφή; Η υφή είναι η χωρική διαμόρφωση των ποιοτικών χαρακτηριστικών της επιφάνειας ενός αντικειμένου,

Διαβάστε περισσότερα

Έγχρωµο και Ασπρόµαυρο Φως

Έγχρωµο και Ασπρόµαυρο Φως Έγχρωµο και Ασπρόµαυρο Φως Χρώµα: κλάδος φυσικής, φυσιολογίας, ψυχολογίας, τέχνης. Αφορά άµεσα τον προγραµµατιστή των γραφικών. Αν αφαιρέσουµε χρωµατικά χαρακτηριστικά, λαµβάνουµε ασπρόµαυρο φως. Μόνο

Διαβάστε περισσότερα

Υλικά, φωτισμός και χρωματισμός

Υλικά, φωτισμός και χρωματισμός Υλικά, φωτισμός και χρωματισμός Ζωγραφίζουμε, που; Είπαμε ότι ζωγραφίζουμε την σκηνή παίρνοντας κάθε σημείο και προβάλλοντας το στην οθόνη. Στην πραγματικότητα το αποθηκεύουμε σε μια περιοχή της μνήμης

Διαβάστε περισσότερα

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης.

Διαβάστε περισσότερα

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος

5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος 5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Βίντεο. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 06-1

Βίντεο. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 06-1 Βίντεο Εισαγωγή Χαρακτηριστικά του βίντεο Απόσταση θέασης Μετάδοση τηλεοπτικού σήματος Συμβατικά τηλεοπτικά συστήματα Ψηφιακό βίντεο Εναλλακτικά μορφότυπα Τηλεόραση υψηλής ευκρίνειας Κινούμενες εικόνες

Διαβάστε περισσότερα

Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch

Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch Ένας απλός και γρήγορος αλγόριθμος για την αποκοπή γραμμών στο Scratch Δημήτριος Ματθές 1, Κωνσταντίνος Κάππας 2 1 Εκπαιδευτικός Πληροφορικής ΠΕ20, dimmat@gmail.com 2 Εκπαιδευτικός Πληροφορικής ΠΕ19, kostas@kappas.eu

Διαβάστε περισσότερα

Texturing, Animation, Lighting, Rendering

Texturing, Animation, Lighting, Rendering Μάθημα 2ο Texturing, Animation, Lighting, Rendering Materials Σε αυτό το σημείο έχουμε τελειώσει με τη διαδικασία του modeling, και αυτό που έχουμε σαν αποτέλεσμα είναι ένα σύνολο από αντικείμενα, τα οποία

Διαβάστε περισσότερα

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση Χειμερινό Εξάμηνο 2013-2014 Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση 5 η Παρουσίαση : Ψηφιακή Επεξεργασία Εικόνας Διδάσκων: Γιάννης Ντόκας Σύνθεση Χρωμάτων Αφαιρετική Παραγωγή Χρώματος Χρωματικά

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ

ΕΝΟΤΗΤΑ 5 ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ ΓΕΩΜΕΤΡΙΑ ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ ΓΕΩΜΕΤΡΙΑ Διερεύνηση σχημάτων και χώρου Γ2.1 Ονομάζουν και κατασκευάζουν σημεία, ευθύγραμμα τμήματα, ημιευθείες, ευθείες και διάφορα είδη γραμμών (καμπύλες, ευθείες, τεθλασμένες)

Διαβάστε περισσότερα

Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής

Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής Γ) Χρήση Λογισμικού για την υλοποίηση πρακτικών εφαρμογών της Ασαφούς Λογικής Η διαδικασία δόμησης εφαρμογών γίνεται με τη χρήση γλωσσών προγραμματισμού όπως η C, η Pascal, η Basic ή με τη χρήση άλλων

Διαβάστε περισσότερα