Manual

Solo disponible en BuenasTareas
  • Páginas : 5 (1039 palabras )
  • Descarga(s) : 0
  • Publicado : 3 de noviembre de 2010
Leer documento completo
Vista previa del texto
MANUAL TÉCNICO
“Trazo de círculos”

En el proyecto creado en NetBeans TrazarCirculo, se crearon cuatro clases, las cuales son:

* HerramientasLineas.java
* LienzoDibujo.java
* PanelLienzoDibujo.java
* Main.java

En la clase HerramientasLineas.java viene la lógica del programa, y a continuación se detallara sobre el código de la misma.

/*Declaración de librerias*/import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;

/*Declaración de clase principal*/

public class HerramientasLineas {

/*Declaración de variables*/
private static BufferedImage imagen;
private static WritableRaster raster;
private static int alto;
private static int ancho;

/*El método setMedidas para colocar lasmedidias de la imagen y obtener un raster, que es un panel segmentado*/

public static void setMedidas (int nuevoAlto, int nuevoAncho) {
alto = nuevoAlto;
ancho = nuevoAncho;
imagen = new BufferedImage (alto, ancho, BufferedImage.TYPE_INT_RGB);
raster = imagen.getRaster();
}

/*Se crea el método directo que como parametros espera recibir valoresenteros de las variables xc (x de origen), yc (y de origen) y r (radio)*/

public static BufferedImage directo(int xc, int yc, int r )
{
/*Se declaran variables locales que se van a emplear para realizar las operaciones que se muestra en este mismo método*/
int x; double y1, y2;
for (x = xc-r; x <= xc+r; x+=2)
{
/*Este ciclo for se emplea para comenzar a pintar losprimeros puntos realizando las operaciones matematicas*/

y1 = yc + Math.sqrt ((float)r *r - (x-xc)* (x-xc));
y2 = yc - Math.sqrt ((float)r *r - (x-xc)* (x-xc));
putPixel(x,y1,0);
putPixel(x,y2,0);
}
/*Se asegura que se nos devuelva la imagen*/
return imagen;
}
/*Se crea el método incremental que va a tener como parametros xc, yc y r queson de tipo entero*/

public static BufferedImage incremental(int xc, int yc, int r)
{

/*Se crean variables locales que sera utilizadas por este método para hacer operaciones pertinentes de mismo*/
float dt,cc,cs,x,y,t; int tx,ty;
dt=(float)1/r;
cc=(float)Math.cos(dt); cs=(float)Math.sin(dt);
x=0; y=r;

while(y>=Math.abs(x))
{

/*Se imprimenlos pixels con redondeo después de haber verificado si y es mayor o igual al valor absoluto de x*/
tx=Math.round(x);
ty=Math.round(y);
putPixel(xc+tx,yc+ty,0);
putPixel(xc-tx,yc+ty,0);
putPixel(xc+tx,yc-ty,0);
putPixel(xc-tx,yc-ty,0);
putPixel(xc+ty,yc+tx,0);
putPixel(xc+ty,yc-tx,0);putPixel(xc-ty,yc+tx,0);
putPixel(xc-ty,yc-tx,0);
t=x;
x=x*cc-y*cs;
y=y*cc+t*cs;
} /*Nos regresa la imagen*/
return imagen; }

/*Se crea el método Bresenham con tres parámetros xc, yc y r*/

public static BufferedImage bresenham(int xc, int yc, int r)
{
/*Se crean variables locales para que sean empleadas en este método*/
int p,x,y;x=0; y=r;
p=(int) ((float) 5 / 4 - r);

/*Se crea una condicion de tipo while par air hacienda validaciones*/

while(y>x)
{
putPixel(xc+x,yc+y,0);
putPixel(xc-x,yc+y,0);
putPixel(xc+x,yc-y,0);
putPixel(xc-x,yc-y,0);
putPixel(xc+y,yc+x,0);
putPixel(xc+y,yc-x,0);
putPixel(xc-y,yc+x,0);putPixel(xc-y,yc-x,0);
if(p<0)
p+=2*x+3;
else
{
p+=2*(x-y)+5; y--;
}

x++;

}

/*Regresa la imagen*/

return imagen;
}

/*Método putPixel hace que se vayan pintando los pixels*/
public static void putPixel(int x, double y,int num){

int [] colors = {
255,255,255,255
};...
tracking img