Γραφικά με Η/Υ Αποκοπή
Βασικές λειτουργίες απεικόνισης μετατροπή των φυσικών συντεταγμένων, ενός αντικειμένου, σε συντεταγμένες της συσκευής απεικόνισης (δημιουργία μετασχηματισμού απεικόνισης) αφαίρεση τμημάτων του αντικειμένου, τα οποία δεν πρέπει να απεικονιστούν διότι είτε τέμνονται είτε βρίσκονται έξω από τα όρια της περιοχής παρατήρησης ή της συσκευής απεικόνισης. 2/ 34
Συστήματα συντεταγμένων σύστημα φυσικών συντεταγμένων (σ.φ.σ) καρτεσιανό σύστημα στο οποίο αναφέρονται οι ακριβείς συντεταγμένες ενός αντικειμένου σύστημα συντεταγμένων συσκευής (σ.σ.σ) που αντιστοιχεί στην επιμέρους συσκευή που χρησιμοποιείται και σχετίζεται με την επιφάνειά της σύστημα κανονικοποιημένων συντεταγμένων συσκευής(σ.κ.σ), με επιφάνεια απεικόνισης ένα μοναδιαίο τετράγωνο (1x1) του οποίου η κάτω αριστερή ρή κορυφή είναι η αρχή του συστήματος 3/ 34
Παράθυρο (W) & περιοχή παρατήρησης (V) Για να καθορίζουμε ποιά μέρη ενός αντικειμένου θα εμφανιστούν στην πλεγματική οθόνη και πού,, επιλέγουμε δύο ορθογώνιες περιοχές: το παράθυρο (Window): μια ορθογώνια περιοχή του χώρου των φυσικών συντεταγμένων στο W και την περιοχή παρατήρησης ή τμήμα οθόνης (Viewport): μια ορθογώνια περιοχή του χώρου των κανονικοποιημένων συντεταγμένων συσκευής στο V 4/ 34
Απεικόνιση Μ Y w (X w max, Y w max ) '' P σ. φ. σ & P σ. σ. σ P '' = P M (X w, Y w ) W X w με Μ =V*W, όπου Μ W: σ.φ.σ σ.κ.σ V: σ.κ.σ σ.σ.σ Μ: σ.φ.σ σ.σ.σ Y v V (X v max, Y v max ) σύστημα φυσικών συντεταγμένων (σ.φ.σ) σύστημα κανονικοποιημένων συντεταγμένων (σ.κ.σ) σύστημα συντεταγμένων συσκευής (σ.σ.σ) σ σ) P (X v, Y v ) (X v, Y v ) X v 5/ 34
Απεικόνιση σημείου: από παράθυρο (W) σε περιοχή παρατήρησης (V) Η απεικόνιση ενός σημείου P(X w, Y w ) στο P (X v, Y v ) από το παράθυρο: {(X w, Y w ) & (X wmax, Y wmax )}, του σ.φ.σ, σ στην κανονικοποιημένη περιοχή παρατήρησης: (X v, Y v )& (X vmax, Y vmax )}, του σ.σ.σ, σ σ δίδεται από τη σχέση P =P*M, όπου Y w (X w max, Y w max ) P(X w, Y w ) (X w, Y w ) Y v (X v max, Y v max ) P (X v, Y v v) (X v, Y v X ) w X v Παράθυρο Κανονικοποιημένη περιοχή παρατήρησης στο σύστημα φυσικών συντεταγμένων στο σύστημα συντεταγμένων συσκευής 6/ 34
Υπολογισμός μετασχηματισμού απεικόνισης Υ T ( ) S s x, y ( s, s ) x s y T u, v M ( ) = ( x, y ) T ( x, y ) max (, ) P x y Παράθυρο στο φυσικό σύστημα συντεταγμένων 7/ 34 με u max u x max x & v max v s x = s y = y max y ( x, y )* S( s, s )* T ( u v ) max x y, Υ V V T ( x, y ) S ( ) s x, T s y ( u, v ) Χ M = T ( u, v ) ( u, v ) max max ( x, y ) P Χ U U Βήμα 1 Βήμα 2 Βήμα 3 ( x, y )* S( s, s )* T ( u v ) x y, Περιοχή παρατήρησης στο σύστημα συντεταγμένων συσκευής
Μετασχηματισμός απεικόνισης Μετασχηματισμός απεικόνισης Μ 0 0 s x + + = 1 ) ( ) ( 0 0 i i i i y y y s x x s s M + + 1 ) ( ) ( v w y v w x y y s x x s 8/ 34
Απεικόνισης σημείου (υπό μορφή πίνακα) [ x y 1] = [ x y 1] v v w w s x 0 0 0 sy 0 ( sx xw + xv ) ( sy yw + yv ) 1 όπου S x & S y σταθερές παραμόρφωσης / αλλαγής κλίμακας s x = x x x x vmax v wmax wi s y = y y y w y vmax v max w 9/ 34
Αποκοπή Οι αλγόριθμοι αποκοπής έχουν σχεδιαστεί έτσι ώστε να είναι αποτελεσματικοί στο να εντοπίζουν τα τμήματα μίας σκηνής ή ενός αντικειμένου σε συντεταγμένες προβολής που βρίσκονται εκτός του οπτικού πεδίου. Είναι ιδιαίτερα χρήσιμοι καθώς αποκόπτουν άχρηστα αντικείμενα (σημεία, ευθείες, πολύγωνα, κ.λ.π) από την οθόνη & αυξάνουν την αποτελεσματικότητα της διαδικασίας αναπαράστασης γραφικών,, μειώνοντας το υπολογιστικό κόστος των αντικειμένων που τελικά θα βρεθούν εκτός της οθόνης 10 / 34
Αποκοπή σημείου ως προς παράθυρο Ένα σημείο είναι εντός παραθύρου προβολής εάν: x x x y y y & max max 11 / 34
Αποκοπή ευθυγράμμων τμημάτων έλεγχος ορατότητας: των ευθυγράμμων τμημάτων, για να ελέγξουμε ποια από αυτά ανήκουν εξ ολοκλήρου εντός, ποια εκτός και ποια τέμνουν τα όρια του παράθυρου αποκοπής υπολογισμός των σημείων τομής: των ευθυγράμμων τμημάτων που τέμνουν μία ή περισσότερες από τις 4 διαχωριστικές ημιευθείες, (x=x,x=x max,y=y &y=y max ), που ορίζουν τα όρια του παραθύρου αποκοπής και Απόρριψη: των τμημάτων, των ευθειών, που τέμνουν τα όρια του παραθύρου ρ αποκοπής και βρίσκονται εκτός αυτών των ορίων 12 / 34
Έλεγχος ορατότητας Ορατό: Ολόκληρο τοευθύγραμμο τμήμα,, και φυσικάταάκρα του,, είναι εντός των ορίων του παραθύρου αποκοπής (Α) Μη ορατό: Ολόκληρο το ευθύγραμμο τμήμα, και φυσικά τα άκρα του, είναι εκτός των ορίων του παραθύρου αποκοπής (B) Ακαθόριστο: Τα ευθύγραμμα τμήματα που δεν ανήκουν σε καμία από τις προηγούμενες κατηγορίες. (Γ) y max Α Γ 13 / 34 Β Γ x max y x
Αλγόριθμος Gohen-Sutherland (έλεγχος ορατότητας) 1. Εκχωρείται ένας κωδικός, των 4-bits, σε κάθε μιααπό τις εννέα περιοχές του παράθυρου αποκοπής, όπως αυτές ορίζονται από τις διαχωριστικές ημιευθείες x=x x, x=x x max, y=y &y=y max, όπου οι περιοχές βρίσκονται: 1001 1000 1010 αν bit1 = 1 πάνω από την ευθεία Y=Y y max max αν bit2 = 1 κάτω από την ευθεία Y=Y 0001 0000 0010 αν bit3 = 1 δεξιά από την ευθεία X=X max αν bit4 = 1 αριστερά από την ευθεία X=X y 0101 0100 0110 x x max Παράθυρο αποκοπής 14 / 34
Αλγόριθμος Gohen-Sutherland (έλεγχος ορατότητας) 2. Εξετάζονται οι κωδικοί των περιοχών όπου βρίσκονται τα άκρα των ευθυγράμμων τμημάτων: 15 / 34 Ορατό: αν και οι δύο κωδικοί, των άκρων, είναι στην περιοχή (0000) Μη ορατό: αν το λογικό AND των δύο κωδικών δεν δίνει (0000) Ακαθόριστο: αν το λογικό AND δίνει (0000), αλλά κανένας κωδικός άκρου δεν είναι στην περιοχή (0000) Λογικό AND 0 AND 0 False 0 0 AND 1 False 0 1 AND 0 False 0 1 AND 1 False 1 1001 1000 1010 0001 0000 0010 0101 0100 0110 x x max y max y Παράθυρο αποκοπής
Παράδειγμα I Γραμμή Κωδικοί άκρων Λογικό AND Εμφάνιση 1 1000 1001 1000 Μη ορατό 2 0101 0100 0100 Μη ορατό 3 0000 0000 0000 Ορατό 4 1001 0110 0000 Ακαθόριστο 5 0001 1000 0000 Ακαθόριστο 1001 1000 1010 y max 0001 0000 0010 16 / 34 0101 0100 0110 x y Παράθυρο αποκοπής x max
Υπολογισμός σημείων τομής Η τομή βρίσκεται προσδιορίζοντας: τις πλευρές τουπαραθύρου αποκοπής και τις παραμετρικές εξισώσεις της ευθείας 17 / 34
Υπολογισμός σημείων τομής (καθορισμός πλευρών) Η κάθε πλευρά του παραθύρου αποκοπής, που τέμνει την ευθεία, βρίσκεται εξετάζοντας τον κωδικό του αντίστοιχου άκρου, όπου αν: 1001 1000 1010 bit1 = 1 τομή με Y = Ymax max bit2 = 1 τομή μεy=y bit3 = 1 τομή μεx=xmax bit4 = 1 τομή μεx=x 0001 0000 0010 0101 0100 0110 x x max y y Παράθυρο ρ αποκοπής 18 / 34
Υπολογισμός σημείων τομής (παραμετρικές εξισώσεις) για κάθε ευθύγραμμο τμήμα ΑΒ, όπου A(x 1,y 1 ) και B(x 2,y 2 ), οι παραμετρικές εξισώσεις είναι: x=x 1 +t(x 2 -x 1 ) y=y 1 +t(y 2 -y 1 ), όπου 0 t 1 19 / 34
Παράδειγμα ΙΙ ίδονται τα όρια του ορθογωνίου παραθύρου: x = 2, x max = 8, y = 2, y max = 8 Ελέγξτε την ορατότητα των ευθυγράμμων τμημάτων ΑΒ & Γ όπου Α(3, 10), Β(6, 12), Γ(4, 1) & (10, 6) χρησιμοποιώντας τον αλγόριθμο Gohen-Sutherland και προσδιορίστε τα σημεία τομής, αν είναι απαραίτητο, απορρίπτοντας τα τμήματα των ευθειών που βρίσκονται εκτός τουπαραθύρου αποκοπής. 20 / 34
Παράδειγμα ΙΙ Έλεγχος ορατότητας: ΑΒ Συντεταγμένες Κωδικός Α (3, 10) 1000 Β (6, 12) 1000 Μη ορατό μη ορατή Λογικό AND 1000 ΓΔ Συντεταγμένες Κωδικός Γ (4, 1) 0100 Δ (10, 6) 0010 Μερικώς ακαθόριστη ορατό Λογικό AND 0000 21 / 34
Παράδειγμα ΙΙ Προσδιορισμός σημείων τομής: Αποκοπή της γραμμής Γ. Το άκρο Γέχει κωδικό 0100. Επομένως bit 2 0. Αρα η τομή της Γ θα πρέπει να βρεθεί με την πλευρά (όριο) του παραθύρου αποκοπής Y = Y = 2. Οι παραμετρικές εξισώσεις της γραμμής Γ είναι: X=4+t(10-4) =4+6t (1) Y = 1+t(6-1) = 1+5t (2) 22 / 34
Παράδειγμα ΙΙ Αντικαθιστώντας Y=Y=2στην εξίσωση (2) η τιμή του t γίνεται t=1/5 =0,2 και X = 4+1/5*(6) = 5,2 Άρα: σημείο τομής είναι το I1 (5.2, 2) 23 / 34
Παράδειγμα ΙΙ Το άκρο έχει κωδικό 0010. Πρέπει να υπολογίσουμε για bit 3 0 την τομή με τοόριο X= Xmax = 8. Αντικαθιστώντας X=8στην (1) έχουμε 8 =4+6tδηλαδή t = 4/6 = 0.667 Και Y = 1+5(2/3) = (3+10)/3 = 4.33 Άρα: σημείο τομής είναι το Ι2(8, 4.33) 24 / 34
Παράδειγμα ΙΙ Αφού τα Ι 1 και Ι 2 βρίσκονται στα όρια του παραθύρου με κωδικούς των άκρων 0000 και τα δύο, το ευθύγραμμο τμήμα Ι 1 Ι 2 είναι ορατό ανάμεσα στα δύο σημεία τομής. 25 / 34
Υποδιαίρεση μεσαίων σημείων Εναλλακτική μέθοδος για την εύρεση του σημείου τομής του ευθύγραμμου τμήματος και των ορίων του παραθύρου: το ευθύγραμμο τμήμα χωρίζεται στο μέσον του τα δύο τμήματα που προκύπτουν εξετάζονται για ορατότητα και πιθανή αποκοπή. ο αν δεν είναι πλήρως ορατό ή μη ορατό, το ευθύγραμμο τμήμα διχοτομείται πάλι και η διαδικασία συνεχίζεται μέχρι η τομή με το όριο του παραθύρου να βρεθεί μέσα στα καθορισμένα πλαίσια ανοχής. 26 / 34
Υποδιαίρεση μεσαίων σημείων Αν τα άκρα του ευθύγραμμου τμήματος P1P2 είναι P1(x1, y1) και P2(x2,y2), το μέσο Pμ(xμ,yμ) μ,yμ) υπολογίζεται από τις παρακάτω σχέσεις xμ =(x1+x2)/2 yμ =(y1+y2)/2 27 / 34
Παράδειγμα ΙΙΙ ίδεται ένα παράθυρο με συντεταγμένες χαμηλότερης αριστερής ρής γωνίας (2, 2) και υψηλότερης δεξιάς γωνίας (8, 6). Ένα ευθύγραμμο τμήμα ΑΒ με Α(4, 3) & Β(10, 5) πρέπει να αποκοπεί ως προς το παράθυρο αυτό. Βρείτε τους κωδικούς των άκρων της γραμμής και το σημείο τομής με βάση την λογική AND, χρησιμοποιώντας τον αλγόριθμο υποδιαίρεσης μεσαίων σημείων. 28 / 34
Παράδειγμα ΙΙΙ Έλεγχος ορατότητας: ΑΒ Συντεταγμένες Κωδικός Α (4, 3) 0000 Β (10, 5) 0010 Ακαθόριστο Λογικό AND 0000 29 / 34
Παράδειγμα ΙΙΙ Προσδιορισμός σημείων τομής: Αποκοπή του ευθύγραμμου τμήματος ΑΒ. Μέσο Νέο τμήμα 1 (7, 4) (7, 4) (10, 5) 2 (8.5, 4.5) (7, 4) (8.5, 4.5) 3 (7.75, 75 4.25) (7.75, 75 4.25) (8.5, 4.5) 4 (8.13, 4.38) (7.75, 4.25) (8.13, 4.38) 5 (7.94, 4.31) (7.94, 4.31) (8.13, 4.38) 6 (8.03, 4.34) (7.94, 4.31) (8.03, 4.34) 7 (7.99, 4.33) 30 / 34
Παράδειγμα ΙΙΙ Εφόσον η συντεταγμένη x(7.99) στο όριο του παραθύρου, ρ, είναι περίπου ίση με 8 η τομή μπορεί να προσεγγίσει στο (8, 4.33). 31 / 34
Αλγόριθμος αποκοπής Liang Brasky (1/3) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 32 / 34
Αλγόριθμος αποκοπής Liang Brasky (2/3) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 33 / 34
Αλγόριθμος αποκοπής Liang Brasky (3/3) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 34 / 34
Αλγόριθμος αποκοπής πολυγώνων Sutherland Hodgman (1/4) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 35 / 34
Αλγόριθμος αποκοπής πολυγώνων Sutherland Hodgman (2/4) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 36 / 34
Αλγόριθμος αποκοπής πολυγώνων Sutherland Hodgman (3/4) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 37 / 34
Αλγόριθμος αποκοπής πολυγώνων Sutherland Hodgman (4/4) Εφόσον η συντεταγμένη x στο όριο του παραθύρου, είναι περίπου ίση με 8 (7.99), ητομή μπορεί να προσεγγίσει στο (8, 4.33). 38 / 34
Σύγκριση των μεθόδων αποκοπής ευθείας Το μέρος της διαδικασίας αποκοπής που χρειάζεται περισσότερο υπολογιστικό χρόνο είναι ο υπολογισμός της τομής με ταόρια του παραθύρου. ρ Ο αλγόριθμος Gohen-Sutherland μειώνει αυτούς τους υπολογισμούς, απορρίπτοντας πρώτα τις γραμμές που μπορεί να είναι ασήμαντα δεκτές ή απορριπτέες. Υποδιαίρεση μεσαίων σημείων: ο υπολογισμός της τομής δεν γίνεται με λύση εξίσωσης αλλά με μια μέθοδο προσέγγισης του μέσου, που είναι κατάλληλη για υλοποίηση με hardware (πολύ γρήγορη και αποτελεσματική). 39 / 34
Επανάληψη ' ' [ x y 1] = [ x y 1] sx 0 0 0 sy 0 ( s x x w + x v ) ( s y y w + y v ) 1 x v max v 0 sx = xwmax xw s y = x y y y y vmax v wmax w Ορατό: αν και οι δύο κωδικοί, των άκρων, είναι αν bit1 = 1 πάνω Y=Y max στην περιοχή (0000) αν bit2 = 1 κάτω Y=Y Μη ορατό: αν bit3 = 1 δεξιά X=X max αν το λογικό AND των δύο κωδικών δεν αν bit4 = 1 αριστ. X = X δίνει (0000) Ακαθόριστο: αν το λογικό AND δίνει (0000), αλλά κανένας κωδικός άκρου δεν είναι στην περιοχή (0000) αν και οι δύο κωδικοί των άκρων είναι 1001 1000 1010 Y= Y max 0001 0000 0010 Y= Y 0101 0100 0110 X= X X= X max για κάθε ευθύγραμμο τμήμα ΑΒ, A(x 1,y 1 ) και B(x 2,y 2 ), οι παραμετρικές εξισώσεις είναι: x=x 1 +t(x 2 -x 1 )&y=y 1 +t(y 2 -y 1 ), 0 t 1 40 / 34
Ασκήσεις Προσδιορίστε το μετασχηματισμό απεικόνισης ενός παραθύρου με κάτω αριστερή γωνία (1, 1) και πάνω δεξιά (3, 5) 1. σε μια κανονικοποιημένη περιοχή παρατήρησης και 2. σε μια περιοχή παρατήρησης με κάτω αριστερή γωνία (0, 0) και πάνω δεξιά (1/2, 1/2) Προσδιορίστε το μετασχηματισμό απεικόνισης που χρησιμοποιεί το ορθογώνιο Α(1, (, 1), Β(5, (, 3), Γ(4, (, 5), και (0, 3) σαν παράθυρο σε μια κανονικοποιημένη περιοχή παρατήρησης 41 / 34