Barnsley fern: Difference between revisions

Content added Content deleted
m (fix wikipedia link)
(→‎{{header|Java}}: use BufferedImage)
Line 28: Line 28:
{{works with|Java|8}}
{{works with|Java|8}}
<lang java>import java.awt.*;
<lang java>import java.awt.*;
import java.util.ArrayList;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.swing.*;


public class BarnsleyFern extends JPanel {
public class BarnsleyFern extends JPanel {


BufferedImage img;
ArrayList<Point> points = new ArrayList<>();


public BarnsleyFern() {
public BarnsleyFern() {
Line 39: Line 39:
setPreferredSize(new Dimension(dim, dim));
setPreferredSize(new Dimension(dim, dim));
setBackground(Color.white);
setBackground(Color.white);
img = new BufferedImage(dim, dim, BufferedImage.TYPE_INT_ARGB);
setForeground(Color.green.darker());
createFern(dim, dim);
createFern(dim, dim);
}
}
Line 67: Line 67:
y = tmpy;
y = tmpy;


points.add(new Point((int) Math.round(w / 2 + x * 60),
img.setRGB((int) Math.round(w / 2 + x * w / 11),
(int) Math.round(h - y * 60)));
(int) Math.round(h - y * h / 11), 0xFF32CD32);
}
}

void drawFern(Graphics2D g) {
for (Point p : points) {
g.fillOval(p.x, p.y, 1, 1);
}
}
}
}
Line 85: Line 79:
RenderingHints.VALUE_ANTIALIAS_ON);
RenderingHints.VALUE_ANTIALIAS_ON);


drawFern(g);
g.drawImage(img, 0, 0, null);
}
}