La istruzione per gli ovali si chiama drawOval(x,y,w,h), e ha quattro argomenti, che rappresentano posizione e dimensione del rettangolo circoscritto all'ovale. Il modo più facile per capire come funziona il disegno di ovali è di pensare che x,y,w,h rappresentano un rettangolo, e che l'ovale che viene disegnato è quello circoscritto nel rettangolo.
Per esempio, dal punto di vista concettuale, possiamo pensare prima al rettangolo che verrebbe disegnato usando gli stessi quattro numeri:
L'ovale che viene realmente disegnato è quello inscritto in questo rettangolo (in altre parole, il rettangolo non viene disegnato):
Il programma Ovali.java disegna due ovali e un cerchio. In particolare, il secondo ovale viene disegnato con la istruzione g.drawOval(100,50,50,120), e per confronto si fa vedere cosa succede se si disegna un rettangolo usando gli stessi parametri, ossia si fa anche g.drawRect(100,50,50,120).
/*
Disegna due ovali e un cerchio
*/
import java.awt.Graphics;
public class Ovali extends java.applet.Applet {
public void paint(Graphics g) {
/* disegna un ovale */
g.drawOval(0,0,100,50);
/* un altro ovale, e il rettangolo con le stesse dimensioni */
g.drawOval(100,50,50,120);
g.drawRect(100,50,50,120);
/* un cerchio: e' un ovale con larghezza=altezza */
g.drawOval(0,100,50,50);
}
}
Il programma produce il seguente disegno:
La coppia ovale-rettangolo fa capire in che modo viene disegnato l'ovale: quando si esegue la istruzione g.drawOval(x,y,w,h), è come se venisse localizzato il rettangolo prodotto da g.drawRect(x,y,w,h), ma quello che si disegna in effetti è l'ovale inscritto. Nel nostro caso, abbiamo poi disegnato anche il rettangolo.
L'ultima istruzione dell'applet disegna un cerchio: questo si ottiene semplicemente usando lo stesso numero come altezza e larghezza del rettangolo circoscritto: in questo modo il rettangolo diventa un quadrato, e quindi l'ovale all'interno è un cerchio.