循环的正多边形编程怎么写

时间:2025-03-05 03:24:36 明星趣事

绘制正多边形的编程方法有多种,这里提供几种常见的编程语言实现方式:

Python 使用 turtle 库

```python

import turtle

def draw_polygon(sides, length):

angle = 360 / sides

for _ in range(sides):

turtle.forward(length)

turtle.right(angle)

调用函数绘制正五边形

draw_polygon(5, 100)

结束绘图

turtle.done()

```

Java 使用 Java Swing 和 Graphics2D

```java

import javax.swing.*;

import java.awt.*;

public class PolygonExample extends JPanel {

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2d = (Graphics2D) g;

int sides = 5;

int length = 100;

int x = (getWidth() - length * sides) / 2;

int y = (getHeight() - length) / 2;

int angle = 360 / sides;

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

g2d.drawLine(x, y, x + length, y);

x += length;

g2d.rotate(angle);

}

}

public static void main(String[] args) {

JFrame frame = new JFrame("Draw a Regular Polygon");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(new PolygonExample());

frame.setSize(400, 400);

frame.setVisible(true);

}

}

```

C++ 使用 SFML 库

```cpp

include

include

int main() {

sf::RenderWindow window(sf::VideoMode(800, 600), "Regular Polygon");

sf::VertexArray polygon(sf::Points, 5);

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

polygon[i].position = sf::Vector2f(400 * i / 5 + 400 / 2, 300 - 300 * i / 5);

}

while (window.isOpen()) {

sf::Event event;

while (window.pollEvent(event)) {

if (event.type == sf::Event::Closed)

window.close();

}

window.clear();

window.draw(polygon);

window.display();

}

return 0;

}

```

JavaScript 使用 p5.js 库

```javascript

function setup() {

createCanvas(400, 400);

}

function draw() {

background(220);

let sides = 5;

let length = 100;

let angle = 360 / sides;

for (let i = 0; i < sides; i++) {

line(width / 2, height / 2, width / 2 + length * cos(i * angle * radians), height / 2 + length * sin(i * angle * radians));

}

}

```

这些示例展示了如何使用不同的编程语言和库来绘制正多边形。你可以根据自己的需求和熟悉程度选择合适的工具。