lunes, 1 de octubre de 2012

Ejercicio practico de algoritmo gráfico para realizar un circulo

Para realizar el dibujo del circulo con java tenemos que hacer los siguientes pasos:

Primero debemos crear 3 clases
- Formulario
- Lienzo
- Punto

La programación que va dentro de Punto es la siguiente:


package DibujandoPrimitivaCirculo;
public class Punto
{
   private int x;
   private int y;
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
     
   public Punto()
   {
     this.x=0;
     this.y=0;
   }
   public String Coordenadas()
   {
     String cad="(X: "+this.x+",Y: "+this.y+")";
     return cad;
   }
}

En el lienzo pondremos la siguiente programación:

package DibujandoPrimitivaCirculo;
//importamos las siguientes clases
import java.awt.Color;
import java.awt.Graphics;


public class Lienzo extends javax.swing.JPanel 
{
    Punto P= new Punto();
    Color color;
    private int radio;

    public void setRadio(int radio) {
        this.radio = radio;
    }
    
    public Lienzo() 
    {
        initComponents();
        P.setX(0);
        P.setY(0);
        this.radio=0;
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        setBackground(new java.awt.Color(255, 255, 204));
        addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                formMousePressed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>                        

    private void formMousePressed(java.awt.event.MouseEvent evt) {                                  
      P.setX(evt.getX());
      P.setY(evt.getY());
    }                                 

    
    // Variables declaration - do not modify                     
    // End of variables declaration                   

    @Override
    public void paint(Graphics g)
    {
        super.paint(g);
        double x,y;
        double angulo=0;
        do
        {
            x= P.getX() + this.radio * (float) Math.cos(angulo);
            y= P.getY() + this.radio * (float) Math.sin(angulo);
            g.setColor(Color.blue);
            g.drawRect((int) x , (int) y, 0,0);
            angulo = angulo + 0.005;
        }while(angulo < 6.8);
        
        g.drawString(P.Coordenadas(), 50, 50);
    }
    
    public void DibujarCirculo()
    {
        repaint();
    }


LA EJECUCION DEL PROGRAMA QUEDARIA ASI



No hay comentarios:

Publicar un comentario