Eser_10_InfGraf - Dipartimento di Informatica e Sistemistica

DECIMA ESERCITAZIONE DI LABORATORIO
Informatica Grafica – Ingegneria Edile Architettura
28/4/2003 – a.a. 2002/2003
RIFERIMENTO: Horstmann cap. 6
Introduzione
Gli argomenti di questa esercitazione sono
 Utilizzo di cicli
 Grafico di una funzione
 Riutilizzo del codice sviluppato nell’ultima esercitazione
Esercizio
ESERCIZIO 1: progettare un’applet che permetta di visualizzare il grafico della funzion y=sen(1/x). In particolare
l’applet dovrà
 permettere all’utente di specificare l’intervallo delle x da considerare e calcolare automaticamente
l’intervallo delle y,
 approssimare la funzione da graficare con una spezzata, con ascisse dei campioni uniformemente
distribuiti sull’intervallo delle x e numero specificato da utente
 impostare la finestra di viewport a tutto schermo
 disegnare gli assi delle x e/o delle y nel caso in cui siano inclusi nella finestra di utente
 disegnare la spezzata
Il codice da cui partire
L’esercizio si intenderà completamente risolto una volta ottenuti i seguenti file.
Un’applet GraficoFunzione.java in grado di
a. acquisire da utente l’intervallo delle x ed il numero di campioni da considerare
b. calcolare automaticamente l’intervallo delle y una volta noto l’intervallo delle x, in modo tale da
permettere di visualizzare tutti i campioni calcolati.
c. Impostare la finestra d’utente sulla base degli intervalli delle x e delle y ottenuti come ai due punti
precedenti
d. Impostare la finestra di utente a tutto schermo
e. effettuare la trasformazione di coordinate del contesto grafico
f. verificare se l’asse x ed y sono presenti nella finestra d’utente ed eventualmente disegnarli
g. calcolare i punti del grafico e disegnare le linee della spezzata
Si fa notare che i primi quattro passi vanno implementati nel costruttore dell’applet o nel metodo init()
affinché non vengano rieseguiti ad ogni modifica della finestra dell’applet. Gli ultimi tre passi invece che
riguardando il disegno dell’applet vanno implementati nel metodo paint per assicurare che ad ogni
modifica della finestra dell’applet, il suo contenuto venga ridisegnato correttamente.
2. Un file GraficoFunzione.htm con un breve codice htm in grado di caricare un’applet
GraficoFunzione.class.
1.
Il codice del punto 1 viene fornito parzialmente realizzato ed è scaricabile dal sito. Per completarlo il codice bisognerà
1.
completare il codice del metodo paint aggiungendo un ciclo che calcola i punti della funzione (sfruttando il
metodo privato f(x)), calcola le linee della spezzata e le disegna.
2.
aggiungere nel metodo init delle istruzioni per acquisire da utente (utilizzare classe JOptionPane)
l’intervallo delle x ed il numero di campioni da considerare per il grafico, e che ne imposti i valori.
Il codice del punto 2 è reso disponibile completamente realizzato ed è scaricabile dal sito dell’esercitazione.
I passi dell’esercitazione
3.
Scaricare i codici di cui ai punti 1-2 della sezione precedente salvandoli in una stessa cartella.
4.
Aprire i due file da JCreator, compilare il codice di GraficoFunzione.java ed eseguire
GraficoFunzione.htm.. Dovrebbe essere visualizzata la cornice che definisce il viewport di disegno
senza il grafico.
5.
Completare il codice di GraficoFunzione.java

aggiungendo le istruzioni per calcolare i punti del grafico e disegnare la spezzata nel metodo paint

aggiungendo le istruzioni per acquisire da tastiera l’intervallo delle x ed il numero di campioni nel
metodo init.
Compilare il codice di GraficoFunzione.java ed eseguire GraficoFunzione.htm.. Ora
dovrebbe essere apparire il disegno del grafico e dovrebbe essere possibile la specifica dell’intervallo delle x
e del numero di campioni da parte dell’utente..