Problemas con fillArc()
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!
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!
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
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
