circulo


PRIMITIVA GRAFICA CÍRCULO

INTRODUCCION

Una circunferencia queda determinada con el centro y el radio.
Algoritmos para graficar circunferencias
Simetría: se divide la circunferencia en 8 arcos simétricos.
•    Se desarrollan los pixel del arco definido por x³0, y³0, x³y.
•    Quedan los pixels correspondientes en los otros 7 arcos simétricos
Algoritmo

Se obtiene su ecuación diferencial.

Como en el caso de rectas este método evalúa la ecuación  diferencial a intervalos finitos. Debe encontrar una secuencia de  puntos de la pantalla (X0 , Y0), (X1 , Y1),..., (Xn , Yn) que formen el arco de circunferencia. Entonces si tengo un punto de la desratización (Xk , Yk), debe ser:





ALGORITMO GRAFICO CÍRCULO (JAVA)


  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();
    }


EJERCICIO

Desarrollar un ejercicio en NetBeans java con la primitiva grafica círculo.

PASO1: Crear un nuevo proyecto, abriremos netbeans y le daremos en archivo luego la opción nuevo proyecto, después se desplegara esta ventana y escogemos la categoría java y a la derecha de la misma ventana escogemos la opción Java class Library y luego presionamos next o siguiente.



Ahora le daremos un nombre a nuestro proyecto….



PASO 2: Ahora crearemos un paquete, le daremos clic derecho sobre la opción con el nombre (default package) luego New y después  escogemos la opción Java Package.



Ahora se desplegara esta ventana debes poner un nombre en este caso será (DibujandoPrimitivaCirculo) y le damos Finish.





Ahora de la misma forma crearemos un JFRAME daremos click derecho sobre el paquete DibujandoPrimitivaCirculo luego la opción new y después la opción Jframe form.





Despues se desplegara esta ventana deberemos poner un nombre y sera (formulario) lla q esta sera la que se ejecutara cuando mandemos a copilar la aplicación.



Ahora igual que creamos el jframe crearemos un JPANEL seguimos los mismos pasos pero ahora escogeremos la opción Jpanel y después le daremos un nombre q será Lienzo.



Por ultimo nos queda crear una clase que tendrá el nombre punto



Si siguieron los pasos correctamente el proyecto quedara de esta forma:


PASO 3: Ahora nos ubicaremos dentro del JPANEL le damos click derecho sobre Lienzo y damos click sobre la opción Open donde escribiremos la siguiente programación:




Luego escogemos la pestaña source y aquí es donde meteremos el algoritmo grafico



Primero importaremos servicios:
package primitivalinea;
import java.awt.Graphics;
import java.awt.Color;

Ahora declararemos variables para leer las coordenadas y el color:

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

Ahora implementaremos las propiedad de lectura:
    public void setRadio(int radio) {
        this.radio = radio;
    }
   


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

Luego de esto crearemos un evento, esto lo haremos ubicándonos en la pestaña design  q se encuentra en la parte superior luego luego daremos click derecho sobre el panel q es la zona anaranjada luego escogemos la opcion Events u despues mouse y despues el evento  (formMousePressed), Luego de eso se generara un codigo dentro de el pondremos el siguiente codigo:






Esto es para capturar la coordenada del punto centro donde se dibujara el circulo…



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

Bien ahora viene la parte más importante de este ejercicio q es donde pondremos el ALGORITMO DE LA PRIMITIVA CIRCULO:

    @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();
    }
Este codigo se genera al crear el Jpanel….
    @SuppressWarnings("unchecked")
}

PASO 4: Ahora dentro de la clase punto en la pestaña source pondremos el siguiente codigo:




PASO 5: Ahora diseñaremos el formulario (Jframe)…




Aquí hemos utilizado:
·       Un Jslider
·       Una caja de texto
·       Un label
·       Un botón
·        Un botón
Ahora arrastraremos con el mouse el Jpanel de nombre lienzo que se encuentra en la parte izquierda hasta el centro del formulario que diseñamos anteriormente ósea hasta el Jframe………………………..





PASO 6: Ahora en el mismo formulario entraremos a la pestaña source para escribir el siguiente codigo:

·       Dentro de public class() escribiremos lo siguiente, esto srive para asignar el valor del Jslider para definir el radio q tendra el circulo….





·       Ahora daremos doble clik en el Jslider y dentro del codigo q se genere escribiremis lo siguiente, esto es para capturar el valor del jslider en la caja de texto(radio) que es el que define el area del radio del circulo.
 





·       Ahora solo fata dar dole click en el boton dibujar y pondremos el siguiente codigo, aquí llamamos al metodo (dibujarcirculo) que se encuentra en el Jpanel (lienzo) y capturamos elvalor de la caja de texto(txtradio) para definir en lardio del circulo y lo enviamos al metodo (dibijarcrculo).



                                                                  

PASO 7:Por ultimo mandamos a ejecutar la aplicación para verificar que funcione correctamente, aquí solamente daremos un click en cualquier parte del formulario para saber en que ubicación se dibujara el circulo y si se lo quiere hacer mas grande el circulo solo hay que aumentar el valor del Jslider…..




Como podemos ver el circulo se graficó correctamente espero que les aiga servido este manual se agradece sus comentarios para mejorar este manual…….



No hay comentarios:

Publicar un comentario