Se crea un nuevo proyecto en Netbeans y en vista de diseño se agrega un jButton y un jPanel.
Codigo (FractalFree.java):
package FractalTree;
public class FractalTree extends javax.swing.JFrame {
public FractalTree() {
initComponents();
this.setLocationRelativeTo(null); //Centrar pantalla
}
private void initComponents() { ... } //Codigo generado automáticamente
private void jButtonIniciarActionPerformed(java.awt.event.ActionEvent evt) {
Dibujo.Dibujar(
jPanel1.getGraphics(),
jPanel1.getWidth() / 2,
jPanel1.getHeight(),
-90, 9);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FractalTree().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 FractalTree;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
public class Dibujo {
public static void Dibujar(Graphics g, int x1, int y1, double angle, int depth) {
if (depth == 0) return;
Graphics2D g2 = (Graphics2D) g;
g.setColor(Color.BLUE);
g2.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);//Filtro antialiasing
int x2 = x1 + (int) (Math.cos(Math.toRadians(angle)) * depth * 5.0);
int y2 = y1 + (int) (Math.sin(Math.toRadians(angle)) * depth * 5.0);
g2.drawLine(x1, y1, x2, y2);
Dibujar(g2, x2, y2, angle - 20, depth - 1);
Dibujar(g2, x2, y2, angle + 20, depth - 1);
}
}
Resultado:
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.
Suscribirse a:
Enviar comentarios (Atom)
Con la tecnología de Blogger.
cual es el codigo generado automaticamente?
ResponderEliminarGracias desde hace tiempo lo e intentado hacer
ResponderEliminar