编程玫瑰花束的代码怎么写

时间:2025-01-28 00:14:39 网络游戏

编程玫瑰花束的代码可以根据不同的编程语言和需求有多种实现方式。以下是几种不同编程语言实现玫瑰花束的示例代码:

1. Java 使用 AWT

```java

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class RoseBouquet extends JPanel {

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

int centerX = getWidth() / 2;

int centerY = getHeight() / 2;

// 绘制花束的绿色花茎

g.setColor(Color.GREEN);

g.fillRect(centerX - 5, centerY, 10, 200);

// 绘制花束的红色玫瑰花

g.setColor(Color.RED);

for (int i = 0; i < 8; i++) {

int angle = i * 45;

int x = (int) (centerX + Math.cos(Math.toRadians(angle)) * 80);

int y = (int) (centerY - Math.sin(Math.toRadians(angle)));

g.fillRect(x, y, 10, 10);

}

}

public static void main(String[] args) {

JFrame frame = new JFrame("Rose Bouquet");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(new RoseBouquet());

frame.setSize(400, 400);

frame.setVisible(true);

}

}

```

2. Python 使用 turtle

```python

import turtle

def draw_flower():

turtle.speed(10)

turtle.bgcolor("black")

colors = ["red", "blue", "yellow", "green"]

for i in range(36):

turtle.color(colors[i % 4])

turtle.forward(100)

turtle.left(45)

turtle.forward(100)

turtle.left(135)

turtle.forward(100)

turtle.left(45)

turtle.forward(100)

turtle.left(175)

turtle.right(10)

turtle.hideturtle()

turtle.done()

draw_flower()

```

3. Python 使用 matplotlib 和 numpy 绘制玫瑰曲线

```python

import matplotlib.pyplot as plt

import numpy as np

def rose_curve(theta, k):

r = np.cos(k * theta)

return r

theta = np.linspace(0, 2 * np.pi, 1000)

k = 5

r = rose_curve(theta, k)

x = r * np.cos(theta)

y = r * np.sin(theta)

plt.figure(figsize=(6, 6))

plt.plot(x, y, 'r')

plt.axis('equal')

plt.title('A Rose in Python')

plt.show()

```

4. C 语言绘制玫瑰花

```c

include

int main() {

int i, j, n;

printf("请输入玫瑰花的大小(建议输入10-20之间的数):");

scanf("%d", &n);

for (i = -n / 2; i <= n / 2; i++) {

for (j = -n / 2; j <= n / 2; j++) {

if (i * i + j * j <= (n / 2) * (n / 2)) {

if ((i + j) % 2 == 0) {

printf(" ");

} else {

printf("