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. |
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; |
||
img.setRGB((int) Math.round(w / 2 + x * w / 11), |
|||
(int) Math.round(h - y * |
(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); |
||
g.drawImage(img, 0, 0, null); |
|||
} |
} |
||