dibujar graficos con decimales

alex
08 de Febrero del 2006
wenas ... mi problemita igual es una tonteria pero me estoy rompiendo el coco y no se cómo resolverlo, y es el siguiente:

- uso un array doble para guardar los datos de las coordanadas cartesianas (x,y) de puntos que dibujo en un panel canvas; y otras caracteristicas como el color (c), si esta selecionado o no (1, 0), otras "coordenadas relativas" al origen de unos ejes ... etc.

- lo que pretendo es poder dar el valor de un ángulo (en grados) para girar los seleccionados respecto al origen, y para ello hago la conversion de las "coordenadas relativas" rectangulares (x, y) a coordenadas polares (r, g).

-Hasta ahi todo va aparentemente bien bien si sólo se introduce un valor de un ángulo una sola vez; pero lo que yo kiero hacer es poder girarlos por ejemplo con un scrollbar, o sea, ke vaya girando 1 o 2 o 5 grados sucesivamente. Y ahi es donde me aparece el problemita, porque las las coordenadas de los puntos deben de ser numeros enteros (int) para poder dibujar algo como por ejemplo un g.filloval que represente a cada punto, y al hacer los cálculos de conversion con los valores en forma de Doubles me salen unos nuevos puntos con unas coordenadas que tienen decimales. Y estos decimales son mi gran problema, ya que no los puedo introducir en el g.filloval porque éste sólo usa coordenadas de números enteros (int). Asi que el resultado es que al ir girando de grado en grado sucesivamente las posiciones no son las exactas y cuantas más veces se va girando más va cambiando la distancia entre los puntos seleccionos que giran, los cuales deberian mantener su distancia relativa entre éllos. Esto es por culpa de esos decimales ke me faltan.

- también he probado a usar la función round de la clase Math para tratar de ajustar más el resultado de la conversión de rectangulares a polares, pero esto, aunke mejora bastante más el resultado de las nuevas coordenadas, no me soluciona mi problema.

-Qué es lo que se puede hacer? ... deberia hacerlo de otra forma? ...

Un saludo y gracias de antemano .... ;)