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