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.