Oppure

Loading
19/02/08 18:59
The Lizard King
Ciao a tutti. Sto provando a creare un grafico a torta, ma il risultato è ben diverso da quello che credevo. Ho 4 valori, ma il cerchio non viene MAI completato, a meno che non utilizzi solo 2 valori... ma non capisco perchè non debba venire con 4 valori. Eppure la somma delle angolazioni è 360 o un valore che si avvicina (in questo caso 359). Chiedo aiuto a voi, davvero non ci arrivo :D

import java.awt.*;
import javax.swing.*;
public class Arc extends JPanel
{
	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		
		setBackground(Color.BLACK);
		int first=1,second=5,third=10,fourth=15;
		int somma = first + second + third + fourth;
		int perc1=(int)(first*360)/somma,perc2=(int)(second*360)/somma,perc3=(int)(third*360)/somma,perc4=(int)(fourth*360)/somma;
		
		g.drawString(""+(perc1+perc2+perc3+perc4),10,20);
		g.setColor(Color.GREEN);
		g.fillArc(20,20,60,60,0,perc1);
		g.setColor(Color.BLUE);
		g.fillArc(20,20,60,60,perc1,perc2);
		g.setColor(Color.YELLOW);
		g.fillArc(20,20,60,60,perc2,perc3);
		g.setColor(Color.RED);
		g.fillArc(20,20,60,60,perc3,perc4);

	}
	public static void main(String[] args)
	{
		Arc panel = new Arc();
		JFrame frame = new JFrame("Arco");
		frame.setSize(100,120);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.add(panel);
		
		frame.setVisible(true);
	}
}
aaa
07/04/10 14:40
tax71p
ciao quello che sbagli è il punto da dove parti per disegnare l'arco...
prova così:
g.setColor(Color.GREEN);
g.fillArc(20,20,60,60,0,perc1);
g.setColor(Color.BLUE);
g.fillArc(20,20,60,60,perc1,perc2);
g.setColor(Color.YELLOW);
g.fillArc(20,20,60,60,perc1+perc2,perc3);
g.setColor(Color.RED);
g.fillArc(20,20,60,60,perc1+perc2+perc3,perc4);

ciao.
aaa