用python的turtle写一个五星红旗
时间: 2024-09-24 22:08:25 浏览: 36
当然可以。在Python中,我们可以利用Turtle模块创建一个简单的五星红旗图案。以下是一个基础的示例,我们主要画出五星和红色背景:
```python
import turtle
# 设置颜色和速度
turtle.bgcolor("red")
turtle.speed(0) # 设置最快的速度
def draw_star(size):
for _ in range(5): # 五角星有5条边
turtle.forward(size)
turtle.right(72)
# 绘制五星
turtle.penup()
turtle.goto(-40, -30) # 第一颗星的位置
turtle.pendown()
draw_star(80)
turtle.penup()
turtle.goto(0, -30)
turtle.pendown()
draw_star(60)
turtle.penup()
turtle.goto(40, -30)
turtle.pendown()
draw_star(40)
turtle.penup()
turtle.goto(-10, -10)
turtle.pendown()
draw_star(20)
turtle.penup()
turtle.goto(10, -10)
turtle.pendown()
draw_star(20)
turtle.done() # 等待用户关闭窗口
相关问题
用python turtle画一面五星红旗
以下是用 Python Turtle 模块绘制五星红旗的代码:
```python
import turtle
# 设置画布大小
turtle.setup(600, 400)
# 画红色背景
turtle.penup()
turtle.goto(-250, 150)
turtle.pendown()
turtle.color("red")
turtle.begin_fill()
for i in range(2):
turtle.forward(500)
turtle.right(90)
turtle.forward(300)
turtle.right(90)
turtle.end_fill()
# 画大星星
turtle.penup()
turtle.goto(-190, 70)
turtle.pendown()
turtle.color("yellow")
turtle.begin_fill()
for i in range(5):
turtle.forward(80)
turtle.right(144)
turtle.end_fill()
# 画四个小星星
turtle.penup()
turtle.goto(-100, 120)
turtle.pendown()
turtle.begin_fill()
for i in range(5):
turtle.forward(30)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(-70, 70)
turtle.pendown()
turtle.begin_fill()
for i in range(5):
turtle.forward(30)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(-70, 20)
turtle.pendown()
turtle.begin_fill()
for i in range(5):
turtle.forward(30)
turtle.right(144)
turtle.end_fill()
turtle.penup()
turtle.goto(-100, -10)
turtle.pendown()
turtle.begin_fill()
for i in range(5):
turtle.forward(30)
turtle.right(144)
turtle.end_fill()
# 隐藏画笔
turtle.hideturtle()
turtle.done()
```
代码中,我们使用了 Turtle 模块提供的函数,如 `penup()`(抬起画笔)、`pendown()`(放下画笔)、`forward()`(向前移动)、`right()`(向右转)等,来完成五星红旗的绘制。具体实现过程如下:
1. 设置画布大小为 600x400。
2. 用 `goto()` 函数将画笔移动到左上角 (-250, 150),然后绘制一个红色矩形填充整个画布。
3. 用 `goto()` 函数将画笔移动到大星星左上角 (-190, 70),然后绘制一个黄色五角星填充。
4. 用 `goto()` 函数分别将画笔移动到四个小星星的左上角,然后绘制四个黄色五角星填充。
5. 最后,使用 `hideturtle()` 函数隐藏画笔,使得画布上只显示绘制的图形。
运行代码后,将会得到一面五星红旗,如下图所示:
![五星红旗](https://img-blog.csdnimg.cn/20210709164121109.png)
用python 的turtle库绘制五星红旗
好的,下面是用 Python 的 turtle 库绘制五星红旗的代码:
```python
import turtle
# 设置画布大小
screen = turtle.Screen()
screen.setup(800, 500)
# 画红色背景
turtle.penup()
turtle.goto(-400, 250)
turtle.pendown()
turtle.begin_fill()
turtle.color("red")
for i in range(2):
turtle.forward(800)
turtle.right(90)
turtle.forward(500)
turtle.right(90)
turtle.end_fill()
# 画大星星
turtle.penup()
turtle.goto(-280, 120)
turtle.pendown()
turtle.begin_fill()
turtle.color("yellow")
for i in range(5):
turtle.forward(100)
turtle.right(144)
turtle.end_fill()
# 画四个小星星
positions = [(0, 135), (-40, 85), (40, 85), (-40, 35)]
turtle.penup()
turtle.color("yellow")
for position in positions:
turtle.goto(position)
turtle.pendown()
turtle.begin_fill()
for i in range(5):
turtle.forward(20)
turtle.right(144)
turtle.end_fill()
# 隐藏画笔
turtle.hideturtle()
# 程序结束,持续显示
turtle.done()
```
运行代码后,就能看到绘制的五星红旗了。如果需要保存图片,可以使用 turtle 库提供的 `getcanvas()` 方法,将画布转换成 tkinter 的 Canvas 对象,再使用 Canvas 对象的 `postscript()` 方法保存成 PS 或 EPS 格式的图片。示例代码如下:
```python
# 保存为 EPS 格式图片
canvas = turtle.getcanvas()
canvas.postscript(file="五星红旗.eps")
```
阅读全文