Código 1: (Blogspot_Curvahilbert.java)
package blogspot_curvahilbert;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Blogspot_CurvaHilbert {
public static void main(String[] args) {
// resolucion 4K
int x = 2160;
int y = 2160;
int depth = 8;
BufferedImage imagen = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
Dibujo.Dibujar((Graphics2D) imagen.getGraphics(), x / 2, y / 2, depth, y / 2);
try {
ImageIO.write(imagen, "png", new File("CurbaHilbert.png"));
} catch (IOException e) {
System.out.println("Error de escritura");
}
}
}
Código 2: (Dibujo.java):
package blogspot_curvahilbert;
import java.awt.Color;
import java.awt.Graphics2D;
class Dibujo {
public static void Dibujar(Graphics2D 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.setColor(Color.GREEN);
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: