Come si può facilemente notare, questa figura è in effetti composta da due segmenti e da due archi di cerchio. I due segmenti non presentano nessuna difficoltà: il segmento orizzontale si trova tra le coordinate (200,100) e le coordinate (250,100), mentre il secondo si trova tra i due punti (300,150) e (300,200).
Per quello che riguarda gli archi, occorre per prima cosa individuare le coordinate dell'ovale di cui fanno parte. In questo caso, si tratta di archi di cerchio. Il cerchio piccolo è inscritto nel quadrato che ha l'angolo in alto in (200,100) e ha lato 100. Inoltre, l'arco parte da 0 gradi e si estende per 90 gradi. Quindi, l'istruzione necessaria per disegnare questo arco è:
g.drawArc(200,100,100,100,0,90);
Per capire quali sono le coordinate dell'arco grande usiamo
lo stesso metodo: il quadrato circosritto ha l'angolo in alto
a sinitra nelle coordinate (100,100), e il lato è
200. Inoltre, l'arco parte da 90 gradi e si estende fino
ai 360, ossia ha ampiezza 360-90. L'istruzione per disegnare
questo arco è quindi:
g.drawArc(100,100,200,200,90,360-90);
Il programma completo
Composta.java
è riportato qui sotto.
/*
Disegna una figura fatta di segmenti e archi
*/
import java.awt.*;
public class Composta extends java.applet.Applet {
public void paint(Graphics g) {
/* i due segmenti */
g.drawLine(200,100,250,100);
g.drawLine(300,150,300,200);
/* l'arco piccolo */
g.drawArc(200,100,100,100,0,90);
/* l'arco grande */
g.drawArc(100,100,200,200,90,360-90);
}
}
Il risultato dell'esecuzione di questo applet è
esattamente il disegno che ci aspettavamo.