Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

Archivo del blog

miércoles, 19 de marzo de 2014

Gráficos en 2D. Curva de Hilbert.

Se crea un nuevo proyecto en Netbeans y en vista de diseño se agrega un jButton y un jPanel.


Codigo 1 (Principal.java):

package CurvaHilbert;

public class Principal extends javax.swing.JFrame {

    int x, y, depth, size;

    public Principal() {
        initComponents();
        this.setLocationRelativeTo(null);// Centrar pantalla
    }

                            
    private void initComponents() { ... }// Codigo generado automaticamente                       

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

        Dibujo.Dibujar(
                jPanel1.getGraphics(),
                x = jPanel1.getWidth() / 2,
                y = jPanel1.getHeight() / 2,
                depth = 4,
                size = jPanel1.getHeight() / 2);

    }                                             

    public static void main(String args[]) {

       java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Principal().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                    
    private javax.swing.JButton jButtonIniciar;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration                  
}



Codigo 2 (Dibujo.java):

package CurvaHilbert;

import java.awt.Graphics;

public class Dibujo {
   
    public static void Dibujar(Graphics g, int x, int y, int n, int size) {
        if (n == 0) return;
        int x0 = x - size / 2;
        int x1 = x + size / 2;
        int y0 = y - size / 2;
        int y1 = y + size / 2;
        g.drawLine(x0, y0, x0, y1);
        g.drawLine(x1, y0, x1, y1);
        g.drawLine(x0, y, x1, y);
        Dibujar(g, x0, y0, n - 1, size / 2);
        Dibujar(g, x0, y1, n - 1, size / 2);
        Dibujar(g, x1, y0, n - 1, size / 2);
        Dibujar(g, x1, y1, n - 1, size / 2);

    }

}



Resultado:


No hay comentarios:

Publicar un comentario

Con la tecnología de Blogger.