Introduzione alla grafica
Raffaella Brighi, a.a. 2005/06
Corso di Laboratorio II. A.A. 2005-06
CdL Operatore Informatico Giuridico.
Sistema di coordinate
„
„
Per memorizzare un’immagine occorre spezzarla in
pixel.
Ogni pixel dell’immagine deve corrispondere un
pixel sullo schermo.
X
(0,0)
(x,y)
Sistema di coordinate Java
Y
1
Rappresentazione dei colori
„
„
„
„
Il colore di ogni pixel è memorizzato
separatamente
bianco e nero 1 bit
I colori rispettano una codifica.
Es. RGB (Rosso, Verde, Blu): ogni numero
rappresenta una percentuale del colore
primario. Si usa 1 byte per ogni colore
primario.
Interfacce grafiche
„
„
„
„
Le applicazioni spesso richiedono un
interfaccia grafica (GUI).
I componenti della GUI sono oggetti grafici
che visualizzano informazioni o permettono di
interagire con il programma (pulsanti, caselle
di testo, ecc).
Anche le applet sono componenti della GUI di
tipo container.
La libreria Swing di Java2 fornisce classi per
creare GUI
2
Introduzione alle Applet
„
„
Le applet sono programmi Java fatti per
essere richiamati da un documento HTML,
trasmessi lungo la rete ed eseguiti da un
browser Web (possono essere eseguite
anche localmente).
Viene trasmesso il bytecode ed una versione
dell’interprete del web lo esegue.
Introduzione agli applet
„
„
„
„
Una applet non può accedere al disco locale
Gli applet possono impiegare molto tempo
per visualizzarsi
Non serve un’installazione
Sono “sicuri”: un codice scorretto non puo’
provocare danni al sistema di qualcuno
3
Esempio
import java.applet.Applet;
import java.awt.*;
public class Einstein extends Applet{
public void paint (Graphics page)
{
page.drawRect(50, 50, 40, 40);
page.drawRect(60, 80, 225, 30);
page.drawOval (35, 60, 100, 120);
page.drawLine(35, 60, 100, 120);
page.drawString("Out of clutter, find simplicity....", 110, 70);
}
}
Punti principali
„
„
„
„
Estende la classe java.applet.Applet()
Il package java.awt contiene alcune funzioni
grafiche di utilita’ generale.
Il metodo paint viene invocato
automaticamente quando il browser esegue
l’applet
Il metodo pain prende in ingresso un oggetto
page di tipo Graphics. Tale oggetto definisce
il particolare contesto grafico con cui
interagire (spazio di coordinate).
4
Come eseguire la applet
„
„
JDK contiene un applet viewer per eseguire
le applet
Via web deve essere richiamata da una
pagina HTML con il tag
<APPLET code="Einstein.class"
width=350 height=200></APPLET>
Come creare un applet con NeatBeans
1 modo – si puo’ creare una classe normale
(cioe’ non di tipo main), scrivere il codice
come da esempio e modificare le proprieta’
della classe (click dx sulla classe, proprieta’):
Executor Æ “applet execution”
2 modo – scegliere il template per la creazione
delle applet (File, new, Java Classes, Applet).
5
La classe Graphics
„
„
„
„
„
„
„
„
Contiene diversi metodi che consentono di
disegnare figure: rettangoli, cerchi, quadrati,
ellissi, ecc.
Si puo’ scegliere se riempire le figure o
disegnare solo il bordo.
Tutti i metodi si basano sul citato sistema di
coordinate.
void drawArc (int x, int y, int width, int
height, int startAngle, int arcAngle)
Disegna un arco lungo l’ellisse delimitata dal
rettangolo definito da x,y, width e height.
void drawLine (int x1, int y1, int x2, int y2)
void drawOval (int x, int y, int width, int
height)
void drawRect (int x, int y, int width, int
height)
void drawString (String str, int x, int y)
6
void fillLine (int x1, int y1, int x2, int y2)
„ void fillOval (int x, int y, int width, int height)
„ void fillRect (int x, int y, int width, int height)
„ void fillString (Strindg str, int x, int y)
Disegnano le figure riempiendole con il colore
impostato in primo piano
„ color getColor()
Restituisce il colore in primo piano (foreground)
„ void setColor (Color.colore)
imposta il colore in primo piano (foreground)
„
La classe Color
„
„
Si utilizza per definire e gestire i colori.
Ogni oggetto rappresenta un singolo colore
Colore
nero
blu
verde
rosso
rosa
Oggetto
Color.black
Color.blue
Color.green
Color.red
Color.pink
RGB
0,0,0
0,0,255
0,255,0
255,0,0
255,175,175
7
Esercizio
„
Scrivere una applet che disegni un faccino
sorridente giallo su sfondo azzurro. Scrivere
in fondo alla pagina il vostro nome.
Richiamare la applet da una pagina HTML
8