Problemas con fillArc()

vctr
09 de Marzo del 2005
Hola, soy nuevo en Java y, en una de mis prácticas de la universidad tengo un problema con el método fillArc de la clase Graphics.

El caso es que tengo que dibujar en un applet un gráfico del tipo "quesitos" con las probabilidades de unos resultados en una serie. Es decir, mostrar el porcentaje en gráfico circular. Para esto lo que he pensado es utilizar el método fillArc pasándole como parámetros de ángulos el inicial, y luego el resto de los que tiene que ir printando, de manera que el ángulo de inicio del segundo quesito, por ejemplo, será el ángulo de final del primer quesito, y así sucesivamente. El código es:

public void paint(Graphics g)
{
int ancho = getSize().width;
int alto = getSize().height;
int inicio=0, fin=0;

String firma = getParameter("FIRMA");

for(int i=0; i<11; i++){
g.setColor(CColores[i]);
fin = inicio + (int) (probabilidad[i] * 360);
g.fillArc(0,0,300,300,inicio,fin);
inicio=fin;
}
}

Dentro de un applet con el cual consigo que me imprima el gráfico pero con el problema de que el último quesito de todos me solapa los demás, cuando no debería ser así, ya que el gráfico de probabilidad sigue una campana de Gauss.

A alguien se le ocurre qué pasa? Yo creo que tiene que ver con los ángulos de inicio y fin, pero no sé ver dónde está el error.

Gracias de antemano!

David
09 de Marzo del 2005
Hola

Tu problema pueden ser los redondeos (a mí ya me pasó). Calcula la suma de todas las probabilidades multiplicadas por 360 y comprueba que el total no sea superior...

En caso de ser así, puedes hacer el redondeo de la vieja: lo dejas todo como está excepto para la última probabilidad, cuyo ángulo calculas como lo que queda por rellenar en el círculo.

Salud

David

vctr
09 de Marzo del 2005
Gracias David, probaré a ver qué tal con eso y ya diré algo si necesito más ayuda.