Γραφικά με Η/Υ Αλγόριθμοι κύκλου & έλλειψης
Τεχνική μέσου σημείου (μέσο έ σημείο Q) NE pixel Q Μέσο σημείο M E pixel P = ( x p, y p ) x x + 1 = p Προηγούμενο pixel Επιλογές για το Επιλογές για το τρέχων pixel επόμενο pixel 2/ 59
Τεχνική μέσου σημείου (συνάρτηση ευθείας) f(x m,y m )=0όταν το σημείο M είναι πάνω στην ευθεία f(x m, y m )<0όταν το σημείο M είναι πάνω από την ευθεία f(x m,y m )>0όταν το σημείο M είναι κάτω από την ευθεία η απόφασή μας θα βασίζεται στην τιμή της συνάρτησης στο μέσο M στο (x p + 1, y p + ½) 3/ 59
Τεχνική μέσου σημείου (μεταβλητή απόφασης) Μεταβλητή απόφασης ρ κ : Χρειαζόμαστε μόνο το f(x p +1,y p +½)γιαναδούμεπουβρίσκεταιη ευθεία, και έπειτα να επιλέξουμε το πλησιέστερο pixel NE pixel ρ κ = f(x p +1,y p +½) - αν ρ κ > 0 επιλέγουμε το pixel NE Q - αν ρ κ <0επιλέγουμε το pixel E - αν ρ κ = 0 επιλέγουμε ένα από τα δυο E pixel M 4/ 59
Κύκλος (-x, y) (x, y) (-y, x) (y, x) (-y, -x) R 2 (y, -x) (-x, -y) (x, -y) 5/ 59
Κύκλος Καρτεσιανές συντεταγμένες: Η εξίσωση του κύκλου με κέντρο (x c,y c )=(0,0)και ακτίνα r είναι: (χ χ 2 +(y 2 = 2 c ) y c ) r (0,0) r y = ± r 2 x 2 6/ 59
Κύκλος Κύκλος (αλγόριθμος εξίσωσης) Κύκλος με κέντρο (0, 0) & r = 20 y = ± r 2 x 2 (0, 20) 7/ 59 (0, 0) (20, 0)
Κύκλος (προβλήματα) υπερβολική ποσότητα υπολογισμών η απόσταση μεταξύ των θέσεων των ενεργοποιημένων pixels δεν είναι ομοιόμορφη (-x, y) (x, y) (-y, x) (y, x) (-y, -x) R 2 (y, -x) (-x, -y) (x, -y) 8/ 59
Κύκλος Πολικές συντεταγμένες: Ηεξίσωσητουκύκλουμεκέντρο(x c,y c )=(0,0)και ακτίνα r και γωνία θ είναι: χ = χ c + r cosθ y=y c +rsinθ (0,0) θ r με βήμα 1/r 9/ 59
Κύκλος (προβλήματα) (-x, y) (x, y)... αλλά πάλι πολλοί υπολογισμοί. οικονομία: λόγω 8-πλής συμμετρίας, δημιουργούμε ένα ογδοημόριο και προκύπτουν τα υπόλοιπα. (-y, x) (-y, -x) r 2 (y, x) (y, -x) (-x, -y) (x, -y) 10 / 59
Τεχνική πραγματικών αποστάσεων d 1 d 2 11 / 59
Τεχνική μέσου σημείου (συνάρτηση ά κύκλου) ) συνάρτηση κύκλου: f(x, y) =x 2 +y 2 -r 2 =0 η σχετική θέση οποιουδήποτε pixel (x, y) μπορεί να προσδιοριστεί από το πρόσημο της συνάρτησης κύκλου: <0,αν το (x, y) ϵ μέσα στον κύκλο f(x, y) = = 0, αν το (x, y) ϵ στην περιφέρεια >0,αν το (x, y) ϵ έξω από τον κύκλο 12 / 59
Τεχνική μέσου σημείου (κύκλος, μεταβλητή απόφασης, 2 ο ογδοημόριο) η συνάρτηση κύκλου στο μέσο σημείο Μ(x κ +1, y κ - ½) είναι: ρ κ =f( f(x κ +1, y κ -1/2)=(x κ +1) 2 +(y κ -1/2) 2 -r 2 (μεταβλητή απόφασης) αν ρ κ <0,, τότε το μέσο σημείο Μ(x( κ +1, y κ -½) βρίσκεται μέσα στον κύκλο και το pixel NE που βρίσκεται στη γραμμή σάρωσης y κ βρίσκεται πιο κοντά στην περιφέρεια του κύκλου. διαφορετικά δαφορε το μέσο σημείο βρίσκεται στην ση περιφέρεια ή έξω από τον κύκλο και επιλέγουμε το pixel που είναι στην γραμμή σάρωσης y κ -1. y = P = ( x k, yk y k Q ) ΝE pixel γραμμή σάρωσης y κ y = y k 1 M Epixel M E M SE γραμμή σάρωσης y κ -1 13 / 59 x = x k x = x k +1
Επόμενη & αρχική μεταβλητή απόφασης (2 ο ογδοημόριο) επόμενη μεταβλητή απόφασης: αν ρ κ < 0 τότε ρ κ+1 = ρ κ + 2x κ+1 + 1, και αν ρ κ 0 τότε ρ κ+1 = ρ κ + 2x κ+1-2y κ + 1, αρχική μεταβλητή απόφασης: ρ 0 =1 r (για r ακέραιο) 14 / 59
Περιγραφή Aλγόριθμου Bresenham (κύκλος) (2 ο ογδοημόριο) Για να σχεδιάσουμε κύκλο με κέντρο (0, 0) και ακτίνα r: 1. Εισάγουμε την ακτίνα r και ενεργοποιούμε το πρώτο σημείο (0, r) 2. Υπολογίζουμε την αρχική μεταβλητή απόφασης: ρ 0 =1-r 15 / 59
Περιγραφή Aλγόριθμου Bresenham (κύκλος) (2 ο ογδοημόριο) 3. Για κάθε x κ ξεκινώντας από κ = 0: Αν ρ κ <0, το επόμενο σημείο σχεδίασης είναι (x κ+1,y κ ) και ρ κ+1 = ρ κ +2x κ+1 +1 Αν ρ κ 0 το επόμενο σημείο σχεδίασης είναι (x κ+1,y κ+1 ) και ρ κ+1 = ρ κ +2x κ+1 +1 2y κ+1 όπου 2x κ+1 =2x κ +2 2y κ+1 =2y κ -2 16 / 59
Περιγραφή Aλγόριθμου ό θ Bresenham (κύκλος) ύ λ (2 ο ογδοημόριο) 4. Προσδιορίζουμε τα συμμετρικά σημεία στα υπόλοιπα επτά όγδοα 5. Επαναλαμβάνουμε τα «βήματα 3-5» μέχρι x y (-y, x) (-y, -x) (-x, y) (-x, -y) (x, y) r 2 (x, -y) (y, x) (y, -x) 17 / 59
Κύκλος 18 / 59
Έλλειψη Έλλειψη ονομάζεται ο γεωμετρικός τόπος των σημείων του επιπέδου των οποίων το άθροισμα των αποστάσεων από τα δύο σταθερά σημεία E1,E2 είναι σταθερό και ισούται με 2α > γ. όπου E1, E2 είναι δύο σημεία στο ευκλείδειο επίπεδο με απόσταση 2γ μεταξύ τους και α > γ >0 19 / 59
Έλλειψη Καρτεσιανές συντεταγμένες: η εξίσωση της έλλειψης με ημιάξονες α (r x )&β (r y ) είναι: (-χ, ψ) (χ, ψ) (x-x c ) 2 (y-y c ) 2 + =1 α 2 β Περ. 1 Περ. 2 2 (-χ, -ψ) (χ, -ψ) 20 / 59
Έλλειψη Πολικές συντεταγμένες: ηεξίσωσητηςέλλειψηςμε ημιάξονες α (r x ) & β (r y ) είναι: Περ. 1 (-χ, ψ) (χ, ψ) Περ. 2 x=x c + acosθ y=y c + βsinθ (-χ, -ψ) (χ, -ψ) 21 / 59
Τεχνική μέσου σημείου (έλλειψη) (1 0 τεταρτημόριο: περιοχές 1 και 2) οικονομία: λόγω 4-πλής συμμετρίας, δημιουργούμε ένα τεταρτημόριο ρημ ρ και προκύπτουν τα υπόλοιπα. (-χ, ψ) (χ, ψ) Περ. 1 Περ. 2 (-χ, -ψ) (χ, -ψ) 22 / 59
Τεχνική μέσου σημείου (έλλειψη) (1 0 τεταρτημόριο: περιοχές 1 και 2) συνάρτηση της έλλειψης: f(x, y) = α 2 x 2 + β 2 y 2 - α 2 β 2 η σχετική θέση οποιουδήποτε σημείου (x, y) μπορεί να προσδιοριστεί από το πρόσημο της συνάρτησης της έλλειψης: <0,αν το (x, y) ϵ στο εσωτερικό f(x, y) = = 0, αν το (x, y) ϵ στην περιφέρεια >0,αν το (x, y) ϵ στο εξωτερικό 23 / 59
Τεχνική μέσου σημείου (έλλειψη) (1 0 τεταρτημόριο: περιοχές 1 και 2) Ξεκινώντας από το (0, β) παίρνουμε μοναδιαία βήματα κατά τη διεύθυνση των x μέχρι να φτάσουμε στο σύνορο των περιοχών 1 και 2. Κατόπιν αλλάζουμε σε μοναδιαία βήματα κατά των άξονα y για το υπόλοιπο της καμπύλης στο πρώτο τεταρτημόριο. Σε κάθε βήμα πρέπει να ελέγχουμε την τιμή της κλίσης της καμπύλης. Η κλίση της έλλειψης είναι: dy/ dχ =-(2α 2 x/2β 2 y) Στο σύνορο μεταξύ των περιοχών: d/d dy/ dχ =-1 και 2α 2 x=2β 2 y Επομένως ξεφεύγουμε από την περιοχή 1 όταν: 2α 2 x 2β 2 y (-χ, ψ) (χ, ψ) Περ. 1 Περ. 2 24 / 59 (-χ, -ψ) (χ, -ψ)
Μεταβλητή απόφασης (περιοχή 1) Είναι η συνάρτηση έλλειψης υπολογισμένη για το μέσο σημείο: ρ1 = 2 2 2-2 - 2 2 κ β (x κ +1) + α ( y κ 1/2) α β Αν ρ1 κ <0, τότε το μέσο σημείο βρίσκεται μέσα στην έλλειψη και το pixel που βρίσκεται στη γραμμή σάρωσης y κ βρίσκεται πιο κοντά στην περιφέρεια της έλλειψης. ιαφορετικά το μέσο σημείο βρίσκεται πάνω ή έξω από την έλλειψη και επιλέγουμε το pixel που είναι στην γραμμή σάρωσης y κ -1. 25 / 59
Επόμενη μεταβλητή απόφασης (περιοχή 1) επόμενη μεταβλητή: ρ1 κ+1 = ρ1 κ +2β 2 x κ+1 + β 2, αν ρ1 κ <0 και ρ1 κ+1 = ρ1 κ +2β 2 x κ+1 + β 2-2α 2 y κ+1, αν ρ1 κ 0 αρχική μεταβλητή : ρ1 0 = β 2- α 2 β +¼α 2 26 / 59
Μεταβλητή απόφασης (περιοχή 2) Συνάρτηση έλλειψης υπολογισμένη για το μέσο σημείο: ρ2 κ = β 2 (x κ +1/2) 2 + α 2 (y κ -1) 2 - α 2 β 2 Αν ρ2 κ >0, τότε το μέσο σημείο βρίσκεται έξω από την έλλειψη και επιλέγουμε το στοιχείο εικόνας θέση x κ. γ μ χ ς η κ ιαφορετικά το μέσο σημείο βρίσκεται πάνω ή έξω από την έλλειψη και επιλέγουμε το στοιχείο εικόνας στη θέση x κ + 1. 27 / 59
Μεταβλητή απόφασης (περιοχή 2) επόμενη μεταβλητή: ρ2 κ+1 = ρ2 κ +2α 2 y κ+1 +a 2, αν ρ2 κ >0 και ρ2 κ+1 = ρ2 κ +2β 2 x κ+1-2α 2 y κ+1 +a 2, αν ρ2 κ 0 αρχική μεταβλητή : ρ2 0 =β 2 (x 0 +1/2) 2 +a 2 (y 0-1) 2 -α 2 β 2 28 / 59
Περιγραφή αλγόριθμου Bresenham (έλλειψη) (περιοχή 1) Για να σχεδιάσουμε έλλειψη με κέντρο (0, 0) 1. Εισάγουμε τις παραμέτρους εισόδου α και β και ενεργοποιούμε τοπρώτο σημείο (x 0,y 0 )=(0,β). 2. Υπολογίζουμε την αρχική τιμή της παραμέτρου απόφασης στην περιοχή 1: ρ1 0 = β 2 - α 2 β + α 2 /4 29 / 59
Περιγραφή αλγόριθμου Bresenham (έλλειψη) (περιοχή 1) 3. Για κάθε x κ, ξεκινώντας από κ =0: Αν ρ1 κ <0, ενεργοποιούμε το (x κ +1, y κ ) και ρ1 κ+1 = ρ1 κ + 2ββ 2 x + 2 κ+1 β Αλλιώς, ενεργοποιούμε το (x κ +1, y κ -1) και ρ1 κ+1 = ρ1 κ + 2β 2 x κ+1 2a 2 y κ+1 + β 2 όπου 2β 2 x κ+1 =2β 2 x κ +2β 2 & y κ+1 y κ 2a 2 y κ+1 =2a 2 y κ 2a 2 30 / 59
Περιγραφή αλγόριθμου Bresenham (έλλειψη) (περιοχή 2) 4. Επαναλαμβάνουμε τα βήματα της περιοχής 1 έως ότου 2ββ 2 χ 2α 2 κ+1 y κ+1 οπότε μεταβαίνουμε μ στην περιοχή 2 5. Ενεργοποιούμε το τελευταίο σημείο (x κ+1, y κ -1) που υπολογίστηκε στην περιοχή 1 και υπολογίζουμε την αρχική τιμή της παραμέτρου απόφασης στην περιοχή 2: ρ2 0 = β 2 (x κ+1 +½) 2 + α 2 (y κ+1 1) 2 - α 2 β 2 31 / 59
Περιγραφή αλγόριθμου Bresenham (έλλειψη) (περιοχή 2) 6. Για κάθε y κ της περιοχής 2, ξεκινώντας από κ=0: Αν ρ2 κ >0, ενεργοποιούμε το (x κ,y κ -1) και ρ2 = ρ2-2α 2 + α 2 κ+1 κ y κ+1 Αλλιώς, ενεργοποιούμε το (x κ+1,y κ -1) και ρ2 κ+1 = ρ2 κ +2β 2 x κ+1-2β 2 y κ+1 + α 2 7. Επαναλαμβάνουμε το βήμα 6 μέχρι (x κ+1,y κ-1 )=(α,0) 8. Καθορίζουμε τα συμμετρικά σημεία στα υπόλοιπα τρία τεταρτημόρια. 9. Μετακινούμε κάθε υπολογισμένη θέση στοιχείου εικόνας (x, y) πάνω στην έλλειψη με κέντρο (x c, y c ) και σχεδιάζουμε τις τιμές των συντεταγμένων: x=x+x c,y=y+y c. 32 / 59