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

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

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

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

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

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

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

Διάλεξη #10. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Χειμερινό εξάμηνο.

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.

Διαλέξεις #05 & #06. Διδάσκων: Φοίβος Μυλωνάς. Γραφικά με υπολογιστές. Αλγόριθμος Σχεδίασης Κύκλου Αλγόριθμος Σχεδίασης Έλλειψης

Μοντελοποίηση Λογικών Κυκλωμάτων

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

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

Θεωρία Πιθανοτήτων & Στατιστική

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Αυτοματοποιημένη χαρτογραφία

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ. ΕΝΟΤΗΤΑ: Διανύσματα στους Rn, Cn, διανύσματα στο χώρο (1) ΔΙΔΑΣΚΩΝ: Βλάμος Παναγιώτης ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Τεχνικό Σχέδιο

Εισαγωγή στους Αλγορίθμους

Τηλεπισκόπηση - Φωτοερμηνεία

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

Ανάκτηση Πληροφορίας

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

Τεχνικό Τοπογραφικό Σχέδιο

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

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

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

ΤΕΧΝΟΛΟΓΙΑ, ΚΑΙΝΟΤΟΜΙΑ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΟΤΗΤΑ 9 Ο εξάμηνο Χημικών Μηχανικών

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Αυτοματοποιημένη χαρτογραφία

Εισαγωγή στους Αλγορίθμους

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Ανάκτηση Πληροφορίας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

Συστήματα Αυτόματου Ελέγχου

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Τεχνικό Τοπογραφικό Σχέδιο

Εισαγωγή στους Αλγορίθμους

Υπολογιστικά & Διακριτά Μαθηματικά

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Πιθανότητες. Συνάρτηση κατανομής πιθανότητας Διδάσκων: Επίκουρος Καθηγητής Κωνσταντίνος Μπλέκας

Θέματα υπολογισμού στον πολιτισμό

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

Δομημένος Προγραμματισμός

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Ανάκτηση Πληροφορίας

Διδακτική Πληροφορικής

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Τεχνικό Σχέδιο. Ενότητα 1: Εισαγωγικά. Σταματίνα Γ. Μαλικούτη Τμήμα Πολιτικών Μηχανικών Τ.Ε.

Διδακτική της Πληροφορικής

Ανάλυση ευαισθησίας Ανάλυση ρίσκου. Μαυρωτά Γιώργου Αναπλ. Καθηγητή ΕΜΠ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 2: Μοντελο Συσχετίσεων Οντοτήτων, Μελέτη Περίπτωσης: Η βάση δεδομένων των CD

Τεχνικό Τοπογραφικό Σχέδιο

Αγροτικός Τουρισμός. Ενότητα 9 η : Εκπαιδευτικές τεχνικές στον τουρισμό. Όλγα Ιακωβίδου Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Τηλεπισκόπηση - Φωτοερμηνεία

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Ψηφιακή Τεχνολογία σε Ακαδημαϊκό Περιβάλλον

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Τεχνικό Σχέδιο - CAD

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 4: Εντολή σχεδίασης Arc Εντολές επεξεργασίας Copy, Explode. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εφαρμοσμένη Στατιστική

ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ

Άδειες Χρήσης. Διδακτική Μαθηματικών I. Κατηγορίες προβλημάτων - Ρεαλιστικά Μαθηματικά. Διδάσκων: Επίκουρος Καθ. Κ. Τάτσης

Μαθηματικά. Ενότητα 9: Όριο Συνάρτησης στο Διηνεκές. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Τα Σχήματα ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Διαφωτισμός και διαμόρφωση των πολιτικών ιδεολογιών στην Ελλάδα

2 n N: 0, 1,..., n A n + 1 A

Transcript:

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

Άδεια χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ιονίου Πανεπιστημίου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Προβολή σε ψηφιακή οθόνη Εκχώρηση τιμών σε pixel Με συναρτήσεις: π.χ. setpixel(x, y, color) Από buffer ή πίνακα: π.χ. FrameBuf[x][y] = color 4

Γραμμές και πολύγωνα Πολύγωνα: γραμμές μεταξύ διαταγμένων σημείων Ίδιο πρώτο και τελευταίο σημείο => κλειστό πολύγωνο Εάν δεν τέμνονται, ονομάζεται απλά πολύγωνο 5

Γραμμές και πολύγωνα Πολύγωνο P είναι η κλειστή καμπύλη από n κορυφές (κ 1,κ 2,,κ n ) και n ακμές. Η κορυφή κ είναι ένα εικονοστοιχείο (pixel) με συντεταγμένες (x,y). Jordan curve theorem (1887) Μια συνεχής κλειστή καμπύλη στο επίπεδο, χωρίζει το επίπεδο σε δύο περιοχές: εσωτερική και εξωτερική 6

Έλεγχος ισοτιμίας (parity check) Πρόβλημα: Δίνεται ένα σημείο p(x,y) στο επίπεδο. Ανήκει στο P πολύγωνο; Εάν ανήκει στο πολύγωνο, τότε το σχεδιάζουμε ή αλλιώς «γεμίζουμε» το πολύγωνο με χρώμα, κ.τ.λ.. 7

Έλεγχος ισοτιμίας Μέτρηση του πλήθους z των σημείων τομής της γραμμής σάρωσης της οθόνης, από τη θέση του σημείου p(x, y) μέχρι τη θέση (-,y), με την περίμετρο του πολυγώνου P. Εάν το πλήθος z αντιστοιχεί σε περιττό αριθμό, τότε το p ανήκει στο P. Εάν το πλήθος z αντιστοιχεί σε άρτιο αριθμό, τότε το p δεν ανήκει στο P. 8

Έλεγχος ισοτιμίας 9

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

Ειδικά πολύγωνα τρίγωνο τετράγωνο ορθογώνιο 11

Ο κύκλος ως πολύγωνο! Ένας κύκλος μπορεί να προσεγγισθεί με ένα πολύγωνο με πολλές πλευρές (> 15) 12

Έλλειψη Ένας κύκλος με κλίμακα κατά μήκος του άξονα x ή y. 6 5 4 3 2 1 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 13

Αναπαριστώντας σχήμα 2D Αναπαράσταση με πίνακες κορυφών και ακμών. Κάθε κορυφή (vertex) αναφέρεται μία φορά. Κάθε ακμή (edge) αναπαρίσταται με διατεταγμένο ζεύγος δεικτών στον πίνακα κορυφών. Επαρκείς πληροφορίες ώστε να γίνει το σχήμα και να εκτελεστούν απλές εργασίες. Κατά σύμβαση οι ακμές απαριθμούνται αριστερόστροφα. Vertexes 1 (0,0) 2 (1,0) 3 (0,1) 4 (1,1) 5 (0.5,1.5) Edges 1 (1,2) 2 (2,4) 3 (4,5) 4 (5,3) 5 (3,1) 14

Splines (Εναλλακτική Αναπαράσταση) Παραμετρικές καμπύλες που διέπονται από σημεία ελέγχου. Απλή παραμετρική αναπαράσταση: x y 3 2 ( t) = a3t + a2t + a1t + a 3 2 ( t) = b3t + b2t + b1t + b0 0 Πλεονέκτημα: Λεία, με μερικά μόνο σημεία ελέγχου Μειονέκτημα: Μπορεί να είναι δύσκολο να ελεγχθεί 15

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

Αναπαριστώντας σχήμα 3D Ανάλογη με 2D: Πίνακες Κορυφών και Τριγώνων Κάθε κορυφή απαριθμείται μια φορά. Κάθε τρίγωνο υποδεικνύεται με τριπλό δείκτη στον πίνακα κορυφών: 17

Αναπαριστώντας σχήμα 3D 18

Euler's Formula Για τα περισσότερα στερεά σχήματα: ο αριθμός των τριγώνων/επιφανειών (faces) συν τον αριθμό των κορυφών μείον τον αριθμό των ακμών ισούται πάντα με 2. Faces + Vertices Edges = 2 19

Γέμισμα Εσωτερικού Σχημάτων Στις δύο διαστάσεις (2D). Μας ενδιαφέρουν κυρίως πολύγωνα. Τυχαίο πολύγωνο: σύνολο κορυφών συνδεδεμένων με κλειστή γραμμή. Απαιτείται να γνωρίζουμε αν ένα (αρχικό) σημείο εκκίνησης για το γέμισμα βρίσκεται εντός ή εκτός περιοχής (containment test). 20

Χρωματισμός Πολύγωνου Θέλουμε να αποφύγουμε το χρωματισμό pixels δύο φορές! Δεν αποτελεί πρόβλημα στους frame buffers, αλλά μπορεί να αποτελέσει εάν χρησιμοποιηθούν άλλες τεχνικές απεικόνισης) Εν γένει: Τα pixels εντός της περιμέτρου (boundary) ενός πολυγώνου ανήκουν στο πολύγωνο. Τα pixels επί της αριστερής και κάτω ακμής του ανήκουν σε ένα πολύγωνο, αλλά όχι τα pixels στην επάνω και δεξιά ακμή. 21

Χρωματισμός Πολύγωνου Δύο τρόποι υλοποίησης (στις πλεγματικές οθόνες): μέθοδοι γεμίσματος (filling) συνάφεια pixels του εσωτερικού ενός αντικειμένου boundary fill / interior fill μέθοδοι σάρωσης (scan conversion) γεωμετρική περιγραφή της περιμέτρου ενός αντικειμένου 22

Έννοιες Σχεδίασης 2 τρόποι για να παραστήσουμε το πλέγμα των pixels Κέντρα σε ημίσειες συντεταγμένες Κέντρα σε ακέραιες συντεταγμένες (προτεινόμενο) Σύνδεση: αναπαράσταση των γειτόνων ενός pixel Τετραπλή σύνδεση Οκταπλή σύνδεση Προκλήσεις της σχεδίασης Καθορισμός των pixels που περιγράφουν το σχήμα ακριβώς Αποδοτικότητα 23

Έννοιες Σχεδίασης 4πλή Σύνδεση 8πλή Σύνδεση 4 πλησιέστερα: (x+1,y), (x-1,y), (x,y+1), (x,y-1) 8 πλησιέστερα: τα παραπάνω + τα διαγώνια pixels 24

Γέμισμα με βάση περίμετρο (boundary fill) Είσοδοι αλγορίθμου: Ένα εσωτερικό σημείο εκκίνησης (x,y) χρώμα περιμέτρου χρώμα γεμίσματος συνάφεια 4 ή 8 σημείων Αναδρομική λειτουργία Τερματισμός: όταν φτάσουμε σε pixel που έχει χρώμα περιμέτρου όταν φτάσουμε σε pixel που έχει ήδη «γεμιστεί» 25

Γέμισμα με βάση περίμετρο (boundary fill) boundary_fill(x, y, fill_colour, bound_colour) int x, y, fill_colour, bound_colour; {int current_colour; } current_colour = get_colour(x,y); /* διάβασε το χρώμα του pixel (x,y) */ if((current_colour!=bound_colour) && { } (current_colour!=fill_colour)) setpixel(x, y, fill_colour); boundary_fill(x+1, y, fill_colour, bound_colour); boundary_fill(x-1, y, fill_colour, bound_colour); boundary_fill(x, y+1, fill_colour, bound_colour); boundary_fill(x, y-1, fill_colour, bound_colour); 26

Γέμισμα με βάση περίμετρο (boundary fill) Για περιοχές με τετραπλή σύνδεση οι παραπάνω 4 αναδρομικές κλήσεις είναι επαρκείς Για περιοχές με οκταπλή σύνδεση χρειάζονται ακόμα 4 αναδρομικές κλήσεις flood_fill_recur((x+1,y+1), fill_colour ); flood_fill_recur((x+1,y-1), fill_colour ); flood_fill_recur((x-1,y+1), fill_colour ); flood_fill_recur((x-1,y-1), fill_colour ); Το βασικό πρόβλημα είναι η μη αποδοτικότητα. 27

Γέμισμα με βάση υπάρχον χρώμα (interior fill) Είσοδοι αλγορίθμου: 1 εσωτερικό σημείο εκκίνησης (x,y) υπάρχον εσωτερικό χρώμα χρώμα γεμίσματος συνάφεια 4 ή 8 σημείων Αναδρομική λειτουργία Τερματισμός: όταν φτάσουμε σε pixel που δεν έχει το υπάρχον εσωτερικό χρώμα 28

Γέμισμα με βάση υπάρχον χρώμα (interior fill) boundary_fill(x, y, fill_colour, interior_colour) int x, y, fill_colour, interior_colour; {int current_colour; } current_colour = get_colour(x,y); /* διάβασε το χρώμα του pixel (x,y) */ if((current_colour==interior_colour) && { } (current_colour!=fill_colour)) setpixel(x, y, fill_colour); boundary_fill(x+1, y, fill_colour, interior_colour); boundary_fill(x-1, y, fill_colour, interior_colour); boundary_fill(x, y+1, fill_colour, interior_colour); boundary_fill(x, y-1, fill_colour, interior_colour); 29

Γέμισμα με βάση σάρωση Εύρεση του σημείου τομής της περιμέτρου του πολυγώνου Ρ με τις οριζόντιες γραμμές σάρωσης της οθόνης. Για κάθε πλευρά n του Ρ βρίσκουμε όλα τα σημεία τομής με τις γραμμές σάρωσης. Κατασκευάζουμε μια λίστα (x, y) των σημείων τομής. Ταξινόμηση της λίστας κατά y και μετά κατά x. Απομάκρυνση κατά ζεύγη των στοιχείων από τη λίστα και χρωματισμός των pixels του ευθύγραμμου τμήματος που προσδιορίζεται από κάθε ζεύγος τομών με το χρώμα του πολυγώνου. 30

Γέμισμα με βάση σάρωση (1,j),(2,j) (3,j+1),(4,j+1) (5,j+2),(6,j+2) (7,j+3),(8,j+3) (9,j+4),(10,j+4) (11,j+5),(12,j+5) (13,j+6),(14,j+6) Line ((1,j),(2,j),blue) Line ((3,j+1),(4,j+1),blue) Line ((5,j+2),(6,j+2),blue) 31

Εφαρμογές Μεθόδων Γεμίσματος bucket fill tool : Photoshop, κ.λ.π. παιχνίδια: Minesweeper, κ.λ.π. 32

http://www.netgraphics.sk/areas#vyplnanieoblasti 33

Ερωτήσεις - Απορίες 34