1 coordinate grafiche coordinate utente e di finestra.
-
Upload
andrea-farina -
Category
Documents
-
view
212 -
download
0
Transcript of 1 coordinate grafiche coordinate utente e di finestra.
![Page 1: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/1.jpg)
1
coordinate grafiche
coordinate utente e di finestra
![Page 2: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/2.jpg)
2
Quali coordinate?
Coordinate utente o di mondo(sistema reale)
coordinate di P1(x1,y1) e P2(x2,y2)
Coordinate di finestra o di pixel
larghezza e altezza in pixelXmax e Ymax
P1
P2
Xmax
Ymax
![Page 3: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/3.jpg)
3
1. coordinate utente dette anche di mondo o world coordinates
(WC) sono le coordinate, nel mondo modellato,
degli oggetti grafici cui si fa riferimentoNel caso del grafico di funzione si tratta delle
coppie x,y che definiscono la curva
![Page 4: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/4.jpg)
4
2. coordinate di finestra dette anche di pixel si riferiscono ai pixel di
una finestra intere in Java, così come in
altri linguaggi, l'origine è in alto a sinistra
finestra 200×200 pixel
![Page 5: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/5.jpg)
5
tracciamento disegni ogni disegno dovrebbe essere specificato solo in
coordinate utente lo scenario rappresentato è indipendente dalla finestra di
visualizzazione
le coordinate utente vengono trasformate in coordinate di finestra trasformazione geometrica
vantaggio: una sola rappresentazione grafica
![Page 6: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/6.jpg)
7
trasformiamo la finestra di osservazione nella finestra grafica in coordinate di pixel
trasformazione lineare!
trasformazione di coordinate (non isomorfa)
(x1,y1)
(x2,y2)
coordinate utente x
y Finestra di osservazione
java
![Page 7: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/7.jpg)
8
traslazionex' = x – x1y' = y – y2
x'
y'
x
y
(x1,y1)
(x2,y2)y
y’
y2
![Page 8: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/8.jpg)
9
ribaltamento
(0, y2 - y1)
(x2 - x1, 0)
x'' = x'
y'
y''
x'' = x'y'' = -y'
![Page 9: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/9.jpg)
10
scalamento
(0, Ymax)
(Xmax, 0)
x'''
y'''
x''' = x''∙Xmax/(x2 – x1)y''' = y''∙Ymax/(y2 – y1)
Xmax e Ymax rappresenta la dimensione della finestra grafica che si utilizza per la visualizzazione
![Page 10: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/10.jpg)
11
trasformazione complessiva
la linearità (di traslazione e scalamento) garantisce che le formule trovate sui vertici valgono per tutti i punti da trasformare
x''' = (x – x1)∙Xmax/(x2 – x1)y''' = (y2 – y)∙Ymax/(y2 – y1)
x' = x – x1y' = y – y2
x'' = x'y'' = -y'
x''' = x''∙Xmax/(x2 – x1)y''' = y''∙Ymax/(y2 – y1)
![Page 11: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/11.jpg)
12
trasformazione in Java /1 larghezza e altezza della finestra applet corrente
possono essere determinate tramite i metodi getWidth() e getHeight(), ereditati dalla classe Applet
a causa della discretizzazione delle coordinate, Xmax e Ymax si calcolano così
Xmax = getWidth() – 1;Ymax = getHeight() – 1;riferimento all'oggetto è sottointeso
![Page 12: 1 coordinate grafiche coordinate utente e di finestra.](https://reader036.fdocumenti.com/reader036/viewer/2022082919/5542eb57497959361e8c1958/html5/thumbnails/12.jpg)
13
trasformazione in Java /2
conviene definire due metodi
public double xpixel(double xuser) { return (xuser – x1)*Xmax / (x2 – x1);}
public double ypixel(double yuser) { return (yuser – y2)*Ymax / (y1 – y2);}
Soluzione GraficoFunzione6.java (con punti)e GraficoFunzione6.java (con linee)