酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用java生成一个好看的彼岸花代码

# 彼岸花(曼珠沙华) Java绘图代码 以下是一个使用Java Swing绘制彼岸花(曼珠沙华)的代码示例,这种花在东亚文化中象征着生死两隔和思念: ```java import javax.swing.*; import java.awt.*; import java.awt.geom.Path2D; public class RedSpiderLily extends JPanel { private static final int WIDTH = 800; private static final int HEIGHT = 600; @Override protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 设置色 g2d.setColor(new Color(10, 10, 30)); g2d.fillRect(0, 0, WIDTH, HEIGHT); // 绘制彼岸花 drawSpiderLily(g2d, WIDTH/2, HEIGHT/2, 150, 6); } private void drawSpiderLily(Graphics2D g2d, int centerX, int centerY, int size, int petals) { // 花蕊(黄色) g2d.setColor(new Color(255, 255, 0, 200)); g2d.fillOval(centerX - size/10, centerY - size/10, size/5, size/5); // 花瓣(红色) g2d.setColor(new Color(255, 50, 50, 220)); for (int i = 0; i < petals; i++) { double angle = 2 * Math.PI * i / petals; Path2D petal = createPetal(centerX, centerY, size, angle); g2d.fill(petal); // 花瓣上的曲线纹路 g2d.setColor(new Color(200, 30, 30, 180)); g2d.setStroke(new BasicStroke(1.5f)); g2d.draw(petal); g2d.setColor(new Color(255, 50, 50, 220)); } // 花茎(绿色) g2d.setColor(new Color(50, 150, 50)); g2d.setStroke(new BasicStroke(5f)); int stemHeight = size * 2; g2d.drawLine(centerX, centerY + size/4, centerX, centerY + stemHeight); // 花叶(细长弯曲) drawLeaf(g2d, centerX, centerY + stemHeight/2, size * 1.5, -20); drawLeaf(g2d, centerX, centerY + stemHeight/2 + 50, size * 1.2, 20); } private Path2D createPetal(int centerX, int centerY, int size, double angle) { Path2D.Double petal = new Path2D.Double(); double ctrlX1 = centerX + size * 0.3 * Math.cos(angle + Math.PI/6); double ctrlY1 = centerY + size * 0.3 * Math.sin(angle + Math.PI/6); double ctrlX2 = centerX + size * 0.7 * Math.cos(angle - Math.PI/6); double ctrlY2 = centerY + size * 0.7 * Math.sin(angle - Math.PI/6); double endX = centerX + size * Math.cos(angle); double endY = centerY + size * Math.sin(angle); petal.moveTo(centerX, centerY); petal.curveTo(ctrlX1, ctrlY1, ctrlX2, ctrlY2, endX, endY); petal.curveTo(ctrlX2, ctrlY2, ctrlX1, ctrlY1, centerX, centerY); return petal; } private void drawLeaf(Graphics2D g2d, int x, int y, double length, double startAngle) { Path2D.Double leaf = new Path2D.Double(); double angle = Math.toRadians(startAngle); double ctrlX1 = x + length * 0.3 * Math.cos(angle + Math.PI/8); double ctrlY1 = y + length * 0.3 * Math.sin(angle + Math.PI/8); double ctrlX2 = x + length * 0.7 * Math.cos(angle - Math.PI/8); double ctrlY2 = y + length * 0.7 * Math.sin(angle - Math.PI/8); double endX = x + length * Math.cos(angle); double endY = y + length * Math.sin(angle); leaf.moveTo(x, y); leaf.curveTo(ctrlX1, ctrlY1, ctrlX2, ctrlY2, endX, endY); g2d.setStroke(new BasicStroke(2f)); g2d.draw(leaf); } public static void main(String[] args) { JFrame frame = new JFrame("彼岸花 - 曼珠沙华"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(WIDTH, HEIGHT); frame.setLocationRelativeTo(null); frame.add(new RedSpiderLily()); frame.setVisible(true); } } ``` 这段代码创建了一个简单的Swing应用程序,绘制了一朵红色的彼岸花(曼珠沙华),具有以下特点: - 6片弯曲的红色花瓣 - 黄色的花蕊 - 绿色的花茎和叶子 - 深色衬托 运行后会显示一个窗口,其中绘制了彼岸花的图形。你可以调整参数如花瓣数量、大小和颜色来创建不同风格的彼岸花。 代码逻辑注意事项: 1. 花瓣形状使用贝塞尔曲线绘制,通过调整控制点可以改变花瓣的弯曲程度 2. 颜色使用RGBA格式,最后一个参数控制透明度,可以创建半透明效果 3. 绘图使用了抗锯齿技术(RenderingHints)使边缘更平滑 [2025-05-15 13:09:16 | AI写代码神器 | 1400点数解答]

相关提问