java 绘制 樱花树 代码
时间: 2024-10-11 14:12:59 浏览: 21
在Java中绘制樱花树通常涉及到图形绘制和动画的部分,这需要利用Swing或JavaFX库中的组件以及绘图API。这里给出一个简单的例子,我们将创建一个静态的画布并绘制一些基本的樱花元素:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.util.Random;
public class SakuraTree extends JFrame {
private static final int CANVAS_WIDTH = 800;
private static final int CANVAS_HEIGHT = 600;
private BufferedImage canvas;
public SakuraTree() {
setTitle("Sakura Tree");
setSize(CANVAS_WIDTH, CANVAS_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initCanvas();
setLocationRelativeTo(null); // 屏幕中心显示
setVisible(true);
}
private void initCanvas() {
canvas = new BufferedImage(CANVAS_WIDTH, CANVAS_HEIGHT, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = canvas.createGraphics();
drawBackground(g);
drawTrees(g);
g.dispose();
}
private void drawBackground(Graphics2D g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
g.setColor(new Color(245, 249, 250)); // 轻粉色背景
g.fillRoundRect(50, 50, CANVAS_WIDTH - 100, CANVAS_HEIGHT - 100, 20, 20);
}
private void drawTrees(Graphics2D g) {
Random random = new Random();
for (int i = 0; i < 100; i++) {
double x = random.nextDouble() * (CANVAS_WIDTH - 100) + 50;
double y = random.nextDouble() * (CANVAS_HEIGHT - 100) + 50;
int size = (int) (random.nextDouble() * 20 + 50);
g.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
Ellipse2D.Double ellipse = new Ellipse2D.Double(x, y, size, size);
g.draw(ellipse);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new SakuraTree());
}
}