lunes, 5 de octubre de 2015

Como dibujar una linea, circulo, rectángulo y curva en java

Para dibujar una linea utilizamos las siguientes lineas de código

package graficos;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Color;
class Pantalla extends Frame {
public Pantalla() {
this.setSize(200,150 );
this.setVisible( true );
}
public void paint(Graphics g) {
g.setColor(Color.Blue);
g.drawLine(50, 50, 100, 100);
}
public static void main( String[] args ) {
Pantalla p = new Pantalla();
}
}

Para dibujar un circulo utilizaremos el siguiente código


import java.awt.*; import java.awt.event.*;
class Circulos extends Frame implements ActionListener {

static public void main(String[]args){
  new Circulos().show();
}

//componentes
private Button 
  circulo=new Button("dibujar círculo"), 
  quit=new Button("quit");

//tela de dibujo
private Canvas cv=new Canvas();
private final int W=300,H=300;//ancho y alto

//constructor
public Circulos() {
 //diagramar ventana
   setSize(W,H+2*25);//25 pixeles por borde
   setLayout(new BorderLayout());

 //agregar componentes
   add("North",circulo);
   add("South",quit);
   cv.setSize(W,H); //tamaño de la tela
   add("Center",cv); 

 //activar escuchador
   circulo.addActionListener(this);
   quit.addActionListener(this);
}

//dibujar Circulo
public void actionPerformed(ActionEvent x){
  if(x.getSource()==quit) System.exit(0);
  //coordenadas del centro del circulo
  int h=U.azar(0,W-1), v=U.azar(0,H-1);
  //diámetro y radio
  int d=U.azar(0,Math.min(W,H)-1), r=d/2;
  //obtener objeto de clase Graphics
  Graphics g=cv.getGraphics();
  //establecer color (convención RGB)
  g.setColor(new Color(U.azar(0,255),  //rojo
                       U.azar(0,255),  //verde
                       U.azar(0,255)));//azul

Para dibujar un rectángulo usaremos el código siguiente


Para dibujar un rectángulo en pantalla, basta con llamar al método drawRect() indicando la posición en que deseamos colocar la esquina superior-izquierda del rectángulo y su ancho y alto. Por ejemplo, el código siguiente, Rect1.java, pinta un rectángulo alrededor del applet que lo contiene:
import java.awt.*;
import java.applet.Applet;

public class Rect1 extends Applet {
    int ancho,alto;

    public void init() {
        Dimension d = size();    // devuelve el tamaño del applet
        ancho = d.width;
        alto = d.height;
    
        repaint();
        }

    public void paint( Graphics g ) {
        g.drawRect( 0,0,ancho-1,alto-1 );
        }
    }

El método drawRect() pinta un rectángulo abierto, si queremos un rectángulo relleno, tendremos que invocar al método fillRect(), que tiene idéntica sintaxis. El código siguiente, Rect2.java, pinta un rectángulo relleno en el centro del applet que lo contiene:
import java.awt.*;
import java.applet.Applet;

public class Rect2 extends Applet {
    int apAncho;
    int apAlto;
    int x,y,ancho,alto;

    public void init() {
        Dimension d = size();
        apAncho = d.width;
        apAlto = d.height;
        ancho = apAncho/3;
        alto = apAlto/3;
        x = (apAncho - ancho)/2;
        y = (apAlto - alto)/2;
        
        repaint();
        }

    public void paint( Graphics g ) {
        g.drawRect( 0,0,apAncho-1,apAlto-1 );
        g.fillRect( x,y,ancho-1,alto-1 );
        }
    }

Para dibujar una curva haremos lo siguiente


El java.awt.geom paquete que permite crear un segmento de curva cuadrática o cúbica.

Segmento de curva cuadrática

El QuadCurve2D clase implementa la forma de interfaz. Esta clase representa un segmento de curva paramétrica cuadrática en (x, y) el espacio de coordenadas. LosQuadCurve2D.Float y QuadCurve2D.Double subclases especificar una curva cuadrática en flotador y doble precisión.
Varios setCurve métodos se utilizan para especificar dos puntos extremos y un punto de la curva, cuyas coordenadas se puede definir directamente, por las coordenadas de otros puntos y mediante el uso de una matriz dada control.  Un método muy útil, setCurve (QuadCurve2D), establece el cuadrática la curva con los mismos puntos finales y el punto de control como una curva que se suministra. Por ejemplo:
// Crear nueva QuadCurve2D.Float
QuadCurve2D q = new QuadCurve2D.Float ();
// Dibujar QuadCurve2D.Float con coordenadas set
q.setCurve (x1, y1, ctrlx, ctrly, x2, y2);
g2.draw (q);
Cuadrar segmento de curva paramétrica

Segmento de curva cúbica

El CubicCurve2D clase también implementa la forma de interfaz. Esta clase representa un segmento de curva paramétrica cúbico en (x, y) el espacio de coordenadas.CubicCurve2D.Float y CubicCurve2D.Double subclases especificar una curva cúbica en flotador y de doble precisión.
El CubicCurve2D clase tiene métodos similares para establecer la curva como el QuadraticCurve2D clase, excepto con un segundo punto de control. Por ejemplo:
// Crear nueva CubicCurve2D.Double
CubicCurve2D c = new CubicCurve2D.Double ();
// Dibujar CubicCurve2D.Double con coordenadas set
c.setCurve (x1, y1, ctrlx1,
           ctrly1, ctrlx2, ctrly2, x2, y2);
g2.draw (c);
Segmento de curva cúbica

No hay comentarios.:

Publicar un comentario