Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο 2002-2003 5η Διάλεξη Οθόνες γραφικών που βασίζονται σε εικονίδια (pixels) 24.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Αλγόριθμοι σχεδίασης βασικών 2D σχημάτων (ευθεία)
Advertisements

(READ – WRITE) ΚΑΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (INTEGER,REAL,CHAR)
Nikos Louloudakis Nikos Orfanoudakis Irini Genitsaridi
27 Νοέμβρη 2002.
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Γλώσσα Προγραμματισμού LOGO MicroWorlds Pro
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
9 Νοέμβρη 2002.
Tάσος Μπούντης Τμήμα Μαθηματικών Πανεπιστήμιο Πατρών
Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο η Διάλεξη Δημιουργία Συναρτήσεων με Ημιτονοειδή Δεκέμβρη 2002.
Απαντήσεις Προόδου II.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο η Διάλεξη Παραστάσεις Καμπυλών και Επιφανειών 23 Οκτώβρη 2002.
Εισαγωγή στους Η/Υ Πίνακες.
Ομάδα Γ. Ο υπολογιστής ως επιστημονικό εργαλείο. Ακρότατα συνάρτησης FindMinimum[x Cos[x],{x,2}] { ,{x  }} Plot[x Cos[x],{x,0,20}] FindMinimum[{x.
9 Οκτώβρη 2002.
Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο η Διάλεξη Επίλυση Εξισώσεων Νοέμβρη 2002.
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
H Mathematica στην υπηρεσία της Φυσικής
Φύλλο εργασίας Ευθύγραμμες κινήσεις.
Σημειώσεις : Χρήστος Μουρατίδης
Ενότητα Η Δομή Επανάληψης
Γραφήματα & Επίπεδα Γραφήματα
Κ. Μόδη: Γεωστατιστική και Εφαρμογές της (Κεφάλαιο 5) 1 Τυχαία συνάρτηση Μία τυχαία συνάρτηση (ΤΣ) είναι ένας κανόνας με τον οποίο σε κάθε αποτέλεσμα ζ.
13 & 18 Νοέμβρη 2002.
Αν θέλουμε να περιγράψουμε με ακρίβεια τις κινήσεις χρειαζόμαστε και άλλα μεγέθη. Κατά τη διάρκεια κάθε κίνησης ένα άλλο μέγεθος που αλλάζει συνεχώς.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Προσεγγιστικοί Αλγόριθμοι
Γραφικές παραστάσεις. t(min)h(cm) 05,2 17,1 28,7 310,6 413,0 514,7 Κατ’ αρχάς γράφουμε τα πειραματικά δεδομένα σε πίνακα. Η πρώτη γραμμή περιέχει τα μεγέθη.
Αριθμητική Ανάλυση Μεταπτυχιακού 6η Ε Β Δ Ο Μ Α Δ Α Ακαδημαϊκό Έτος Τετάρτη 26, Νοεμβρίου 2008 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΤΟΜΕΑΣ ΥΠΟΛΟΓΙΣΤΙΚΩΝ.
Ανάλυση Πολλαπλής Παλινδρόμησης
Ανάλυση Παλινδρόμησης με Δεδομένα Χρονολογικών Σειρών
Μεταθέσεις & Συνδυασμοί
Κεφάλαιο 2 Κίνηση σε μία διάσταση
ANAKOINWSH H 2η Ενδιάμεση Εξέταση μεταφέρεται στις αντί για , την 24 Νοεμβρίου στις αίθουσες ΧΩΔ και 110 λόγω μη-διαθεσιμότητας.
Πρωταρχικά στοιχεία. Προβολή σε ψηφιακή οθόνη Εκχώρηση τιμών σε pixel Με συναρτήσεις πχ SetPixel(x, y, color) Από Buffer ή πίνακα πχ FrameBuf[x][y] =
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης
Ενότητα Α.4. Δομημένος Προγραμματισμός
Μερικές Διαφορικές Εξισώσεις ΙΙ
Το Scratch και ο σχεδιασμός γεωμετρικών σχημάτων
Ερωτήσεις Σωστού - Λάθους
Στοιχεία Σχεδίασης Γραφικών
1 Εισαγωγή στη Γραφική Στόχοι του μαθήματος – Γενική περιγραφή της περιοχής – Βασική ορολογία – Παραδείγματα εφαρμογών – Βασικά βήματα ανάπτυξης εφαρμογών.
Μερκ. Παναγιωτόπουλος - Φυσικός
2.3 ΚΙΝΗΣΗ ΜΕ ΣΤΑΘΕΡΗ ΤΑΧΥΤΗΤΑ
Περί Διαγραμμάτων Ταχύτητα Επιτάχυνση Μετατόπιση.
Ερωτήσεις Πολλαπλής Επιλογής
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΤΩΝ ΔΙΑΦΟΡΙΚΩΝ ΕΞΙΣΩΣΕΩΝ ΜΕ ΜΕΡΙΚΕΣ ΠΑΡΑΓΩΓΟΥΣ Ακαδημαϊκό Έτος Πέμπτη, 25 Ιουνίου η Εβδομάδα ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ.
Διάλεξη 14: Εισαγωγή στη ροή ρευστών
Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της οποίας η τιμή θα περάσει από την αρχική.
ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ Ι 7 η Διάλεξη Η ΜΕΘΟΔΟΣ ΤΟΥ ΓΕΩΜΕΤΡΙΚΟΥ ΤΟΠΟΥ ΡΙΖΩΝ  Ορισμός του γεωμετρικού τόπου ριζών Αποτελεί μια συγκεκριμένη καμπύλη,
ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ Ι 8 η Διάλεξη ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ Ι ΠΑΡΑΔΕΙΓΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΧΡΗΣΗΣ ΤΟΥ ΓΕΩΜΕΤΡΙΚΟΥ ΤΟΠΟΥ ΤΩΝ ΡΙΖΩΝ Το σύστημα ελέγχου.
Ενισχυτική διδασκαλία
Διάλεξη 15: O αλγόριθμος SIMPLE
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
for (παράσταση_1; παράσταση_2; παράσταση_3)
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ «ΓΙΑ» Για μτ από ατ μέχρι ττ [με_βήμα β] εντολές Τέλος_επανάληψης : περιοχή εντολών μτ : η μεταβλητή της.
ΠΑΡΑΔΕΙΓΜΑΤΑ ΔΙΑΓΡΑΜΜΑΤΩΝ BODE ΜΕΤΡΟΥ ΚΑΙ ΦΑΣΗΣ
Εισαγωγή στο Γραμμικό Προγραμματισμό
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Η Logo και ο σχεδιασμός γεωμετρικών σχημάτων
Εικόνα 2.1: Το περιβάλλον της MicroWorlds Pro.
Σημειώσεις : Μιχάλης Φίλης
Μη Γραμμικός Προγραμματισμός
Σημειώσεις : Μιχάλης Φίλης
ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ
Μεταγράφημα παρουσίασης:

Μαθηματικοί Υπολογισμοί Χειμερινό Εξάμηνο η Διάλεξη Οθόνες γραφικών που βασίζονται σε εικονίδια (pixels) Οκτώβρη 2002

Μαθηματικοί Υπολογισμοί 2 Περιεχόμενα Φωτοσκίαση καμπυλών σαν εικονίδια Δυο Φωτοσκιάσεις ενός Ευθύγραμμου Τμήματος Γενικές Στρατηγικές Φωτοσκίασης Καμπυλών Φωτοσκίαση Ευθύγραμμου Τμήματος (1) Υπολογισμοί Διαφόρισης Καμπυλών Φωτοσκίαση Ευθύγραμμου Τμήματος (2)-(6) Σταδιακές βελτιώσεις σε 5 βήματα Φωτοσκίαση Κύκλου 1η Υλοποίηση 2η Υλοποίηση Αποτελέσματα

Μαθηματικοί Υπολογισμοί 3 Εισαγωγή Η οθόνη των υπολογιστών συνήθως αποτελείται από ένα ορθογώνιο πλέγμα (πχ. 600x900) τετραγωνικών εικονιδίων. Κάθε εικονίδιο επιδεικνύει ένα συγκεκριμένο χρώμα. Η επίδειξη αυτή γίνετε με διάφορους τρόπους: Άσπρο-μαύρη: Κάθε εικονίδιο έχει δυο μόνον πιθανές τιμές – μαύρο ή άσπρο. Κλίμακα του γκρι: Κάθε εικονίδιο μπορεί να είναι μια απόχρωση του γκρι (πχ. 256 αποχρώσεις μεταξύ άσπρου και μαύρου). Απεικονίσεις χρωματισμού: Κάθε εικονίδιο μπορεί να είναι ένα χρώμα που ανήκει σε ένα προκαθορισμένο σύνολο πεπερασμένου πληθικού αριθμού (πχ. από 256 διαφορετικά χρώματα). Πλήρες χρωματισμός: Κάθε εικονίδιο μπορεί να είναι ένα χρώμα που ανήκει σε ένα ευρύ πεδίο χρωμάτων (πχ. Αυτό που καθορίζετε με την χρήση 8 bits για το κόκκινο, το πράσινο και το μπλε).

Μαθηματικοί Υπολογισμοί 4 Φωτοσκίαση καμπυλών σαν εικονίδια Όταν επιδεικνύουμε μια καμπύλη σε συσκευή βασισμένη σε εικονίδια, πρέπει να χρωματίσουμε ένα σύνολο εικονιδίων το οποίο θα αποτελέσει μια προσέγγιση της καμπύλης. Για παράδειγμα: Η φωτοσκίαση αυτή υποθέτει ότι κάθε εικονίδιο μπορεί να πάρει μόνον δύο χρώματα. Μια καλλίτερη επιλογή είναι να χρησιμοποιήσουμε ενδιάμεσα σχήματα, εάν μπορεί φυσικά να τα επιδείξει η συσκευή, αλλά δεν θα ασχοληθούμε με το πως μπορεί να γίνει αυτό.

Μαθηματικοί Υπολογισμοί 5 Δυο Φωτοσκιάσεις ενός Ευθύγραμμου Τμήματος Μια που φωτοσκιάζει κάθε εικονίδιο που τέμνει η γραμμή: Μια που φωτοσκιάζει ακριβώς ένα εικονίδιο σε κάθε στήλη: Είναι η μία καλλίτερη από την άλλη;

Μαθηματικοί Υπολογισμοί 6 Γενικές Στρατηγικές Φωτοσκίασης Καμπυλών Υποθέστε ότι έχουμε την παραμετρική παράσταση μιας καμπύλης, σαν (x(t), y(t)), για t μέσα σε κάποιο πεδίο. Πώς μπορούμε να την φωτοσκιάσουμε; Πρώτη Στρατηγική: Για έναν αρκετά μεγάλο αριθμό τιμών του t στο πεδίο τιμών του: Υπολόγισε τα x(t) και y(t). Στρογγύλευσε τις τιμές αυτές στο πλησιέστερο εικονίδιο. Θέσε στο εικονίδιο το επιθυμητό χρώμα. Δεύτερη Στρατηγική : Για τιμές του t σε μια περιοχή του πεδίου τιμών του: Καθόρισε την κλίση της καμπύλης, και προχώρησε κατά ένα εικονίδιο κατά μήκος του άξονα που είναι πλησιέστερος στην κλίση αυτή, Θέσε στο εικονίδιο το επιθυμητό χρώμα.

Μαθηματικοί Υπολογισμοί 7 Φωτοσκίαση Ευθύγραμμου Τμήματος (1) Θα γράψουμε ένα αποδοτικό πρόγραμμα φωτοσκίασης ευθύγραμμων τμημάτων. Θα ακολουθήσουμε την δεύτερη στρατηγική, και θα υποθέσουμε ότι η γραμμή αρχίσει από το (0,0) και έχει κλίση μεταξύ 0 και 1. Μπορούμε να μετασχηματίσουμε άλλες περιπτώσεις στην παραπάνω. Υποθέτουμε επίσης ότι τα άκρα είναι ακέραιοι. Περιμένουμε αυτό να μας δημιουργήσει προβλήματα; proc DrawLine (x, y : int; c : colour) var yt, m : real var yi : int m := y / x for xi : 0..x yt := m * xi yi := floor (yt + 1/2) PutPixel (xi, yi, c) end for end DrawLine Η παραπάνω μέθοδος δεν είναι αρκετά αποδοτική.

Μαθηματικοί Υπολογισμοί 8 Υπολογισμοί Διαφόρισης Καμπυλών Έστω ότι χρειαζόμαστε να υπολογίσουμε τα x(t) και y(t) πολλές τιμές του t: t = t 0 ; t 0 + δ, t 0 + 2δ,... Αντί να υπολογίσουμε το x(t) ξεχωριστά για κάθε t, μπορούμε να υπολογίσουμε το we can evaluate x(t 0 ) = x 0, και μετά να υπολογίσουμε τα x i+1 = x(t i+1 ) = x i + δ dx/dt (t i ) Ο παραπάνω τρόπος θα είναι πιο γρήγορος εάν είναι ευκολότερο να υπολογίσουμε τις τιμές της dx/dt ευκολότερα από τις τιμές της ίδιου του x(t). Για ένα ευθύγραμμο τμήμα η dx/dt είναι σταθερά. Από την άλλη μεριά, ίσως ανησυχούμε για την συσσώρευση των σφαλμάτων στρογγύλευσης και του σφάλματος από την μεταβολή του dx/dt καθώς το t μεταβάλλεται στο διάστημα δ.

Μαθηματικοί Υπολογισμοί 9 Φωτοσκίαση Ευθύγραμμου Τμήματος (2) Μπορούμε να μετασχηματίσουμε το πρόγραμμα #1 έτσι ώστε αυτό να χρησιμοποιεί υπολογισμούς παραγώγων. Αυτό αντικαθιστά έναν πολλαπλασιασμό με μια πρόσθεση, που εκτελείται ταχύτερα. proc DrawLine (x, y : int; c : colour) var yt, m : real var yi : int yt := 0 m := y / x for xi : 0..x yi := floor (yt + 1/2) PutPixel (xi, yi, c) yt += m end for end DrawLine Κάνει το παραπάνω πρόγραμμα ακριβώς αυτό που κάνει και το πρόγραμμα #1;

Μαθηματικοί Υπολογισμοί 10 Φωτοσκίαση Ευθύγραμμου Τμήματος (3) Μπορούμε να απαλείψουμε την πρόσθεση του ½ σε κάθε βήμα της ανακύκλωσης ως εξής: proc DrawLine (x, y : int; c : colour) var ys, m : real var yi : int ys := 1/2 m := y / x for xi : 0..x yi := floor(ys) PutPixel (xi, yi, c) ys += m end for end DrawLine

Μαθηματικοί Υπολογισμοί 11 Φωτοσκίαση Ευθύγραμμου Τμήματος (4) Μετά, διασπάμε το ys σε δυο μεταβλητές, ysi και ysf, το ακέραιο και το δεκαδικό μέρος του αντίστοιχα. Το ακέραιο μέρος κατευθείαν καθορίζει την y συντεταγμένη του προς φωτοσκίαση εικονιδίου: proc DrawLine (x, y : int; c : colour) var ysf, m, mm : real var ysi : int m := y / x mm := m ­ 1 ysi := 0 ysf := 1/2 for xi : 0..x PutPixel (xi, ysi, c) if (ysf+m?=1) then ysi += 1 ysf += mm else ysf += m end if end for end DrawLine

Μαθηματικοί Υπολογισμοί 12 Φωτοσκίαση Ευθύγραμμου Τμήματος (5) Τώρα ας απαλλαχθούμε από τις ποσότητες κινητής-υποδιαστολής ysf, m, και mm, αντικαθιστώντας τες με μια παράσταση τύπου σταθερής- υποδιαστολής σταθμισμένης με 2*x: proc DrawLine (x, y : int; c : colour) var Ysf, M, MM : int var ysi : int M := 2*y MM := M ­ 2*x ysi := 0 Ysf := x for xi : 0..x PutPixel (xi, ysi, c) if (Ysf+M?=2*x) then ysi += 1 Ysf += MM else Ysf += M end if end for end DrawLine Πώς, η αλλαγή από παραστάσεις κινητής-υποδιαστολής σε σταθερής- υποδιαστολής αλλάζει το τι κάνει το πρόγραμμα;

Μαθηματικοί Υπολογισμοί 13 Φωτοσκίαση Ευθύγραμμου Τμήματος (6) Τέλος, ορίζουμε r = Ysf + M ­ 2*x = 2*y + 2*(ysf­1)*x Αυτό μας επιτρέπει να ελέγχουμε εάν Ysf + M >= 2*x ελέγχοντας εάν r >= 0. Έτσι καταλήγουμε στον Αλγόριθμο του Bresenham: proc DrawLine (x, y : int; c : colour) var r, M, MM : int var ysi : int M := 2*y MM := M ­ 2*x ysi := 0 r := 2*y ­ x for xi : 0..x PutPixel (xi, ysi, c) if (r?=0) then ysi += 1 r += MM else r += M end if end for end DrawLine

Μαθηματικοί Υπολογισμοί 14 Φωτοσκίαση Κύκλου Μπορούμε να φωτοσκιάσουμε έναν κύκλο χρησιμοποιώντας την πρώτη στρατηγική, χρησιμοποιώντας τιμές παραγώγων. Ένας κύκλος ακτίνας r και κέντρο στην αρχή των αξόνων μπορεί να παρασταθεί παραμετρικά ως εξής: x(u) = r cos(u); y(u) = r sin(u) Αυτό αντιστοιχεί στην εξής διαφορική μορφή: dx/du (u) = - r sin(u), dy/du (u) = r cos(u). Αυτό φαίνετε ότι είναι τόσο χρονοβόρο όσο και το αρχικό, μέχρι να συνειδητοποιήσουμε ότι είναι ισοδύναμο του dx/du (u) = - y(u), dy/du (u) = x(u). Η στρατηγική μας: Ξεκίνα με x(0) = r, y(0) = 0, και προχώρα με μικρά βήματα στο u, χρωματίζοντας τα εικονίδια καθώς τα προσπελάς. Επέλεξε το μήκος του βήματος αρκετά μικρός έτσι ώστε να μην δημιουργούνται διάκενα.

Μαθηματικοί Υπολογισμοί 15 1η Υλοποίηση Για να υλοποιήσουμε την παραπάνω στρατηγική, πρέπει να ρυθμίσουμε μερικές λεπτομέρειες. Αφού θέσουμε x(0) = r και y(0) = 0, μπορούμε να επαναλάβουμε συνεχώς, για κάποιο μήκος βήματος δ, το παρακάτω: x(u + δ) = x(u) – y(u)δ y(u + δ) = y(u) – x(u)δ. Επιλέγουμε σαν μήκος βήματος, δ, το 1/r. Τότε, η συνολική απόσταση που διανύουμε σε κάθε βήμα θα πρέπει να είναι 1, οπότε δεν θα παραλείψουμε εικονίδια. Χρειάζεται να συνεχίσουμε εκτελώντας 2π/δ βήματα έτσι ώστε να ολοκληρώσουμε το δρόμο μας.

Μαθηματικοί Υπολογισμοί 16 Το Αποτέλεσμα για r = 12

Μαθηματικοί Υπολογισμοί 17 2η Υλοποίηση Μπορούμε να σταματήσουμε την προς τα έξω ελικοειδή κίνηση του κύκλου αλλάζοντας τις επαναλήψεις με τις εξής: x(u + δ) = x(u) – y(u)δ y(u + δ) = y(u) – x(u+δ)δ. Γιατί δουλεύει αυτό; Δεν επιτρέπει περιοχές σημείων να «επεκταθούν», επειδή κάθε βήμα είναι ένας «αποκομμένος» μετασχηματισμός ο οποίος δεν μεταβάλει το εμβαδόν μιας περιοχής:

Μαθηματικοί Υπολογισμοί 18 Το Αποτέλεσμα για r = 12 – Νέα Έκδοση