Αλγόριθμος των Cohen-Sutherland Αποκοπή ευθυγράμμων τμημάτων Χαρακτηριστικά (Attrbutes LEFT : αριστερά της ευθείας LEFT RIGHT: δεξιά της ευθείας RIGHT ΤΟΡ : άνω της ευθείας TO BOTTO: κάτω της ευθείας BOTTO ATTR( : Το σύνολο των χαρακτηριστικών του σημείου Στο σχήμα.5 τα σημεία, έχουν τα εξής attrbutes : ATTR( = ATTR ( TO ATTR( = ATTR ATTR ( ( Το τμήμα είναι εμφανές εάν ATTR ( ATTR ( Το τμήμα είναι πλήρως μη εμφανές εάν ATTR ( ATTR ( Όλες οι άλλες περιπτώσεις οδηγούν σε πιθανά επιμέρους εμφανή ευθύγραμμα τμήματα. Αλγόριθμος Υπολογισμός ATTR (, ATTR ( f ATTR ( ATTR ( Αφανές το ut whle R, L, T, B ATTR ( ATTR ( := μέσο του Υπολογισμός ATTR(
f R ή Τ ATTR( : else f L ή B ATTR( : else f, πιθανώς εμφανή επανέλαβε τον αλγόριθμο για τα, else f εμφανές επανέλαβε για else f εμφανές επανέλαβε για end Εφαρμογή: Δίνεται το παράθυρο Να αποκοπεί ως προς αυτό το ευθύγραμμο τμήμα εφαρμόζοντας τον αλγόριθμο των Cohen-Sutherland ATTR ( L ATTR ( T ATTR ( ATTR ( πιθανό επιμέρους εμφανές ευθύγραμμο τμήμα. : μέσο του ATTR (, έχουν πιθανά επιμέρους εμφανή ευθύγραμμα τμήματα. Επανέλαβε τον αλγόριθμο για τα, Ευθύγραμμο Τμήμα : μέσο του ATTR ( ATTR ( Εκτύπωσε το και επανέλαβε για το Ευθύγραμμο Τμήμα : μέσο του ATTR ( ATTR ( Εκτύπωσε το και επανέλαβε για το
Σχόλιο: Μπορούν να υπολογίζονται και τα σημεία τομής των προς αποκοπή ευθειών με τις πλευρές του παράθυρου ως εξής: Ευθεία με άκρα (, ( Τομή με κάθετη πλευρά m(, wmnor w Σημείο τομής m Τομή με οριζόντια πλευρά m (Πιο πολλές πράξεις (πραγματικές wmn or w Εάν αντί για σημεία τομής χρησιμοποιούμε τον αλγόριθμο του μέσου σημείου τότε οι συντεταγμένες του μέσου υπολογίζονται από m m
Αλγόριθμος Lang-Barsk Θέτουμε το σε παραμετρική μορφή: (, ( t(, t [0,] = + Δ t = + Δ t με και Για t [ 0,] ευθύγραμμο τμήμα και για t [, ] ευθεία των δύο σημείων και Με δοσμένο παράθυρο : mn, mn και εάν το βρίσκεται μέσα στο παράθυρο έχουμε : mn t, t, mn t t ή αλλιώς: t t mn,, t t Σε κοινό τύπο της μορφής t, ( έχουμε:,,,, mn mn mn Οι ακμές του ορθογώνιου παράθυρου προεκτεινόμενες χωρίζουν το εκάστοτε επίπεδο σε δύο ημιεπίπεδα. Κάθε ημιεπίπεδο στο οποίο βρίσκεται το παράθυρο θεωρείτε ορατό. Τότε το παράθυρο προκύπτει σαν τομή των τεσσάρων ορατών ημιεπιπέδων. Οι παραπάνω τέσσερεις ανισότητες καθορίζουν ανά μία και ένα τέτοιο ορατό ημιεπίπεδο.
Από γεωμετρική άποψη ο αλγόριθμος επεξεργάζεται την ευθεία που καθορίζεται από τα σημεία και. Κάθε ανισότητα (από τις παραπάνω παρέχει για την ευθεία αυτή την περιοχή τιμών του t, η οποία παριστά το ορατό τμήμα της ευθείας αναφορικά με την αντίστοιχη ακμή (ευθεία του παράθυρου. Για 0 το σημείο τομής της ευθείας με την ακμή (του παράθυρου έχει τιμή t, ( και το πρόσημο του καθορίζει σε πια πλευρά της ακμής του παράθυρου βρίσκεται το σημείο. 0 στην ορατή περιοχή 0 εκτός ορατής περιοχής 0 η ευθεία είναι παράλληλη προς την -ακμή όπου =,,, αντίστοιχα αριστερά, δεξιά, κάτω και πάνω. Εάν 0 τότε η προσανατολισμένη ευθεία περνάει από την μη ορατή στην ορατή περιοχή ενώ για 0 εγκαταλείπει την ορατή περιοχή. Ο αλγόριθμος υπολογίζει για κάθε γραμμή τις τιμές των παραμέτρων t και t οι οποίες καθορίζουν το τμήμα της ευθείας που βρίσκεται στο εσωτερικό του παραθύρου, με τις εξισώσεις: Υπολογισμός Παραμέτρων t και t t t mn : : 0, ( 0, ( 0 Προτερήματα Αλγόριθμου Lang-Barsk Μειώνει σημαντικά την απαιτούμενη υπολογιστική δουλειά. Για κάθε υπολογισμό καινούριων τιμών για τα t και t απαιτείται μόνο μια διαίρεση και τα σημεία τομής υπολογίζονται μόνο μια φορά. Παράδειγμα
Δίνεται το ( 0.5,0.5, (,. Να αποκοπεί ως προς το παράθυρο με χρήση της τεχνικής Lang-Barsk. mn mn. 5. 5 το περνάει από τη μη ορατή περιοχή που καθορίζεται από την ακμή ( στην ορατή περιοχή. 0. 5 εκτός περιοχής. 5 το περνάει από τη μη ορατή περιοχή που καθορίζεται από την ακμή ( στην ορατή περιοχή.. 5 εντός ορατής (που καθορίζεται από την ακμή (. 5 το περνάει από τη μη ορατή περιοχή που καθορίζεται από την ακμή ( στην ορατή περιοχή. 0. 5 εκτός περιοχής. 5 το περνάει από τη μη ορατή περιοχή που καθορίζεται από την ακμή ( στην ορατή περιοχή.. 5 εντός ορατής (που καθορίζεται από την ακμή ( Καθορισμός των σημείων τομής και παραμέτρων t και t t, : 0, ( 0 0. 0
Επειδή t t υπολογίζουμε τα άκρα του ορατού τμήματος 0.5 ' t 0.5.5.5 ' ' t '' t 0.5.5 '' '' t 0.5.5 Το Ρ Ρ είναι η αποκοπή του