Αλγόριθμοι παράστασης βασικών σχημάτων σε πλεγματικές οθόνες

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

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

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

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

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

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

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

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

Γραφικά Υπολογιστών. Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας και Θράκης. Γραφικά Υπολογιστών ΣΤ Εξάμηνο. Δρ Κωνσταντίνος Δεμερτζής

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

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

Ορισμός Τετραγωνική ονομάζεται κάθε συνάρτηση της μορφής y = αx 2 + βx + γ με α 0.

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

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

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

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

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

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

1ο τεταρτημόριο x>0,y>0 Ν Β

Κεφάλαιο 0 Μιγαδικοί Αριθμοί

ΛΥΣΕΙΣ ΤΟΥ ΔΙΑΓΩΝΙΣΜΑΤΟΣ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ (Α)

Διαγώνισμα Φυσικής Α Λυκείου 9/11/2014

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

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

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

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

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

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ


Μελέτη της συνάρτησης ψ = α χ 2

Φύλλο Εργασίας για την y=αx 2

δίου ορισμού, μέσου του τύπου εξαρτημένης μεταβλητής του πεδίου τιμών που λέγεται εικόνα της f για x α f α.

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

1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ

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

Μετασχηματισμός Παρατήρησης

Καρτεσιανές συντεταγμένες Γραφική παράσταση συνάρτησης

Μετασχηµατισµοί 2 &3

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

Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1

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

Γραφικά Υπολογιστών: Αλγόριθμοι Σχεδίασης Γραμμών

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

1. Ιδιότητες φακών. 1 Λεπτοί φακοί. 2 Απριλίου Βασικές έννοιες

x y Ax By Εξίσωση Κύκλου Έστω Oxy ένα σύστημα συντεταγμένων στο επίπεδο και C ο κύκλος με κέντρο το σημείο Εφαπτομένη Κύκλου Η εφαπτομένη του κύκλου

Ευρωπαϊκή Ολυμπιάδα Φυσικών Επιστημών Προκαταρκτικός Διαγωνισμός Ανατολικής Αττικής. Φυσική

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

ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΚΙΝΗΣΗΣ ΤΩΝ ΣΩΜΑΤΩΝ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ. υ = σταθερη (1) - Με διάγραμμα :

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

4. Να βρείτε την εξίσωση της ευθείας που διέρχεται από την αρχή των αξόνων και το σημείο Α(,.

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

1 ΘΕΩΡΙΑΣ...με απάντηση

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

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

4. 1 Η ΣΥΝΑΡΤΗΣΗ Y=AX 2 ME A 0

ΜΑΘΗΜΑ / ΤΑΞΗ : ΦΥΣΙΚΗ / Α ΛΥΚΕΙΟΥ ΣΕΙΡΑ: Α ΗΜΕΡΟΜΗΝΙΑ: 19/10/2014 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Άρχων Μάρκος, Γεράσης Δημήτρης, Τζαγκαράκης Γιάννης

Η συνάρτηση y = αχ 2. Βρέντζου Τίνα Φυσικός Μεταπτυχιακός τίτλος: «Σπουδές στην εκπαίδευση» ΜEd

4.1. Πολυώνυμα. Η έννοια του πολυωνύμου

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

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

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

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

Να υπολογίζουμε τους τριγωνομετρικούς αριθμούς οξείας γωνίας. Τη γωνία σε κανονική θέση και τους τριγωνομετρικούς αριθμούς γωνίας σε κανονική θέση.

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Ορισμένες σελίδες του βιβλίου

ΘΕΜΑ A: ΔΙΑΡΚΕΙΑ: 120min ΤΜΗΜΑ:. ONOMA:. ΕΠΩΝΥΜΟ: ΗΜΕΡΟΜΗΝΙΑ: ΘΕΜΑ 1 ο ΘΕΜΑ 2 ο ΘΕΜΑ 3 ο ΘΕΜΑ 4 ο ΣΥΝΟΛΟ ΜΟΝΑΔΕΣ

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

Εργασία 2. Παράδοση 20/1/08 Οι ασκήσεις είναι βαθμολογικά ισοδύναμες

ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΒΑΣΙΚΩΝ ΣΥΝΑΡΤΗΣΕΩΝ

Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0

Ιωάννης Σ. Μιχέλης Μαθηματικός

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

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

Μαθηματικά Θετικής Τεχνολογικής Κατεύθυνσης Β Λυκείου

ΕΙΣΑΓΩΓΗ ΣΤΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΩΝ

3.5 Η ΣΥΝΑΡΤΗΣΗ y=α/x-η ΥΠΕΡΒΟΛΗ Ποσά αντιστρόφως ανάλογα- Η υπερβολή

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

Αν ο κύκλος έχει κέντρο την αρχή των αξόνων Ο(0,0) τότε έχει εξίσωση της μορφής : x y και αντίστροφα. Ειδικότερα Ο κύκλος με κέντρο Ο(0,0)

ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ ΣΕΙΡΑ: Α (ΛΥΣΕΙΣ) ΗΜΕΡΟΜΗΝΙΑ: 13/10/2013

Περιεχόμενα. Κεφάλαιο 1 ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ ΣΕ ΜΙΑ ΕΥΘΕΙΑ Οι συντεταγμένες ενός σημείου Απόλυτη τιμή...14

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

1. Ποια μεγέθη ονομάζονται μονόμετρα και ποια διανυσματικά;

β) Από τον νόμο του Νεύτωνα για την μεταφορική κίνηση του κέντρου μάζας έχουμε: Επομένως το κέντρο μάζας αποκτάει αρνητική επιτάχυνση σταθερού μέτρου

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

7 ο Γυμνάσιο Καβάλας Καλλιόπη Παρσέλια Σχολ. έτος: Το περιβάλλον προγραμματισμού MicroWorlds Pro

x 2 + y 2 x y

ΚΕΦΑΛΑΙΟ 2ο: ΜΗΧΑΝΙΚΑ- ΗΛΕΚΤΡΟΜΑΓΝΗΤΙΚΑ ΚΥΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ.

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

(ΤΑ ΑΓΑΘΑ ΚΟΠΟΙΣ ΚΤΩΝΤΑΙ)

4.3. Γραµµικοί ταξινοµητές

Εφαρμοσμένα Μαθηματικά

1.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

1 of 79 ΘΕΜΑ 2. Δίνεται η συνάρτηση f(x) = x 2 4x + 5, x R

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

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

Κεφάλαιο 1 o Εξισώσεις - Ανισώσεις

Επαναληπτικό Διαγώνισμα Μαθηματικών Κατεύθυνσης Β Λυκείου

Transcript:

Αλγόριθμοι παράστασης βασικών σχημάτων σε πλεγματικές οθόνες

Αλγόριθμοι Παράστασης Βασικών Σχημάτων Προσέγγιση μαθηματικών σχημάτων από διακριτά pxels: Ευθύγραμμο τμήμα, κύκλος, κωνικές τομές, πολύγωνο. S/W ή H/W. Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3Δ Μαθηματικά Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης Απομάκρυνση Πίσω Επιφανειών 3Δ Αποκοπή Είσοδοι (για κάθε καρέ) Παράσταση Στην Οθόνη: Σάρωση Αντιταύτιση Φωτισμός Υφή Απόκρυψη Γραμμών/ Επιφανειών D ΣΣΟ (SCS) Προβολή

Αλγόριθμοι σχεδίασης βασικών σχημάτων Οι αλγόριθμοι για σχεδίαση βασικών σχημάτων σε πλεγματικές οθόνες πρέπει να χαρακτηρίζονται από: Ταχύτητα Ακρίβεια «Καλό» τελικό αποτέλεσμα

Η ευθεία Tα πάντα (όπως και μια ευθεία) κατασκευάζονται από εικονοστοιχεία (pxels). Αρκεί κάθε φορά να «ανάψουμε» το κατάλληλο pxel, ανάλογα με το σχήμα που θέλουμε να σχεδιάσουμε. Παράδειγμα: Μια ευθεία που προσεγγίζεται με εικονοστοιχεία.

Αλγεβρική εξίσωση ευθείας Η αλγεβρική εξίσωση της ευθείας και πως αυτή διερμηνεύεται γραφικά: =sx+b s=d/dx ( το s είναι η κλίση της ευθείας.) (0,b) dx d x

Ευθύγραμμο Τμήμα: Αλγόριθμος DDA Κριτήρια καλού αλγόριθμου ευθύγραμμου τμήματος: Σταθερό πάχος ανεξάρτητο κλίσης, όχι κενά (συνεκτική). Pxels όσο το δυνατόν πλησιέστερα στη μαθηματική πορεία της. Ταχύτητα. Εστω ευθύγραμμο τμήμα μεταξύ P (x, ) και P n (x n, n ) ου οκταμορίου: Για κάθε σημείο P(x, ) του ευθύγραμμου τμήματος ισχύει: lne(x,,xn,n,colour) nt x,,xn,n,colour; /*colour η τιμή του χρώματος του ευθύγραμμου τμήματος*/ {float s,b,; nt x; } s=(n-)/(xn-x); b=(*xn-n*x)/(xn-x); for (x=x;x<=xn;x++) {=s*x+b; s x b setpxel(x,round(),colour);} με s x n n x Δ Δx και b x x n n x n x

Ευθύγραμμο Τμήμα: Αλγόριθμος (αυξητικός) Πολλαπλασιασμός μέσα στο βρόχο μπορεί να αποφευχθεί, αφού σε κάθε επανάληψη η τιμή του x αυξάνει κατά δηλαδή Αντικαθίσταται από πρόσθεση αφού ισχύει: lne (x,,xn,n,colour) nt x,,xn,n,colour; {float s,; nt x; } s=(n-)/(xn-x); =; for (x=x;x<=xn;x++) {setpxel(x,round(),colour); } =+s; x x sx b sx b s s

Η ευθεία Αυξάνουμε το x ή το, όποιο αλλάζει γρηγορότερα. Υπολογίζουμε την κοντινότερη ακέραια τιμή που αντιστοιχεί στο άλλο. Ενεργοποιούμε το αντίστοιχο pxel.

Η ευθεία Παράδειγμα:

Η ευθεία Αλγόριθμος διαφορών (DDA, Dgtal Dfferental Analzer) Ο αλγόριθμος αντικαθιστά τις πράξεις του πολλαπλασιασμού με πρόσθεση Αυξητικός αλγόριθμος

Η ευθεία - Αλγόριθμος DDA dda(x,, x,, colour) nt x, x,,, colour; { double s, ; nt x; s= (-)/((double) (x-x)); = ; for (x=x; x<=x; x++) { setpxel(x, round(), color); = +s; } }

Η ευθεία - Αλγόριθμος DDA Αν s< ο DDA δουλεύει καλά. Αν s> αλλάζουμε τους ρόλους των x,. Αν s> και αυξάνω το x μπορεί να έχω κενά στο σχεδιασμό της ευθείας Λύση: Αυξάνουμε το Προσαρμογή της λειτουργίας ανάλογα με την κλίση της ευθείας. Αύξηση του x: Αφήνει κενά κατά το σχεδιασμό της ευθείας Αύξηση του : Δεν αφήνει κενά

Ο Αλγόριθμος DDA (Dgtal Dfferental Analser)

Ευθύγραμμο Τμήμα: Αλγόριθμος 3 (χωρίς στρόγγυλευση) Στρογγύλευση () μέσα στο βρόχο μπορεί να αποφευχθεί: Διαχωρισμός σε ακέραιο () και δεκαδικό (error) μέρος. error είναι η απόσταση του pxel (x +, ) από ιδεατή ευθεία: lne3 (x,,xn,n,colour) nt x,,xn,n,colour; {float s,error; nt x,; s=(n-)/(xn-x); =; error=0; for (x=x;x<=xn;x++) {setpxel(x,,colour); error=error+s; f (error>=0.5){++; error--} } }

Η ευθεία Λαμβάνουμε υπόψη την απόσταση λάθους από το κέντρο του pxel. π.χ. Το πάνω pxel απέχει μεγαλύτερη απόσταση από την ευθεία συγκριτικά με το κάτω. π.χ. Το κάτω pxel απέχει μεγαλύτερη απόσταση από την ευθεία συγκριτικά με το πάνω.

Η ευθεία Ο αλγόριθμος του Bresenham (965) χρησιμοποιεί ακέραια αριθμητική μόνο. Στηρίζεται στην εξής βασική ιδέα: Επιλέγουμε το κοντινότερο pxel κάθε φορά.

Ευθύγραμμο Τμήμα: Αλγόριθμος 4 (Bresenham) Αντικατάσταση πραγματικών μεταβλητών από ακέραιες με κατάλληλη κλιμάκωση s, error & συνθήκης επιλογής: πολλαπλασιάζουμε με dx = x n -x, Οπότε το s και error γίνονται ακέραιοι και s d,. Επιλογή επόμενου pxel: error dx/ error dx/ error 0 & αρχική αφαίρεση dx/ από error ( / με ολίσθηση). lne4 (x,,xn,n,colour) nt x,,xn,n,colour; {nt error,x,,dx,d; } dx=xn-x; d=n-; error=-dx/; =; for (x=x; x<=xn; x++) {setpxel(x,,colour); } error=error+d; f (error>=0){++; error=error-dx}

Ευθύγραμμο Τμήμα: Αλγόριθμος Bresenham O παραπάνω αλγόριθμος λειτουργεί μόνο στο ο οκταμόριο (για x<xn)(αλλά συμμετρικά): μεταφορά (x, ) ώστε να συμπέσει με αρχή αξόνων. Y Άξονας 3 Οκταμόριο ταχυτ. Κίνησης Άλλος άξονας x Αυξάνεται 4» 3 Μειώνεται 5 8 X 4 x» 5 x Αυξάνεται 6 7 6» 7 Μειώνεται 8 x»

Η ευθεία - Αλγόριθμος Bresenham bresenham(x,, x,, color) nt x,, x,, color; { nt error, x,, dx, d; dx= x-x; d= -; error= -dx/; = ; for (x=x; x<=x; x++) { setpxel(x,, color); error+= d; f (error>=0) ++, error-= dx; } }

Η ευθεία - Αλγόριθμος Bresenham bresenham(x,, x,, color) nt x,, x,, color; { nt error, x,, dx, d; dx= x-x; d= -; error= -dx/; = ; for (x=x; x<=x; x++) { setpxel(x,, color); error+= d; f (error>=0) ++, error-= dx; } }

Η ευθεία - Αλγόριθμος του μέσου κλίση μικρότερη από 45 ο NE M P(xp, p) E

Η ευθεία F(x, )= 0 = d x - dx + B dx Αρχικά d= F(x +, + ½) d αν διαλέξουμε Ε d new -d old = d - dx αν διαλέξουμε ΝΕ Πολλαπλασιάζουμε την F με για ακέραια αριθμητική.

Η ευθεία fnal(x,, x,, color) nt x,, x,, color; { nt d, x,, dx, d; dx= x-x; d= -; d= -*d-dx; ncre= d; ncrne= *(d-dx); for (x=x; x<=x; x++) { setpxel(x,, color); f (d<=0) d+= ncre; else d+= ncrne, ++; } }

Ο Αλγόριθμος του Bresenham για την Ευθεία /

Ο Αλγόριθμος του Bresenham για την Ευθεία /

Εφαρμογή του Αλγορίθμου /. Καθορισμός των δύο άκρων του ευθυγράμμου τμήματος. Χαρακτηρισμός του αριστερού άκρου ως (x 0, 0 ) και σχεδίαση του πρώτου σημείου 3. Υπολογισμός των σταθερών Δx, Δ, Δ & Δ-Δx καθώς και 4. της αρχικής τιμής της παραμέτρου Ρ 0 =Δ-Δx

Εφαρμογή του Αλγορίθμου / 5. Για κάθε x k κατά μήκος της γραμμής, αρχίζοντας από k=0, γίνεται ο επόμενος έλεγχος: Αν Ρ k <0, το επόμενο pxel που σχεδιάζεται είναι το (x k +, k ) & Ρ k+ =Ρ k +Δ Αλλιώς, το επόμενο pxel είναι το (x k +, k +) & Ρ k+ =Ρ k +Δ-Δx 6. Επαναλαμβάνουμε το βήμα 5γ για Δx- φορές

Παράδειγμα Εφαρμογής / Έστω ότι θέλουμε να σχεδιάσουμε το ευθύγραμμο τμήμα με αρχή στο (0,0) & τέλος στο (30,8) Η κλίση της γραμμής είναι 0,8 & Δx=0, Δ=8 Η αρχική τιμή της παραμέτρου ελέγχου είναι P 0 =Δ- Δχ=6 και τα βήματα για το υπολογισμό των διαδοχικών παραμέτρων απόφασης είναι Δ=6, Δ-Δx=-4

Παράδειγμα Εφαρμογής / Αρχίζοντας από το σημείο (x 0, 0 )=(0,0) οι ακόλουθες θέσεις των pxels είναι:

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

Κύκλος 8-πλή συμμετρία, δημιουργούμε ένα οκταμόριο (έστω ο ) crcle_smmetr (x,,colour) nt x,,colour; {setpxel(x,,colour); setpxel(,x,colour); setpxel(,-x,colour); setpxel(x,-,colour); setpxel(-x,-,colour); setpxel(-,-x,colour); setpxel(-,x,colour); setpxel(-x,,colour); }

Ο κύκλος Aλγόριθμος του Bresenham:

Ο κύκλος Πως επιλέγεται το επόμενο pxel που θα ανάψει;

Ο κύκλος Έχουμε επιλογές To P είναι έξω από τον κύκλο. Άρα, επιλέγεται το κάτω pxel. Το P είναι μέσα στον κύκλο. Άρα, επιλέγεται το πάνω pxel.

Ο κύκλος Ελέγχουμε αν το P(x,) είναι μέσα στον κύκλο: R x R Ελέγχουμε αν το P(x,) είναι έξω από τον κύκλο: R x R Ελέγχουμε αν το P(x,) είναι πάνω στον κύκλο: R x R

Κύκλος: Αλγόριθμος Bresenham Εστω (x, ) επελέγη ως το πλησιέστερο. Τι θα επιλεγεί στο επόμενο βήμα (x +, ) ή (x +, -)? Μεταβλητή απόφασης: e =d -d όπου Αν e 0 επιλέγεται το σημείο (x +, -) διαφορετικά»»» (x +, ) Επειδή για x=x + ισχύει =r -(x +) έχουμε: e r x r x x r d και d crcle (r,colour) nt r,colour; {nt x,,e; x=0; =r; e=3-*r; whle (x<=) {crcle_smmetr(x,,colour); x++; f (e>=0) {--; e=e-4*} e=e+4*x+;} }

Κύκλος: Αλγόριθμος Bresenham Η τιμή e + υπολογίζεται επαναληπτικά ως εξής: Για τον υπολογισμό του e + χρησιμοποείται το εξής τέχνασμα: Θεωρώντας σαν πρώτο σημείο του ου οκταμορίου το σημείο (x,)=(0,r) x e x e r x x r x x r x r x e 6 4 6 4 6 4 8 8 4 4 6 4 0 4 0 x e e x e e e x e e e ή Αν Αν r r r r e 3

Κύκλος: Αλγόριθμος Bresenham crcle (r,colour) nt r,colour; {nt x,,e; x=0; =r; e=3-*r; whle (x<=) {crcle_smmetr(x,,colour); x++; f (e>=0) {--; e=e-4*} e=e+4*x+;} } Στην περίπτωση που το κέντρο του κύκλου είναι διαφορετικό από το σημείο (0,0) π.χ. Το σημείο (xc,c) αρκεί να αντικατασταθεί η crcle_smmetr x,,colour)) με την κλήση της crcle_smmetr(x+xc,+c,colour))

//07 Ο κύκλος Αλγόριθμος ενδιάμεσου σημείου

Ο κύκλος Εξίσωση κύκλου: F(x,) = 0 = x + - R Επιλογή E ή SE d= F(M)= F(x p +, p - ½) P(xp, p) SE E M

Ο κύκλος Δd= xp + 3 αν διαλέξουμε το Ε, (Δd=F(M)-F(M) γιατί αν επιλέξω το Ε το επόμενο μέσο μου θα είναι το Μ) Δd= xp - p + 5 αν διαλέξουμε το SE (Δd=F(M)-F(M) γιατί αν επιλέξω το SΕ το επόμενο μέσο μου θα είναι το Μ) Αφού κατασκευάσουμε ένα σημείο, μπορούμε να κατασκευάσουμε και τα υπόλοιπα επτά συμμετρικά σημεία του κύκλου. smmetrc_ponts(nt x, nt, nt color) { setpxel(x,, color); setpxel (, x, color); setpxel(x, -, color); setpxel (-, x, color); setpxel(-x,, color); setpxel (, -x, color); setpxel(-x, -, color); setpxel (-, -x, color); }

Ο κύκλος (η προσέγγιση) crcle(nt color) { } nt x,, R; double d; x= 0; = R; d= 5.0/4.0-R; smmetrc_ponts(x,, color); whle (>x) { f (d<=0) d+=.0*x + 3.0, x++; else d+=.0*(x-) + 5.0, x++, --; smmetrc_ponts(x,, color); } Ξεκινώ από το P(0,R) και κινούμαι μέχρι το ( R/, R/) κατασκευάζοντας τον κύκλο συμμετρικά. Το αρχικό Μ (xp+,p-/) = (,R-/). Άρα d=f(m)= 5.0/4.0-R

Ο κύκλος (ακέραια αριθμητική) crcle(nt color) { nt x,, h, R; x= 0; = R; h= -R; smmetrc_ponts(x,, color); whle (>x) { f (h<0) h+= *x + 3, x++; else h+= *(x-) + 5, x++, --; smmetrc_ponts(x,, color); } }

Ο Αλγόριθμος του Ενδιάμεσου Συνάρτηση ελέγχου Σημείου για τον Κύκλο

Εφαρμογή του Αλγορίθμου. Καθορισμός των τιμών της ακτίνας r, του κέντρου (x c, c ) και,. Kαθορισμός του αρχικού σημείου στο (x 0, 0 )=(0,r) για κύκλο με κέντρο στο (0,0), 3. Υπολογισμός της αρχικής τιμής της παραμέτρου p 0 =5/4 - r

Εφαρμογή του Αλγορίθμου 4. Για κάθε θέση x k αρχίζοντας από k=0, γίνεται ο ακόλουθος έλεγχος Εάν p k <0 το επόμενο pxel στο κύκλο με κέντρο το (0,0) είναι το (x k +, k ) & p k+ =p k +x k++ Αλλιώς, το επόμενο pxel είναι το (x k +, k -) & p k+ =p k +x k+ +- k+ όπου x k+ =x k + & κ+ = k -

Εφαρμογή του Αλγορίθμου 5. Καθορισμός των συμμετρικών σημείων στα άλλα ογδοη-μόρια του κύκλου 6. Μεταφορά κάθε υπολογισμένου pxel με θέση (x,) στον κύκλο με κέντρο στο (xc,c) και σχεδιασμός των σημείων (x+xc,+c) 7. Επανάληψη των τριών τελευταίων βημάτων μέχρι x>=

Παράδειγμα Εφαρμογής / Έστω κύκλος με ακτίνα r = 0. Εντοπίζουμε τα κατάλληλα pxels με χρηση του αλγορίθμου μεσαίου σημείο για το πρώτο ογδοη-μόριο του πρώτου τεταρτημόριου, από x=0 έως x= Η αρχική τιμή της παραμέτρου είναι p 0 =- r = -9 Για το κύκλο με κέντρο στο (0,0) και αρχικό σημείο (x 0, 0 )=(0,0) οι αρχικές τιμές για τον υπολογισμό της παραμέτρου ελέγχου είναι x 0 =0, 0 =0 Εφαρμόζοντας την επαναληπτική σχέση βρίσκουμε τις τιμές του επόμενου πίνακα

Παράδειγμα Εφαρμογής /

//07 H έλλειψη

Ελλειψη Πολλοί αλγόριθμοι για κωνικές τομές: Εδώ αλγόριθμος Αγάθου-Θεοχάρη-Μπεμ (998). Γρήγορος, μικρή απαίτηση ακρίβειας ακεραίων, σωστή μετάβασης περιοχής. Εξίσωση έλλειψης με κέντρο (0,0): x /a + /b = Τετραπλή συμμετρία: δημιουργούμε μόνο περιοχές,

Ελλειψη Περιοχή : άξονας κύριας κίνησης ο X Εκκίνηση από (0, b) Τέλος περιοχής όταν d/dx = - Ορίζουμε: και θέτουμε: d Θέτουμε e = - οπότε: ε d d d d d ε 4 ε

Ελλειψη Τιμή απόφασης: d(/) = / δηλαδή για ε = / Αν d / επιλέγουμε pxel B διαφορετικά επιλέγουμε pxel D Διευκολύνουμε περαιτέρω αυξητικό υπολογισμό παίρνοντας d = a (d-d) d a 4a a a (.3) οπότε: Αν d a / επιλέγουμε pxel B (.4) διαφορετικά επιλέγουμε pxel D

Ελλειψη Αυξητικός υπολογισμός d (.5) Ομως από την εξίσωση της έλλειψης για το σημείο (x +, ) έχουμε a =a b -b (x +) οπότε: (.6) Στη συνέχεια ορίζουμε το d,+ ως προς το d, :, a a x b b a d, 4 a a x b b x b b a x x a a x b b a a a x b b a d, a a a d d a d (.5)

Ελλειψη Αλλά από την (.6) έχουμε οπότε: Αν d, >a / τότε + = - από την (.4), οπότε: Αν d, a / τότε + = από την (.4), οπότε: Η αρχική τιμή d,0 βρίσκεται αντικαθιστώντας τις συντεταγμένες του πρώτου pxel της περιοχής (0,b) για τα (x, ) στην (.6):,, a a d x b b a 4,, x b b a a a a d d 4 4,, a x b b d d 4,, x b b d d b a b d,0

Ελλειψη (Μετάβαση από Περιοχή σε Περιοχή ) Μετάβαση περιοχής: Στηρίζεται στην τιμή του d για το σημείο (x +, -3/) Αν πραγματική έλλειψη περνάει κάτω από αυτό αλλαγή περιοχής θέτοντας ε = 3/ στην (.3) d 3 3 3 a 4a a a 4a a Αν d4a ( -)+a / τότε παραμένουμε στην περιοχή διαφορετικά μεταβαίνουμε στην περιοχή. Παρομοίως βρίσκουμε μεταβλητή απόφαση περιοχής : d, Αρχική τιμή μεταβλητής απόφασης περιοχής : d, λαμβάνεται από τελική τιμή d, : d, = d, + (d, - d, ) οπότε από (.6) και (.7) προκύπτει: d b x, d, a

Ελλειψη Ellpse (a,b,colour) nt a,b,colour; {nt a_sqr,b_sqr,a,b,a4,b4,x_slope,_slope,d,mda,mdb,x,; x=0; =b; a_sqr=a*a; b_sqr=b*b; a=a_sqr+a_sqr; b=b_sqr+b_sqr; a4=a+a; b4=b+b; x_slope=b4; /*x_slope==(4*b^)*(x+) πάντα */ _slope=a4*(-); /*_slope==(4*a^)*(-) πάντα */ mda=a_sqr>>; mdb=b_sqr>>; d=b-a_sqr-(_slope>>)-mda; /* αφαιρούμε a^/ για βελτιστοποίηση */ /* περιοχή */ whle (d<=_slope) {setpxel(x,,colour); f (d>0) {d=d-_slope; --; _slope=_slope-a4;} d=d+b+x_slope; x++; x_slope=x_slope+b4;} /*Αλλαγή περιοχής*/ d=d-(x_slope+_slope)>>+(b_sqr-a_sqr)+(mda-mdb); /* περιοχή */ whle (>=0) {setpxel (x,,colour); f (d<=0) {d=d+x_slope; x++; x_slope=x_slope+b4;} d=d+a-_slope; --; _slope=_slope-a4;} }

Η έλλειψη Φ(x, ) b x a Δύο ειδών κλίσεις < 45 o > 45 o 45 o Σε αντίθεση με τον κύκλο έχουμε κατασκευή τεσσάρων μόνο συμμετρικών σημείων 4_smmetrc_ponts(nt x, nt, nt color) { setpxel(x,, color); setpxel(x, -, color); setpxel(-x,, color); setpxel(-x, -, color); }

Έλλειψη Απλός υπολογισμός //07

Η έλλειψη Κλίση > 45 ο Εξίσωση έλλειψης: F(x,) = 0 = b x + a - a b Επιλογή E ή SE - Μέσο Μ d= F(M)= F(x p +, p - ½) Νέα μέσα Μ E και M SE P(xp, p) SE E M M E M SE

Η έλλειψη Κλίση < 45 ο Εξίσωση έλλειψης: F(x,) = 0 = b x + a - a b Επιλογή S ή SE - Μέσο Μ d= F(M)= F(x p + ½, p - ) Νέα μέσα Μ S και M SE P(xp, p) S M SE M SE M S

Η έλλειψη (απλός) ellpse(nt color) { nt x,, a, b; double d, d; x=0; =b; d= b^- a^*b + 0.5*a^; 4_smmetrc_ponts(x,, color); whle (a^*(-0.5)> b^*(x+)) { f (d<0) d+= b^*(*x+3), x++; else d+= b^*(*x+3) + a^*(-*+), x++; --; 4_smmetrc_ponts(x,, color); } }

Η έλλειψη (απλός-συνέχεια) } d= b^*(x+0.5)^- a^*(-)^- a^*b^; whle (>0) { f (d<0) d+= b^*(*x+)+a^*(-*+3), x++, --; else d+= a^*(-*+3), --; 4_smmetrc_ponts(x,, color); } Παρόμοιες μετατροπές για ακέραια αριθμητική

Ερωτήσεις & Απαντήσεις Περιγράψτε τα κύρια χαρακτηριστικά που πρέπει να έχει ένας αλγόριθμος σχεδίασης ευθειών. Ένας αλγόριθμος σχεδίασης ευθειών πρέπει να χαρακτηρίζεται από:. Ακρίβεια: στόχος είναι η επιλογή pxels που να βρίσκονται όσο γίνεται πιο κοντά.. στη μαθηματική πορεία της ευθείας. Ταχύτητα: η σχεδίαση πρέπει να γίνεται όσο το δυνατό ταχύτερα Καλό τελικό αποτέλεσμα: Τα pxels που επιλέγονται πρέπει να σχηματίζουν μια ευθεία το πάχος της οποίας να είναι όσο το δυνατό σταθερό και ανεξάρτητο από το μήκος και την κλίση της. Tο ελάχιστο σταθερό πάχος μιας ευθείας στην οθόνη είναι pxel και επιτυγχάνεται όταν η ευθεία που σχεδιάζεται είναι παράλληλη προς κάποιον άξονα ή έχει κλίση 45 ο. Ο αλγόριθμος DDA αποτελεί έναν αυξητικό αλγόριθμο; Δικαιολογήστε την απάντηση σας. Ο αλγόριθμος DDA ανήκει στην κατηγορία των αυξητικών αλγορίθμων καθώς ο υπολογισμός του pxel στο βήμα προκύπτει με βάση το pxel που υπολογίστηκε στο βήμα -.

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

Ερωτήσεις Στους αλγορίθμους σχεδίασης κύκλων, ποιο είναι το κριτήριο για την επιλογή του επόμενου pxel; Ελέγχουμε αν το σημείο που χαρακτηρίζει το τρέχον pxel (συνήθως η κάτω δεξιά γωνία του) βρίσκεται εντός ή εκτός του κύκλου. Έτσι, αν P(x,) το τρέχον pxel ελέγχουμε:. αν x + < R, οπότε το P βρίσκεται μέσα στον κύκλο και άρα θα πρέπει να επιλέξουμε το πάνω pxel.. αν x + > R, οπότε το P βρίσκεται έξω από τον κύκλο και άρα θα πρέπει να επιλέξουμε το κάτω pxel. Αν ένα σημείο ανήκει στον κύκλο, θα ανήκουν και τα επτά συμμετρικά του σημεία; x + = R Από την εξίσωση του κύκλου () προκύπτει πως αν το σημείο (x,) ανήκει στον κύκλο, τότε θα ανήκουν και τα επτά συμμετρικά του. Και αυτό γιατί αφού το (x,) ανήκει στον κύκλο, θα επαληθεύει την εξίσωση (). Την εξίσωση () όμως θα την επαληθεύουν και τα επτά συμμετρικά του σημεία, καθώς για καθένα από αυτά, υψώνουμε τις συντεταγμένες του στο τετράγωνο, οπότε παίρνουμε το ίδιο αποτέλεσμα. Έτσι, θα ανήκουν στον κύκλο και τα επτά συμμετρικά του αρχικού σημείου.

Ερωτήσεις Στον αλγόριθμο του Bresenham για την κατασκευή ενός κύκλου, η σχεδίαση του σε ένα μόνο οκταμόριο είναι αρκετή για την κατασκευή ολόκληρου του κύκλου; Αν ναι, γιατί; Για κάθε pxel του κύκλου που ανάβουμε στο οκταμόριο, ανάβουμε παράλληλα και τα επτά συμμετρικά του, καθώς θα ανήκουν και αυτά στον κύκλο, λόγω της συμμετρίας του κύκλου. Έτσι, έχοντας ανάψει όλα τα pxels του κύκλου σε αυτό το οκταμόριο, έχουμε ανάψει τελικά όλα τα pxels του κύκλου, που είναι και το ζητούμενο του αλγορίθμου. Ποιο χαρακτηριστικό της έλλειψης πρέπει να ληφθεί υπ όψη κατά το σχεδιασμό της με βάση τον αλγόριθμο του Bresenham; Θα πρέπει να λάβουμε υπ όψη ότι η έλλειψη έχει δύο κλίσεις. Όσο ισχύει πως b x a, η γωνία είναι μεγαλύτερη από 45 ο διαφορετικά είναι μικρότερη από 45 ο.

Ερωτήσεις Αν ένα σημείο ανήκει στην έλλειψη, ποια θα είναι τα συμμετρικά του σημεία που θα ανήκουν και αυτά στην έλλειψη; x / a + Από την εξίσωση της έλλειψης, συμπεραίνουμε πως αν ένα σημείο (x,) την επαληθεύει, τότε θα την επαληθεύουν και τα σημεία (-x,), (x,-) και (-x,-). Όμως αν το (x,) ανήκει στην έλλειψη, δεν ξέρουμε αν και το (,x) θα ανήκει καθώς όχι κατ ανάγκη ίσο με. x / a + / b / b = / a + x / b Στον αλγόριθμο του Bresenham για την κατασκευή μιας έλλειψης, η σχεδίαση της σε ένα μόνο οκταμόριο είναι αρκετή για την κατασκευή ολόκληρης της έλλειψης; Αν ναι, γιατί; Η σχεδίαση σε ένα μόνο οκταμόριο δεν είναι αρκετή. Απαιτείται σχεδίαση σε ένα τεταρτημόριο. Και αυτό γιατί θα πρέπει να ληφθούν υπ όψη και οι δύο κλίσεις της έλλειψης. Σε καθένα από τα δύο οκταμόρια, ανάβοντας ένα pxel, ανάβουν και τα 3 συμμετρικά του. Έτσι, μόνο όταν έχουμε ολοκληρώσει το σχεδιασμό και στα δύο οκταμόρια, θα έχουμε ολοκληρώσει το σχεδιασμό ολόκληρης της έλλειψης.