Αλγόριθµοι Παράστασης Βασικών Σχηµάτων Προσέγγιση µαθηµατικών σχηµάτων από διακριτά pls: Ευθύγραµµο τµήµα, κύκλος, κωνικές τοµές, πολύγωνο. S/W ή H/W. Θέσεις αντικειµένων και φωτεινών πηγών Θέση παρατηρητή 3 Μαθηµατικά Μοντέλα ΣΣΑ 3 Μετασχ/σµοί Μοντέλου ΠΣΣ (WCS) 3 Μετασχ/σµός Παρατήρησης ΣΣΠ (ECS) Αποµάκρυνση Πίσω Επιφανειών 3 Αποκοπή Είσοδοι (για κάθε καρέ) Παράσταση Στην Οθόνη: Σάρωση Αντιταύτιση Φωτισµός Υφή Απόκρυψη Γραµµών/ Επιφανειών D ΣΣΟ (SCS) Προβολή. Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ευθύγραµµο Τµήµα: Αλγόριθµος Κριτήρια καλού αλγόριθµου ευθύγραµµου τµήµατος: Σταθερό πάχος ανεξάρτητο κλίσης, όχι κενά (συνεκτική). Pls όσο το δυνατόν πλησιέστερα στη µαθηµατική πορεία της. Ταχύτητα. Εστω ευθύγραµµο τµήµα µεταξύ P (, ) και P n ( n, n ) ου οκταµορίου: Για κάθε σηµείο P(, ) του ευθύγραµµου τµήµατος ισχύει: n n n s µε s και ln(,,n,n,colour) nt,,n,n,colour; /*colour η τιµή του χρώµατος του ευθύγραµµου τµήµατος*/ {flot s,,; nt ; s(n-)/(n-); (*n-n*)/(n-); for (;<n;) {s*; stpl(,roun(),colour); n. n Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ευθύγραµµο Τµήµα: Αλγόριθµος Πολλαπλασιασµός µέσα στο βρόχο µπορεί να αποφευχθεί: Αντικαθίσταται από πρόσθεση αφού ισχύει: s s s s ln (,,n,n,colour) nt,,n,n,colour; {flot s,; nt ; s(n-)/(n-); ; for (;<n;) {stpl(,roun(),colour); s;.3 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ευθύγραµµο Τµήµα: Αλγόριθµος 3 Στρογγύλευση () µέσα στο βρόχο µπορεί να αποφευχθεί: ιαχωρισµός σε ακέραιο () και δεκαδικό (rror) µέρος. rror είναι η απόσταση του pl (, ) από ιδεατή ευθεία: ln3 (,,n,n,colour) nt,,n,n,colour; {flot s,rror; nt,; s(n-)/(n-); ; rror0; for (;<n;) {stpl(,,colour); rrorrrors; f (rror>0.5){; rror--.4 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ευθύγραµµο Τµήµα: Αλγόριθµος 4 (Brsnhm) Αντικατάσταση πραγµατικών µεταβλητών από ακέραιες µε κατάλληλη κλιµάκωση s, rror&συνθήκης επιλογής: πολλαπλασιάζουµε µε n -, s, rror ακέραιο. συνθήκη rror / rror / rror 0 & αρχική αφαίρεση / από rror ( / µε ολίσθηση). ln4 (,,n,n,colour) nt,,n,n,colour; {nt rror,,,,; n-; n-; rror-/; ; for (; <n; ) {stpl(,,colour); rrorrror; f (rror>0){; rrorrror-.5 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ευθύγραµµο Τµήµα: Αλγόριθµος Brsnhm Παραπάνω λειτουργεί µόνο στο ο οκταµόριο (αλλά συµµετρικά): µεταφορά (, ) ώστε να συµπέσει µε αρχήαξόνων. 3 Y Οκταµόριο Άξονας ταχυτ. Κίνησης Άλλος άξονας Αυξάνεται 4 5 8 X 3 4 5» Μειώνεται» Αυξάνεται 6 7 6 7» Μειώνεται 8».6 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Κύκλος 8-πλή συµµετρία, δηµιουργούµε έναοκταµόριο (έστω ο ) crcl_smmtr (,,colour) nt,,colour; {stpl(,,colour); stpl(,,colour); stpl(,-,colour); stpl(,-,colour); stpl(-,-,colour); stpl(-,-,colour); stpl(-,,colour); stpl(-,,colour);.7 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Κύκλος: Αλγόριθµος Brsnhm Εστω (, ) επελέγη. Επόµενο βήµα (, ) ή (, -) Μεταβλητή απόφασης: - όπου και Αν 0 επιλέγεται το σηµείο (, -) διαφορετικά»»» (, ) Επειδή για ισχύει r -( ) έχουµε: r ( ) ( ) r ( ) ( ) ( ) r ( ).8 crcl (r,colour) nt r,colour; {nt,,; 0; r; 3-*r; whl (<) {crcl_smmtr(,,colour); ; f (>0) {--; -4* 4*; Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
.9 Εθνικό & Εθνικό & Καποδιστριακό Καποδιστριακό Πανεπιστήµιο Αθηνών Πανεπιστήµιο Αθηνών Εργα Εργα: 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ) ΥΠΕΠΘ) Επιστηµονικός Υπεύθυνος: Επιστηµονικός Υπεύθυνος: Επικ Επικ. Καθηγητής.. Καθηγητής. Μαρτάκος Μαρτάκος Μάθηµα: Γραφικά Ι Κύκλος: Αλγόριθµος Brsnhm Ητιµή υπολογίζεται επαναληπτικά ως εξής: Για τον υπολογισµό του χρησιµοποείται το εξής τέχνασµα: Θεωρώντας σαν πρώτο σηµείο του ου οκταµορίου το σηµείο (,)(0,r) ( ) ( ) ( ) ( ) ( ) ( ) ( ) r r r r 6 4 6 4 6 4 8 8 ( ) ( ) ( ) ( ) ( ) ( ) 4 4 6 4 0 4 0 < ή Αν Αν ( ) r r r r 3
Ελλειψη Πολλοί αλγόριθµοι για κωνικές τοµές: Εδώ αλγόριθµος Αγάθου-Θεοχάρη-Μπεµ (998). Γρήγορος, µικρή απαίτηση ακρίβειας ακεραίων, σωστή µετάβασης περιοχής. Εξίσωση έλλειψης µε κέντρο(0,0): / / Τετραπλή συµµετρία: δηµιουργούµε µόνο περιοχές,.0 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ελλειψη Περιοχή : άξονας κύριας κίνησης ο X Εκκίνηση από (0,) Τέλος περιοχής όταν / - Ορίζουµε: ( ) και θέτουµε: ( ) ( ( ) ) Θέτουµε - οπότε: () ε ε 4ε. Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ελλειψη Τιµή απόφασης: (/) / δηλαδή για ε / Αν / επιλέγουµε pl B διαφορετικά επιλέγουµε pl D ιευκολύνουµε περαιτέρω αυξητικό υπολογισµό παίρνοντας (-) ( ε ) ε 4 ε (.3) οπότε: Αν / επιλέγουµε pl B (.4) διαφορετικά επιλέγουµε pl D. Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
.3 Εθνικό & Εθνικό & Καποδιστριακό Καποδιστριακό Πανεπιστήµιο Αθηνών Πανεπιστήµιο Αθηνών Εργα Εργα: 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ) ΥΠΕΠΘ) Επιστηµονικός Υπεύθυνος: Επιστηµονικός Υπεύθυνος: Επικ Επικ. Καθηγητής.. Καθηγητής. Μαρτάκος Μαρτάκος Μάθηµα: Γραφικά Ι Ελλειψη Αυξητικός υπολογισµός Οµως από την εξίσωση της έλλειψης για το σηµείο (, ) έχουµε - ( ) οπότε: Στη συνέχεια ορίζουµε το, ως προς το, : ( ) ( ), ( ) ( ) ( ) ( ) ( ) { ( ) ( ) ( ), 4 ( ) ( ), (.5) (.6)
Ελλειψη Αλλά από την (.6) έχουµε οπότε: Αν, > / τότε - από την (.4), οπότε: Αν, / τότε από την (.4), οπότε: ( ) ( ), Ηαρχικήτιµή,0 βρίσκεται αντικαθιστώντας τις συντεταγµένες του πρώτου pl της περιοχής (0,) για τα (, ) στην (.6): ( ) ( ) 4 ( ),, ( ) 4 ( ),, 4 ( ),, 4 ( ),0,.4 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ελλειψη Μετάβαση περιοχής: Στηρίζεται στην τιµή του για το σηµείο (, -3/) Αν πραγµατική έλλειψη περνάει κάτω από αυτό αλλαγή περιοχής θέτοντας ε 3/ στην (.3) Αν 4 ( -) / τότε παραµένουµε στηνπεριοχή διαφορετικά µεταβαίνουµε στηνπεριοχή. Παροµοίως βρίσκουµε µεταβλητή απόφαση περιοχής, Αρχική τιµή µεταβλητήςαπόφασηςπεριοχής:, λαµβάνεται από τελική τιµή, :,, (, -, ) ( 3 ) ( 3 ) ( 3 4 ) 4 ( ) ( ) ( ),,.5 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
Ελλειψη Ellps (,,colour) nt,,colour; {nt _sqr,_sqr,,,4,4,_slop,_slop,,m,m,,; 0; ; _sqr*; _sqr*; _sqr_sqr; _sqr_sqr; 4; 4; _slop4; /*_slop(4*^)*() πάντα */ _slop4*(-); /*_slop(4*^)*(-) πάντα */ m_sqr>>; m_sqr>>; -_sqr-(_slop>>)-m; /* αφαιρούµε ^/ για βελτιστοποίηση */ /* περιοχή */ whl (<_slop) {stpl(,,colour); f (>0) {-_slop; --; _slop_slop-4; _slop; ; _slop_slop4; /*Αλλαγή περιοχής*/ -(_slop_slop)>>(_sqr-_sqr)(m-m); /* περιοχή */ whl (>0) {stpl (,,colour); f (<0) {_slop; ; _slop_slop4; -_slop; --; _slop_slop-4;.6 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
RstrOp Πλεγµατική οθόνη: εικόνα παριστάνεται στην µνήµη οθόνης Πολλές λειτουργίες υλοποιούνται µε µετακινήσεις ή/και συνδυασµούς στην µνήµη οθόνης. π.χ. Επεξεργαστής κειµένου, παραθυρικές εφαρµογές:.7 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
RstrOp RstrOp: γενική ρουτίνα µετακίνησης/συνδυασµού ορθογώνιων παραλληλόγραµµων τµηµάτων εικόνας, ταχέως υλοποιηµένη.8 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
RstrOp RstrOp(src mn,src mn,st mn,st mn,sz,sz,functon) nt src mn,src mn,st mn,st mn,sz,sz; ftp functon) /* (src mn, src mn) και (st mn, st mn) */ /* ή κάτω αριστερή γωνία των sourc και stnton */ /* sz, sz οι και διαστάσεις σε pl */ /* functon κάποιος τελεστής µεταξύ pl */ /* (θεωρείται δυνατή η συνάρτηση παράµετρος για απλοποίηση) */ {nt,j; for (0; <sz; ) for (j0; j<sz; j) st_pl(st mn,st mnj, functon(r_pl(st mn,st mnj) r_pl(st mn,st mnj)));.9 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
RstrOp Ασπρόµαυρες εικόνες: functon από τα 6 δυνατά XΟR ιδιαίτερα χρήσιµηγιααντιµετάθεση sourc & stnton χωρίς χρήση βοηθητικού χώρου: chng (src mn,src mn,st mn,st mn,sz,sz) nt src mn,src mn,st mn,st mn,sz,sz; {RstrOp (src mn,src mn,st mn, st mn,sz,sz,xor); RstrOp (st mn,st mn,src mn, src mn,sz,sz,xor); RstrOp (src mn,src mn,st mn, st mn,sz,sz,xor);.0 Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)
RstrOp chng ιδιαίτερη χρήσιµη για διαδοχικές µετακινήσεις αντικειµένου (π.χ. Cursor) mov (from mn,from mn,to mn,to mn, ck mn,ck mn,sz,sz) nt from mn,from mn,to mn,to mn, ck mn,ck mn,sz,sz; {chng (to mn,to mn, ck mn,ck mn, sz,sz); {chng (from mn,from mn, to mn,to mn, sz,sz);. Εργα: : 000 & ΣΚΕΠΣΙΣ (ΕΠΕΑΚ - ΥΠΕΠΘ)