lunes, 12 de septiembre de 2011

Programas computacion Gracfica

Aplicación Grafica que Grafique una recta ingresando como coordenadas los puntos que serán los extremos de la misma. Utilizando las propiedades de dibujo el JPanel.


Programación del JPalnel (Lienzo)



package labgraficacion01;

import java.awt.*;

public class Lienzo extends javax.swing.JPanel {

private int Xo,Yo;

private int X1,Y1;

//Propiedades Escritura

public void setX1(int X1) {

this.X1 = X1;

}

public void setXo(int Xo) {

this.Xo = Xo;

}

public void setY1(int Y1) {

this.Y1 = Y1;

}

public void setYo(int Yo) {

this.Yo = Yo;

}







Método constructor (Este lo genera por defecto NetBeans)

public Lienzo() {

initComponents();

}

Soberescribimos el Metodo Paint

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.red);

g.drawLine(this.Xo, this.Yo, this.X1,this.Y1);

}

Método para dibujar

public void Dibujarlinea()

{

repaint();

}

En la acción del botón Escribimos el siguiente código

private void btngraficarActionPerformed(java.awt.event.ActionEvent evt) {

//Leer cajas de texto

int xo = Integer.parseInt(this.txtX0.getText());

int yo = Integer.parseInt(this.txtY0.getText());

int x1 = Integer.parseInt(this.txtX1.getText());

int y1 = Integer.parseInt(this.txtY1.getText());







// Enviar variables a las variables de instancia

lienzo1.setXo(xo);

lienzo1.setYo(yo);

lienzo1.setX1(x1);

lienzo1.setY1(y1);



//LLamar al metodo paint

lienzo1.Dibujarlinea();

}

Vista de la aplicación ya ejecutada… Se coloco 4 campos de texto para ingresar las coordenadas de los puntos Y 4 etiquetas para indicar que valor se ingresara en los campos de texto, y por ultimo un botón para graficar.




Aplicación Grafica que Grafique una recta ingresando como coordenadas los puntos que serán los extremos de la misma y q además calcule la distancia entre los puntos y el punto medio. Utilizando El algoritmo DDA.



//Codigo de la clase Jpanel (Lienzo).

package appgraficojava;



import java.awt.*;



public class Lienzo extends javax.swing.JPanel

{

//Variables de instancia

private int Xo,Yo,X1,Y1;

//Propiedades de escritura

public void setX1(int X1) {

this.X1 = X1;

}

public void setXo(int Xo) {

this.Xo = Xo;

}

public void setY1(int Y1) {

this.Y1 = Y1;

}

public void setYo(int Yo) {

this.Yo = Yo;

}

public Lienzo() {

initComponents();

}

//Aquí el algoritmo DDA sobre escribiendo el método paint

@Override

public void paint(Graphics g) {

super.paint(g);

int dx = X1-Xo;

int dy = Y1-Yo;

g.setColor(Color.RED);

if(Math.abs(dx)>Math.abs(dy))

{

float m=(float)dy/(float) dx;

float b=Yo-m*Xo;

if(dx<0)

dx = -1;

else

dx=1;

while (Xo!=X1)

{

Xo+=dx;

Yo=Math.round(m*Xo+b);

g.drawLine(Xo, Yo, Xo, Yo);



}



}else

if (dy!=0)

{

float m=(float)dx/(float) dy;

float b=Xo-m*Yo;

if(dy<0)

dy = -1;

else

dy=1;

while (Yo!=Y1)

{

Yo+=dx;

Xo=Math.round(m*Yo+b);

g.drawLine(Xo, Yo, Xo, Yo);



}

}

}

Método para dibujar

public void DibujarLinea()

{

repaint();

}







//Código de la clase Cálculos (donde calcularemos la distancia entre puntos y el punto medio)

package appgraficojava;

public class Calculos

{

private double distancia;



public Calculos()

{

this.distancia=0;

}

public double DistanciaPuntos(int X0,int Y0,int X1, int Y1)

{

distancia=Math.sqrt((Math.pow(X1-X0,2))+(Math.pow(Y1-Y0,2)));

return distancia;

}

public double PuntoMedio()

{

double pm=distancia/2;

return pm;

}

}









//Código del JFrame Donde se visualizara los resultados.

private void btnGraficacionActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

int xo = Integer.parseInt(txtXo.getText());

int yo = Integer.parseInt(txtYo.getText());

int x1 = Integer.parseInt(txtX1.getText());

int y1 = Integer.parseInt(txtY1.getText());



lienzo1.setXo(xo);

lienzo1.setX1(x1);

lienzo1.setYo(yo);

lienzo1.setY1(y1);



lienzo1.DibujarLinea();



Calculos C =new Calculos();

String d = String.valueOf(C.DistanciaPuntos(xo, yo, x1, y1));

this.txtdistancia.setText(d);

String pm = String.valueOf(C.PuntoMedio());

this.txtpuntomedio.setText(pm);

}


Vista de la aplicación ya ejecutada.





Aplicación Grafica capaz de dibujar una línea ortogonal recibiendo como parámetros un ponto en el cual se da clic con el mouse y el Ancho (Tamaño de la linea), y que además calculara el punto medio de la línea. Ejecutara sobre un navegador web, Gracias a el uso del Formulario JApplet.

//Código del Lienzo

private int Xo,Yo,ancho;

/** Creates new form Lienzo */

public Lienzo() {

initComponents();

Xo=0;

Yo=0;

ancho=0;

}

public void setAncho(int ancho) {

this.ancho = ancho;

}

@Override

public void paint(Graphics g) {

super.paint(g);

g.setColor(Color.white);

g.drawLine(Xo, Yo, Xo, ancho);

Procesos D = new Procesos();

String pm = "Punto Medio = "+ String.valueOf(D.puntomedio(ancho));

g.drawString(pm, 50,200 );

g.drawString(D.CoordenadasPunto2(Xo, Yo, ancho), 50, 220);

}



public void DibujarLineaortogonal()

{

repaint();

}

private void formMousePressed(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

Xo=evt.getX();

Yo=evt.getY();



}

package aplicacionwebapplet;



public class Procesos

{

public double puntomedio(int ancho)

{

return ancho/2;

}

//Código de la clase procesos para calcular la coordenada del punto Y1

public String CoordenadasPunto2(int Xo,int Yo,int ancho)

{

int Y1 = Yo + ancho;

String cadena = "("+String.valueOf(Xo)+","+String.valueOf(Y1)+")";

return cadena;

}

}

//Código del formulario principal(JApplet).

private void btngraficarActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

int ancho = Integer.parseInt(txtancho.getText());

lienzo1.setAncho(ancho);

lienzo1.DibujarLineaortogonal();

}

//Código de la pagina web donde se va a ejecutar la aplicacion



Vista de la aplicación Ejecutada en el Navegador web.







Aplicación q grafica líneas utilizando como coordenadas las posiciones (Puntos) donde se da clic con el mouse.

//Coding del JPanel(Lienzo)



package lineaconcllic;

import java.awt.*;



public class Lienzo extends javax.swing.JPanel {



private int Xo,Yo,X1,Y1,c;



/** Creates new form Lienzo */

public Lienzo() {

initComponents();

}

@Override

public void paint(Graphics g) {

super.paint(g);

int dx = X1-Xo;

int dy = Y1-Yo;

g.setColor(Color.BLACK);

if(Math.abs(dx)>Math.abs(dy))

{

float m=(float)dy/(float) dx;

float b=Yo-m*Xo;

if(dx<0)

dx = -1;

else

dx=1;

while (Xo!=X1)

{

Xo+=dx;

Yo=Math.round(m*Xo+b);

g.drawLine(Xo, Yo, Xo, Yo);



}

}else

if (dy!=0)

{

float m=(float)dx/(float) dy;

float b=Xo-m*Yo;

if(dy<0)

dy = -1;

else

dy=1;

while (Yo!=Y1)

{

Yo+=dx;

Xo=Math.round(m*Yo+b);

g.drawLine(Xo, Yo, Xo, Yo);

}

}

}

public void dibujarlinea()

{

repaint();

}











private void formMousePressed(java.awt.event.MouseEvent evt) {

// TODO add your handling code here:

c=c+1;

if (c==1){

Xo=evt.getX();

Yo=evt.getY();

}

if (c==2)

{

X1=evt.getX();

Y1=evt.getY();

c=0;

}

}





//Código del JApplet(Formulario principal)

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

lienzo1.dibujarlinea();

}

//Código de la pagina en la q se ejecutara el Apple




Vista del proyecto ya ejecutado en un navegador web

No hay comentarios:

Publicar un comentario