sábado, 17 de enero de 2009

Creación de un Canvas y dibujado de una línea

El programa que se presentará a continuación es mu simple, sólo dibujará una línea en base a un arrreglo de puntos. Esto consiste en lo siguiente.

1. Creamos nuestra clase Lienzo (Lienzo.java) que heredara los atributos y metodos de la clase Canvas, perteneciente al paquete: java.awt.Canvas.
El Lienzo además contendrá un arreglo de puntos, los cuales se dibujarán en el canvas. En este caso nuestro lienzo contendrá 300 puntos del tipo de datos Point2D. Y usaremos una función f(x) = x. Es decir una función identidad, con lo cual nuestro dibujo saldrá una diagonal. Tomamos en cuenta que todos lo valores para x serán positivos, ya que la pantalla de nuestro computador está en píxeles cuyos valores son enteros positivos.

La clase será así:


package graf;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.geom.Point2D;
import java.awt.geom.Point2D.Double;

public class Lienzo extends Canvas
{
private Point2D[] puntos = new Point2D[300];

public Lienzo()
{
int i;
for(i=0;i<300;i++)> 0 )
{
n = puntos.length;
for(i=1;i
{
g.drawLine(
(int)puntos[i-1].getX(),
(int)puntos[i-1].getY(),
(int)puntos[i].getX(),
(int)puntos[i].getY()
);
}
}
}

}


Luego creamos nuestra clase App, donde crearemos un JFrame en donde añadiremos una variable del tipo Lienzo para que quede empotrado en la ventana.


package graf;

import javax.swing.JFrame;

public class App
{
public static void main(String[] param)
{
Lienzo lienzo = new Lienzo();

JFrame ventana = new JFrame("Aplicacion con Canvas para dibujo");

ventana.getContentPane().add(lienzo);

ventana.setVisible(true);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.pack();
}
}



La compilación está dado aquí:




El resultado:

No hay comentarios: