Συστήματα Συντεταγμένων & Βασικές Μέθοδοι Σχεδίασης. Νικήτας Σγούρος

Σχετικά έγγραφα
ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΕΙΚΟΝΙΚΗ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑ ΣΗΜΕΙΩΣΕΙΣ (ΑΚΑ. ΕΤΟΣ )

ΣΑΡΛΙΔΟΥ ΔΕΣΠΟΙΝΑ ΤΖΙΝΑΡΑ ΠΑΣΧΑΛΙΑ

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Προγραµµατισµός ΙΙ Java 2

Δομές ελέγχου ροής προγράμματος

Εισαγωγή στη γλώσσα προγραμματισμού Java 69

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Οντοκεντρικός Προγραμματισμός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2008 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Αντικειµενοστρεφής Προγραµµατισµός

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΕΠΛ 131 Φροντιστήριο 2

Βασικά Στοιχεία της Java

(2) Thread Thread. Runnable. ( ) Java. Sample91. Thread Thread ) Thread. Runnable. run() / run() Runnnale ( ) MyRun implements Runnable Runnable

Γραφικά με υπολογιστές

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Εισαγωγή στην πληροφορική

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

Εισαγωγή Αποκοπή ευθείας σε 2Δ Αποκοπή πολυγώνου σε 2Δ Αποκοπή σε 3Δ. 3ο Μάθημα Αποκοπή. Γραφικα. Ευάγγελος Σπύρου

Κεφάλαιο 15 Γλώσσα προγραμματισμού Java

METΡΗΣΗ ΤΗΣ ΕΠΙΤΑΧΥΝΣΗΣ ΤΗΣ ΒΑΡΥΤΗΤΑΣ ΜΕ ΤΟ ΑΠΛΟ ΕΚΚΡΕΜΕΣ

Αντικειμενοστρεφής Προγραμματισμός

Βασικά Στοιχεία της Java

ΕΠΛ Φροντιστήριο 3

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

5 ο Εργαστήριο Δομές Επανάληψης (συνέχεια)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

ΚΛΑΣΕΙΣ ΜΕΘΟΔΟΙ - ΑΝΤΙΚΕΙΜΕΝΑ

02 Αντικειμενοστρεφής Προγραμματισμός

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ: ΜΙΚΡΟΕΛΕΓΚΤΕΣ

10.1 Γενικά για τα streams

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

9.1 JFC Swing. 9.1 JFC Swing Java (GUI) Java. Java Foundation Classes (JFC) Swing GUI. JFC Card Pile GameFrame GUI

0 SOLID_LINE 1 DOTTED_LINE 2 CENTER_LINE 3 DASHED_LINE 4 USERBIT_LINE

ΤΕΣΤ ❶ ΣΤΑ ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ Β ΛΥΚΕΙΟΥ

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Γραφικά Υπολογιστών: Σχεδίαση γραμμών (Bresenham), Σχεδίασης Κύκλων, Γέμισμα Πολυγώνων

Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Εντολές επανάληψης Εντολές επανάληψης while for do-while ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Παράδειγμα #1 Εντολή while

Γραφικά με Η/Υ Αλγόριθμοι σχεδίασης βασικών 22D D σχημάτων (ευθεία

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Create Sprite at Runtime

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS)

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Προγραµµατισµός ΙΙ Java 2

Β ΛΥΚΕΙΟΥ. ΕΥΘΕΙΑ ΚΑΙ ΚΥΚΛΟΣ (εχθροί ή φίλοι;) c πάνω στην οποία κινείται το σημείο Μ. M x, y. x 2λ 1 και. 3 λ Υπάρχει λ ώστε.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Δεδομένα, τελεστές, είσοδος/έξοδος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Επαναληπτικό φύλλο εργασίας 07/04/2009

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Οντοκεντρικός Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εξαιρέσεις

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

Εφαρμοσμένα Μαθηματικά ΙΙ 1ο Σετ Ασκήσεων (Λύσεις) Διανύσματα, Ευθείες Επίπεδα, Επιφάνειες 2ου βαθμού Επιμέλεια: Ι. Λυχναρόπουλος

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

Πληρουορική Γ Γσμμασίοσ

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

java.awt Font Γραµµατοσειρές Color Χρώµατα

Generics και ArrayLists

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

4. Εισαγωγή στη Java

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

Αντικειµενοστραφής Προγραµµατισµός

Μάθημα 2 [10/11/2015]

Γραφικά με υπολογιστές. Διδάσκων: Φοίβος Μυλωνάς. Διάλεξη #07

Εισαγωγή στον Προγραμματισμό

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Transcript:

Συστήματα Συντεταγμένων & Βασικές Μέθοδοι Σχεδίασης Νικήτας Σγούρος sgouros@unipi.gr

Σχεδιασμός Ευθύγραμμων Τμημάτων και Ψηφίδων Κλάση Graphics Μέθοδος drawline(xa, ya, xb, yb) Μέθοδος drawline(x, y, x, y) (για pixel) Μέθοδος drawrect(xa, ya, width, height) Μέθοδος fillrect(xa, ya, width, height) Μέθοδος setcolor(color) Κλάση Canvas Μέθοδος paint(graphics) Κλάση Color

Παράδειγμα Υλοποίησης import java.awt.*; import java.awt.event.*; public class MiddleRect extends Frame { public static void main(string[] args){ new MiddleRect(); MiddleRect() { super("ορθογώνιο στη Μέση"); addwindowlistener(new WindowAdapter() {public void windowclosing(windowevent e){system.exit(0);); setsize(200, 100); add("center", new CvMiddleRect()); show(); class CvMiddleRect extends Canvas { public void paint(graphics g) { Dimension d = getsize(); int maxx = d.width - 1, maxy = d.height - 1; g.setcolor(color.red); g.drawrect(maxx/4, maxy/4, maxx/2, maxy/2);

Συντεταγμένες Συσκευής Οι συντεταγμένες (x, y) κάθε ψηφίδας στην οθόνη του υπολογιστή (device coordinates) Οι συντεταγμένες συσκευής είναι ακέραιες (0,0) x y

Λογικές Συντεταγμένες Το σύστημα συντεταγμένων με βάση το οποίο συντίθεται μια εικόνα Οι λογικές συντεταγμένες λαμβάνουν πραγματικές τιμές

Κλίμακα Μέτρησης Ένα ισοτροπικό σύστημα συντεταγμένων χρησιμοποιεί κοινές μονάδες μέτρησης σε όλους τους άξονες Διαφορετικά το σύστημα συντεταγμένων χαρακτηρίζεται ως ανισοτροπικό

Από Λογικές σε Συντεταγμένες Συσκευής // logicalrange = Το εύρος των λογικών συντεταγμένων // devicenumofpixels = Το εύρος των συντεταγμένων συσκευής // Πόση είναι η απόσταση μεταξύ δύο διαδοχικών pixel συσκευής // σε λογικές συντεταγμένες; pixelsize = logicalrange/devicenumofpixels; int ix(float x){return Math.round(xCenter+x/pixelSize); int iy(float y){return Math.round(yCenter-y/pixelSize);

Από Συντεταγμένες Συσκευής σε Λογικές Συντεταγμένες pixelsize = logicalrange/devicenumofpixels; float fx(int x){return (x-xcenter)*pixelsize; float fy(int y){return (ycenter-y)*pixelsize;

Παρατηρήσεις Η μετατροπή από λογικές συντεταγμένες σε συντεταγμένες συσκευής εφαρμόζει αριθμητικές στρογγυλοποιήσεις

Σχεδίαση Τριγώνου σε Λογικές Συντεταγμένες -1 import java.awt.*; import java.awt.event.*; public class Tri extends Frame { public static void main(string[] args){new Tri(); Tri() { super("triangle"); addwindowlistener(new WindowAdapter() {public void windowclosing(windowevent e){system.exit(0);); setsize(600, 400); add("center", new CvTri()); show();

Σχεδίαση Τριγώνου σε Λογικές Συντεταγμένες -2 class CvTri extends Canvas { int maxx, maxy, xcenter, ycenter; float pixelsize, rwidth = 10.0F, rheight = 10.0F; void initgr() { Dimension d = getsize(); maxx = d.width - 1; maxy = d.height - 1; pixelsize = Math.max(rWidth/maxX, rheight/maxy); xcenter = maxx/2; ycenter = maxy/2; int ix(float x){return Math.round(xCenter+x/pixelSize); int iy(float y){return Math.round(yCenter-y/pixelSize); float fx(int x){return (x-xcenter)*pixelsize; float fy(int y){return (ycenter-y)*pixelsize; public void paint(graphics g) { initgr(); float side = 0.95F * Math.min(rHeight, rwidth), h = side/2.0f * (float)math.sqrt(3), xa, ya, xb, yb, xc, yc; xa = - side/2.0f; ya = - 0.5F * h; xb = side/2.0f; yb = ya; xc = 0.0F; yc = 0.5F * h; g.drawline(ix(xa), iy(ya), ix(xb), iy(yb)); g.drawline(ix(xb), iy(yb), ix(xc), iy(yc)); g.drawline(ix(xc), iy(yc), ix(xa), iy(ya));

Κανονικά Πολύγωνα Πλευρές ισομήκεις, γωνίες μεταξύ πλευρών ίσες. n i = ( radius * cos(2π(i-1)/n), radius * sin(2π(i-1)/n) ) // Point2D.java: Class for points in logical coordinates. class Point2D { float x, y; Point2D(float x, float y){this.x = x; this.y = y;

Σχεδίαση Πολυγώνων public void paint(graphics g) { setbackground(black); Color curcolor = new Color(rand(), rand(), rand()); initgr(); int left = ix(-rwidth/2), right = ix(rwidth/2), bottom = iy(-rheight/2), top = iy(rheight/2); do { numofvertices = random(28); while (numofvertices < 3); vertices = new Point2D[numOfVertices]; delang = TWOPI/numOfVertices; for (int i=0; i<numofvertices; i++) { angle = i*delang + dang; vertices[i] = new Point2D((float)(radius*Math.cos(angle)), (float)(radius*math.sin(angle))); for (int i = 0; i < numofvertices; i++) for (int j = numofvertices-1; j >= 0; j--) if (j > i) { g.setcolor(curcolor); g.drawline(ix(vertices[i].x), iy(vertices[i].y), ix(vertices[j].x), iy(vertices[j].y)); else break;

Πολυσπειροειδή 1. cur_angle = init_angle, cur_dist = init_dist 2. Από τη θέση στην οποία βρίσκεσαι ζωγράφισε ένα ευθύγραμμο τμήμα με μήκος cur_dist και με διεύθυνση cur_angle. Η καινούργια σου θέση είναι το τέλος του ευθύγραμμου τμήματος που μόλις σχεδιάστηκε. 3. cur_angle = cur_angle + dangle, cur_dist = cur_dist + incr 4. Εκτέλεσε επαναληπτικά τα βήματα 2 και 3.

Turtle Graphics

Παραμετρικές αναπαραστάσεις Εξίσωση: F(x, y) = x 2 +y 2 -r 2 = 0 Αναπαράσταση ευθ. τμήματος AB όπου Α (α x, α y ) και Β (β x, β y ) x(t) = α x + (β x -α x )t, y(t) = α y + (β y - α y )t Έλλειψη x(t) = α*cos(2πt), y(t) = β*sin(2πt)