Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/08/2014, 10:30
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Cambiar el origen de coordenadas 0,0 en zona inferior izquierda

Hola:

Hay que hacer un translate() y un scale() diciéndole a la y que se escale con un número negativo (-1 por ejemplo), así iría al revés. Desgraciadamente, Graphics no tiene scale(), así que tienes dos (o tres) opciones

* Hacer las cuentas a mano, transformando coordenadas antes de pintarlo. Aunque está en C/C++, aquí tienes esas cuentas http://www.chuidiang.com/clinux/x11/...oordenadas.php

* Puedes usar la clase AffineTransform de java para echar esas cuentas, aquí tienes como http://www.chuidiang.com/java/graficos/seno/seno.php

* Puedes meter ese AffineTransform en el Graphics para que se haga automáticamente, pero el código tiene que ser algo así de raro, ya que Graphics no tiene método para ponerle la AffineTransform, pero el graphics que te pasan en realidad es un Graphics2D que sí lo tiene, así que hay que hacer un cast.

Código Java:
Ver original
  1. public paint (Graphics g) {
  2.     ((Graphics2D)g).setTransform (tuAffineTransform);
  3.     g.draw(.....);   // Aquí ya puedes usar coordenadas de tu sistema de referencia en vez de pixels.
  4. }

De todas formas si haces el cast a Graphics2D, ese sí tiene método scale()

Se bueno.
__________________
Apuntes Java
Wiki de Programación