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

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

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

Γραφικά Υπολογιστών: Σχεδίαση γραμμών (Bresenham), Σχεδίασης Κύκλων, Γέμισμα Πολυγώνων

Παράλληλοι Αλγόριθμοι: Ανάλυση Εικόνας και Υπολογιστική Γεωμετρία. Πέτρος Ποτίκας CoReLab 4/5/2006

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Γραφικά με Η/Υ Αλγ λ ό γ ρ ό ιθ ρ μοι κύκλου & έλλειψης

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

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

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

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Αριθμητική Ανάλυση & Εφαρμογές

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Γεωµετρικοί Αλγόριθµοι (CLR, κεφάλαιο 35)

ΑΛΓΟΡΙΘΜΟΙ ΕΥΘΕΙΑΣ ΚΥΚΛΟΥ - ΕΛΛΕΙΨΗΣ

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

Ταξινόμηση. Σαλτογιάννη Αθανασία

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

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

Πληροφορική 2. Αλγόριθμοι

ΚΕΦΑΛΑΙΟ 2: ΑΛΓΟΡΙΘΜΟΙ ΕΥΘΕΙΑΣ ΚΥΚΛΟΥ -ΈΛΛΕΙΨΗΣ

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Ενδεικτικές Ερωτήσεις Θεωρίας

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

ΕΠΙΤΡΟΠΗ ΔΙΑΓΩΝΙΣΜΩΝ 36 η Εθνική Μαθηματική Ολυμπιάδα «Ο ΑΡΧΙΜΗΔΗΣ» 23 Φεβρουαρίου 2019 Θέματα και ενδεικτικές λύσεις μεγάλων τάξεων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Α. Θα καλεί υποπρόγραμμα INPUT που θα διαβάζει τις τιμές του πίνακα MAP.

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Α ΛΥΚΕΙΟΥ

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

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

Αλγόριθµοι Παράστασης Βασικών Σχηµάτων

Πρόβληµα Απόκρυψης. Ποιο είναι το εµφανές αντικείµενο (χρώµα) σε κάθε σηµείο του επιπέδου προβολής;

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

Διαδικασιακός Προγραμματισμός

Ενότητα 2. Ζωγραφίζοντας με το ΒΥΟΒ

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών

Κεφ.11: Ευρετήρια και Κατακερματισμός

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Αλγόριθμοι και Πολυπλοκότητα

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


Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

Κεφάλαιο 7 Βασικά Θέματα Προγραμματισμού. Εφαρμογές Πληροφορικής Κεφ. 7 Καραμαούνας Πολύκαρπος 1

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

ΕΠΙΛΥΣΗ ΕΚΦΥΛΙΣΜΕΝΩΝ ΚΑΙ ΓΕΝΙΚΩΝ ΓΡΑΜΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ. 4.1 Επίλυση Εκφυλισμένων Γραμμικών Προβλημάτων

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Advanced Data Indexing

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

ΤΕΣΤ Α2 ΟΜΑΔΑ Ι. παράγωγος είναι αρνητική: f (x) = 1 2x, f

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Εγχειρίδιο Χρήσης ❹ Εργαλεία

Επαναληπτικές μέθοδοι

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

Εισαγωγή στην επιστήμη των υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Προγραμματισμός ΙI (Θ)

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 2

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)

F x h F x f x h f x g x h g x h h h. lim lim lim f x

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

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

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

Αριθμητική Ανάλυση και Εφαρμογές

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

Απαλλακτική Εργασία Γραφικά & Εικονική Πραγματικότητα. Παπαπαύλου Χρήστος ΑΜ: 6609

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

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

max & min Μεθοδολογία Τα βήματα που ακολουθούμε σε όλες τις τεχνικές εύρεσης max & min είναι τα εξής 2:

Ασκή σεις στή δομή επανα λήψής

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

x y z xy yz zx, να αποδείξετε ότι x=y=z.

Αποκοπή 4.1. Εργα: : & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ) Τµήµα Πληροφορικής 1 2 (SCS) Θέση παρατηρητή. Θέσεις αντικειµένων και φωτεινών πηγών

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Κατάτµηση εικόνας σε οµοιόµορφες περιοχές

Κατακερματισμός (Hashing)

Μαθηματική Εισαγωγή Συναρτήσεις

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Transcript:

ΓΡΑΦΙΚΑ Γέμισμα

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

Τύποι πολυγώνων Κυρτά πολύγωνα: Αν μια ευθεία τέμνει δύο μόνον πλευρές της περιμέτρου

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

Τύποι πολυγώνων Σύνθετα πολύγωνα: Αμφίκυρτα που δύο πλευρές του τέμνονται μεταξύ τους

Αλγόριθμοι γέμισματος Έστω ότι έχουμε ένα pixel (x, y), το οποίο βρίσκεται μέσα στην περιοχή που θέλουμε να γεμίσουμε με χρώμα. Με βάση τη συνάφεια εξετάζονται τα γειτονικά pixels και γεμίζουν με το ζητούμενο χρώμα.

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

Αλγόριθμοι γέμισματος Συνάφεια των pixels: Η περιοχή με τα πλησιέστερα γειτονικά pixels, ενός συγκεκριμένου pixel (x,y), τέσσερα pixels (x+1, y), (x-1, y), (x, y+1) & (x, y-1) X, Y+1 X, Y X, Y-1

Αλγόριθμοι γέμισματος οκτώ pixels (x+1, y), (x-1, y), (x, y+1), (x, y-1), (x-1, y-1), (x+1, y+1), (x+1, y-1) & (x-1, y+1). X, Y+1 X, Y X, Y-1

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

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

Γέμισμα με βάση την περίμετρο (boundary fill) Στον αλγόριθμο αυτόν δίδονται: ένα εσωτερικό σημείο εκκίνησης (x, y) του πολυγώνου, το χρώμα της περιμέτρου το χρώμα με το οποίο θέλουμε να χρωματίσουμε το πολύγωνο.

Γέμισμα με βάση το υπάρχον χρώμα (interior fill) Στον αλγόριθμο αυτόν δίδονται: ένα εσωτερικό σημείο εκκίνησης (x, y) του πολυγώνου, το υπάρχον εσωτερικό χρώμα του πολυγώνου το χρώμα με το οποίο θέλουμε να χρωματίσουμε το πολύγωνο.

Παρατηρήσεις Οι παραπάνω αλγόριθμοι γεμίσματος (με βάση την περίμετρο & το υπάρχον χρώμα) έχουν το μειονέκτημα ότι για κάθε pixel που χρωματίζεται γίνονται 4 ή 8 αναδρομικές κλήσεις με συνέπεια να έχουν χαμηλή ταχύτητα να εξαντλείται γρήγορα ο χώρος της στοίβας

Αλγόριθμοι σάρωσης (scan line) Οι αλγόριθμοι σάρωσης στηρίζονται στην εύρεση των σημείων τομής της περιμέτρου του πολυγώνου με τις οριζόντιες γραμμές σάρωσης της οθόνης.

Αλγόριθμοι σάρωσης Λαμβάνονται υπόψη: Ηκλίσηm των πλευρών, για τον υπολογισμό των σημείων τομής τους με τις γραμμές σάρωσης. Η συνάφεια των pixels του πολυγώνου. Οι τομές που βρίσκονται μεταξύ της ελάχιστης και της μέγιστης y-συντεταγμένης του πολυγώνου.

Παράδειγμα Ι Εστω ΑΒΓ ΕΖ ένα αμφίκυρτο πολύγωνο με κορυφές Α(0, 1), Β(2, 8), Γ(4, 6), (7, 8), Ε(9, 4), Ζ(6, 1) και πλευρές e1, e2, e3, e4, e5, e6

Παράδειγμα Ι (συνέχεια) Υποθέτουμε ότι σαρώνουμε με μια γραμμή (σάρωσης) y βρίσκουμε τις τομές της y με τις πλευρές του πολυγώνου & ενεργοποιούμε διαδοχικά τα ενδιάμεσα pixels από αριστερά προς τα δεξιά της γραμμής σάρωσης

Παράδειγμα Ι (συνέχεια) Σαρώνουμε την ευθεία y = 5 Αυτή τέμνει την e1 στο x = 1.14 & την e4 στο x = 8.5 Τα pixels 1-7 στην ευθεία σάρωσης y = 5 ενεργοποιούνται

Παράδειγμα Ι (συνέχεια) Οι κορυφές Γ και Ε βρίσκονται πάνω στις γραμμές σάρωσης y=6 & y=4, αντίστοιχα, ενώ η e6 ταυτίζεται με την y = 1 Το ερώτημα εδώ είναι: Πόσα σημεία τομής θα θεωρούμε για κάθε τέτοια κορυφή του πολυγώνου;

Παράδειγμα Ι (συνέχεια)

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

Παράδειγμα Ι (συνέχεια) Ευθεία σάρωσης y = 6 στην κορυφή Γ, οι πλευρές e2 και e3 βρίσκονται πάνω από την ευθεία σάρωσης: φυλάσσονται δύο τομές Ευθεία σάρωσης y = 4 στην κορυφή Ε, οι πλευρές e4 και e5 βρίσκονται εκατέρωθεν της ευθείας σάρωσης: φυλάσσεται μια τομή Η e6 πρέπει να αγνοηθεί

Παράδειγμα Ι (συνέχεια) Για να προσδιορίσουμε τα υπόλοιπα σημεία τομής πρέπει: να γνωρίζουμε πού βρίσκονται οι πλευρές e1, e2, (μεταξύ ποιων γραμμών σάρωσης) και τις συντεταγμένες των σημείων τομής

Παράδειγμα Ι (συνέχεια) Οσον αφορά τις πλευρές, η ευθεία e1 αρχίζει από την ευθεία σάρωσης 1 και φτάνει ως την ευθεία σάρωσης 8, η πλευρά e2 αρχίζει από την ευθεία σάρωσης 8 και φτάνει ως την ευθεία σάρωσης 6 κτλ.

Υπολογισμός συντεταγμένων x Όσον αφορά τις συντεταγμένες αυτές δίνονται από τις σχέσεις X k+1 = X k + 1/m Y k+1 = Y k + 1 όπου m = (Y k+1 Y k ) / (X k+1 X k ). Αν η τομή της e1 με την ευθεία σάρωσης y=1 είναι γνωστή, τότε ητομήτηςμετηνευθεία σάρωσης y=2 είναι (αναδρομικά): x k+1 = x k + 1/m (m: ηκλίσητηςευθείας) Π.χ.: x 2 = 0 + 2/7 = 2/7 & y 2 = 2

Υπολογισμός συντεταγμένων x Γενικά: αν x ο είναι η τιμή της συντεταγμένης x στην τομή της άκρης (αρχής) της πλευράς (με κλίση m) με μια γραμμή σάρωσης, τότε μπορούμε να υπολογίσουμε την x κ στην τομή με την γραμμή σάρωσης y κ ως εξής : x κ = x ο +κ/m

Υπολογισμός συντεταγμένων x Oι ενδιάμεσες στρογγυλοποιήσεις είναι πιθανόν να προκαλέσουν μια σωρευτική απόκλιση. Προκειμένου η αύξηση των τιμών του x κατά 1/m x k+1 = x k + 1/m = x k + x/ y όπου τα x και y είναι οι διαφορές των τιμών των συντεταγμένων x και y αντίστοιχα μεταξύ των άκρων να μπορεί να γίνει με πράξεις άθροισης αντί διαίρεσης και στρογγυλοποίησης

Υπολογισμός συντεταγμένων x Eκτίμηση για την ακέραιη τιμή της συντεταγμένης x: εισάγουμε στη θέση του x/ y μια ακέραιη μεταβλητή δ, x κ+1 = x κ + δ όπου ανάλογα με το προοδευτικό άθροισμα π, έχουμε δ = 0 ή δ 1 αρχικά δ = 0 & π = 0 αυξάνουμε το π κατά x κάθε φορά που αλλάζουμε γραμμή σάρωσης, οπότε: αν η νέα τιμή του π γίνει ίση ή μεγαλύτερη του y τότε, αυξάνουμε/μειώνουμε το δ κατά 1 και μειώνουμε αντίστοιχα το π κατά y, τόσες φορές μέχρι το π να γίνει μικρότερο του y, οπότε προσθέτουμε το δ στην τρέχουσα τιμή του x και θέτουμε δ = 0 μπορεί να γίνει κι αλλιώς;

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα Πλευρών 1.Αποτύπωση συνόρου πολυγώνου σύμφωνα με τις ελάχιστες y-τιμές των τομών των πλευρών Πίνακας Πλευρών (ΠΠ) περιέχει όλες τις πληροφορίες που είναι απαραίτητες για την μετέπειτα επεξεργασία των τομών τους με τις γραμμές σάρωσης. «κόψιμο» ορισμένων πλευρών: για κάθε τέτοια πλευρά μειώνουμε κατά μια μονάδα την τιμή της συντεταγμένης y του άνω άκρου της. Κάθε στοιχείο του πίνακα περιέχει: την μέγιστη τιμή του y για την πλευρά αυτή (y max ), την τιμή της συντεταγμένης x της τομής της κατώτερης κορυφής της πλευράς με μια γραμμή σάρωσης (x min ), την αντίστροφη κλίση της πλευράς (1/m) Πλευρά Xmin Ymax Dx Dy 1/m 1 0 8 2 7 2/7 2 4 8-2 2-1 3 4 8 3 2 3/2 4 9 8-2 4-1/2 5 6 3 2 2 1

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 1.Αποτύπωση συνόρου πολυγώνου Πίνακας Πλευρών (ΠΠ) Πλευρά Xmin Ymax Dx Dy 1/m 1 0 8 2 7 2/7 2 4 8-2 2-1 3 4 8 3 2 3/2 4 9 8-2 4-1/2 5 6 3 2 2 1

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 2.Ταξινόμηση πλευρών πολυγώνου ως προς ελάχιστες y-τιμές τομών των πλευρών Ταξινομημένη Λίστα Πλευρών (ΤΛΠ) για κάθε γραμμή σάρωσης, αποθηκεύονται οι πλευρές που τέμνονται, διατεταγμένες από αριστερά προς τα δεξιά (φορά των δεικτών του ρολογιού) Υλοποίηση της ΤΛΠ: δομή πίνακα (στατική δομή δεδομένων): άσκοπη κατανάλωση χώρου μνήμης, λόγω ποικίλλου αριθμού τομών δυναμική δομή διασυνδεδεμένων λιστών (linked lists): για κάθε ελάχιστη τιμή της συντεταγμένης y μιας πλευράς δημιουργείται ένα μπλοκ (bucket) πληροφορίας, όπου αποθηκεύονται οι τιμές των x min, y max, 1/m. y i x min y max 1/m x min y max 1/m x min y max 1/m x min y max 1/m

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 2.Ταξινόμηση πλευρών πολυγώνου 9 Ταξινομημένη Λίστα Πλευρών (ΤΛΠ) 8 7 6 4 8-1 4 8 3/2 5 4 9 8-1/2 3 2 1 0 8 2/7 6 3 1 0

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 3. Υπολογισμός pixels προς ενεργοποίηση με βάση την ΤΛΠ και για κάθε γραμμή σάρωσης y i : ενημερώνουμε τη Λίστα Ενεργών Πλευρών (ΛΕΠ), όπου τοποθετούμε τα αντίστοιχα buckets ταξινομημένα κατά αύξουσα σειρά των συντεταγμένων x των σημείων τομών. για κάθε ζεύγος τιμών του x στις τομές, ενεργοποιούμε τα pixels ξεκινώντας από την αριστερότερη τιμή του x και σταματώντας μια θέση πριν από την δεξιότερη τιμή του x. υπολογίζουμε την τιμή του συντεταγμένων x των στοιχείων της ΛΕΠ για την επόμενη γραμμή σάρωσης (αρχική τιμή τιμή x 0 = x min ) αφαιρούμε από τη ΛΕΠ τα buckets των οποίων y max = y i

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 3. Υπολογισμός pixels προς ενεργοποίηση Λίστα Ενεργών Πλευρών (ΛΕΠ) για τη γραμμή σάρωσης 1 1 0 8 2/7 6 3 1 Οπότε, ενεργοποιούνται τα pixels (0,1), (1,1), (2,1), (3,1), (4,1), (5,1)

Παράδειγμα Ι (συνέχεια) Για την επόμενη γραμμή σάρωσης, y=2 2 0 8 2/7 7 3 1 ενεργοποιούνται τα pixels (0,2), (1,2), (2,2), (3,2), (4,2), (5,2), (6,2)

Τα βασικά βήματα του αλγορίθμου Βήμα 1: Καταστρώνεται ο Πίνακας Πλευρών (ΠΠ), με πιθανό κόψιμο ορισμένων πλευρών. Βήμα 2: ημιουργείται η Ταξινομημένη Λίστα Πλευρών (ΤΛΠ) του πολυγώνου.

Τα βασικά βήματα του αλγορίθμου Βήμα 3: Για κάθε γραμμή σάρωσης y (ξεκινώντας από y = 0) επαναλαμβάνεται η ακόλουθη διαδικασία: Βήμα 3.1 Ενημερώνεται η Λίστα Ενεργών Πλευρών (ΛΕΠ) με βάση τη ΤΛΠ και τις τιμές των συντεταγμένων x γιατασημείατομής(x 0 = x min ). Βήμα 3.2 Ταξινομoύνται κατά αύξουσα σειρά οι τιμές των συντεταγμένων x των σημείων τομής Βήμα 3.3 Για κάθε ζεύγος τιμών x στις τομές ενεργοποιούνται τα ενδιάμεσα pixels ξεκινώντας από την αριστερότερη τιμή του x και σταματώντας μια θέση πριν από την δεξιότερη τιμή του x. Βήμα 3.4 Υπολογίζεται η τιμή x της τομής κάθε πλευράς με την επόμενη γραμμή σάρωσης. Βήμα 3.5 Αφαιρούνται από τη ΛΕΠ οι πλευρές των οποίων η τιμή y max είναι ίση με τη γραμμή σάρωσης.

Παρατηρήσεις Πλεονέκτημα: περιορίζει τις αναδρομικές κλίσεις Μειονεκτήματα: «κόψιμο» πλευρών επιλογή κατεύθυνσης της σάρωσης χρήση του y max για τον έλεγχο της διαδικασίας δεν γεμίζει σωστά σύνθετα πολύγωνα

Βελτιωμένος Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα Πλευρών 1.Αποτύπωση συνόρου πολυγώνου Πίνακας Πλευρών (ΠΠ) χωρίς «κόψιμο» οι οριζόντιες γραμμές αγνοούνται Πλευρά Xmin x y 1/m 1 0 2 7 2/7 2 4-2 2-1 3 4 3 2 3/2 4 9-2 4-1/2 5 6 3 3 1

Βελτιωμένος Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 2.Ταξινόμηση πλευρών πολυγώνου ως προς ελάχιστες y-τιμές τομών των πλευρών Ταξινομημένη Λίστα Πλευρών (ΤΛΠ) για κάθε γραμμή σάρωσης, αποθηκεύονται οι πλευρές που τέμνονται, διατεταγμένες από αριστερά προς τα δεξιά (φορά των δεικτών του ρολογιού) Υλοποίηση της ΤΛΠ: διασυνδεδεμένες λίστες (linked lists): για κάθε τιμή του x της τομής της γραμμής σάρωσης με μια πλευρά δημιουργείται ένα μπλοκ (bucket) πληροφορίας, όπου αποθηκεύονται οι τιμές των x min (τιμή συντεταγμένης x του σημείου τομής με τη γραμμή σάρωσης) y (για το υπόλοιπο της πλευράς μετά το y της γραμμής σάρωσης και μέχρι το y max ) 1/m ( x/ y) y i x min Δy 1/m x min Δy 1/m x min Δy 1/m x min Δy 1/m

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 3. Υπολογισμός pixels προς ενεργοποίηση με βάση την ΤΛΠ και για κάθε γραμμή σάρωσης y i : ενημερώνουμε τη Λίστα Ενεργών Πλευρών (ΛΕΠ), όπου τοποθετούμε τα αντίστοιχα buckets ταξινομημένα κατά τις τιμές των συντεταγμένων x των σημείων τομών κατά αύξουσα σειρά. για κάθε ζεύγος τιμών του x στις τομές, ενεργοποιούμε τα pixels από την αριστερότερη τιμή του x και σταματώντας μια θέση πριν την δεξιότερη τιμή υπολογίζουμε την τιμή των x και y των στοιχείων της ΛΕΠ για την επόμενη γραμμή σάρωσης: y k+1 = y k 1, μεαρχικήτιμήτο y της πλευράς μειωμένο κατά 1 αφαιρούμε από τη ΛΕΠ τα buckets των οποίων η τιμή y είναι αρνητική

Αλγόριθμος Σάρωσης με Ταξινομημένη Λίστα ΠΛευρών 3. Υπολογισμός pixels προς ενεργοποίηση Λίστα Ενεργών Πλευρών (ΛΕΠ) 8 7 6 2-1 2/7 7-1 -1/2 2-1 -1 7-1 3/2 1 0 2/7 7 0-1/2 3 0-1 5 0 3/2 1 1 2/7 8 1-1/2 4 1-1 4 1 3/2 5 4 3 2 1 1 2 2/7 8 2-1/2 0 3 2/7 9 3-1/2 0 4 2/7 8 0 1 0 5 2/7 7 1 1 0 6 2/7 6 2 1 0

Τα βασικά βήματα του βελτιωμένου αλγορίθμου Βήμα 1: Καταστρώνεται ο Πίνακας Πλευρών (ΠΠ) Βήμα 2: ημιουργείται η Ταξινομημένη Λίστα Πλευρών (ΤΛΠ) του πολυγώνου

Τα βασικά βήματα του βελτιωμένου αλγορίθμου Βήμα 3: Για κάθε γραμμή σάρωσης y (ξεκινώντας από y = 0) επαναλαμβάνεται η ακόλουθη διαδικασία: Βήμα 3.1 Ενημερώνεται η Λίστα Ενεργών Πλευρών (ΛΕΠ) με βάση τη ΤΛΠ και τις τιμές των συντεταγμένων x γιατασημείατομής(x 0 = x min ) και των y των υπολοίπων των πλευρών ( y 0 = y - 1) Βήμα 3.2 Ταξινομoύνται κατά αύξουσα σειρά οι τιμές των συντεταγμένων x των σημείων τομής Βήμα 3.3 Για κάθε ζεύγος τιμών x ενεργοποιούνται τα ενδιάμεσα pixels ξεκινώντας από την αριστερότερη τιμή του x και σταματώντας μια θέση πριν τη δεξιότερη τιμή του x Βήμα 3.4 Για την επόμενη γραμμή σάρωσης υπολογίζονται οι τιμές των x και y για τα σημεία τομής, όπου y κ+1 = y κ 1 Βήμα 3.5 Αφαιρούνται από τη ΛΕΠ οι πλευρές των οποίων η τιμή y είναι αρνητική

Άσκηση Έστω κατά τον υπολογισμό ακέραιων τιμών x τομής των πλευρών: αυξάνεται σε κάθε βήμα το π κατά 2 x και συγκρίνεται με το y, ως εξής: όταν π γίνει μεγαλύτερο από ή ίσο με y, αυξάνουμε το δ κατά 1 και μειώνουμε αντίστοιχα το π κατά 2 y, τόσες φορές μέχρι το π να γίνει μικρότερο του y, οπότε προσθέτουμε το δ στην τρέχουσα τιμή του x και θέτουμε δ = 0. Εφαρμόστε τον παραπάνω τρόπο υπολογισμού στον βελτιωμένο αλγόριθμο σάρωσης. Ποιές διαφοροποιήσεις παρατηρείτε στο τελικό γέμισμα του πολυγώνου;