python用海龟画一张梵高的星空
时间: 2023-05-23 10:06:24 浏览: 466
好的,让我来为您展示如何用 Python 的海龟库画一张类似梵高的星空画。
首先,我们需要导入 turtle 和 random 库。
``` python
import turtle
import random
```
接下来,我们创建画布并设置窗口大小:
``` python
canvas = turtle.Screen()
canvas.bgcolor("black")
canvas.setup(width=800, height=600)
```
然后,我们设置海龟对象并隐藏它的位置:
``` python
t = turtle.Turtle()
t.hideturtle()
```
下一步是我们要绘制星空的背景。我们使用一个循环来绘制许多随机分布的点。我们将在随机的位置绘制圆形,每个圆的大小和颜色也是随机的。
``` python
for i in range(100):
# 随机设定绘制圆形的位置
x = random.randint(-400, 400)
y = random.randint(-300, 300)
# 随机设定圆形的半径和颜色
radius = random.randint(1, 5)
color = random.choice(["white", "yellow", "red", "blue", "green"])
# 绘制圆形
t.penup()
t.goto(x, y)
t.dot(radius*2, color)
```
最后,我们将使用海龟来绘制星空中的星星。我们将使用另一个循环遍历一百个星星。每个星星将随机地在画布上一个随机的位置,它的尺寸也是随机的,颜色随机设定为白色或黄色。
``` python
for i in range(100):
# 随机设定绘制星星的位置
x = random.randint(-400, 400)
y = random.randint(-300, 300)
# 随机设定星星的大小和颜色
size = random.randint(5, 20)
color = random.choice(["white", "yellow"])
# 绘制海星形状
t.penup()
t.goto(x, y)
t.begin_fill()
for i in range(5):
t.forward(size)
t.right(144)
t.end_fill()
# 画笔退回起始位置
t.penup()
t.goto(0, 0)
t.left(90)
# 完成绘制,显示画布
turtle.done()
```
最终的完整代码如下:
``` python
import turtle
import random
canvas = turtle.Screen()
canvas.bgcolor("black")
canvas.setup(width=800, height=600)
t = turtle.Turtle()
t.hideturtle()
for i in range(100):
# 随机设定绘制圆形的位置
x = random.randint(-400, 400)
y = random.randint(-300, 300)
# 随机设定圆形的半径和颜色
radius = random.randint(1, 5)
color = random.choice(["white", "yellow", "red", "blue", "green"])
# 绘制圆形
t.penup()
t.goto(x, y)
t.dot(radius*2, color)
for i in range(100):
# 随机设定绘制星星的位置
x = random.randint(-400, 400)
y = random.randint(-300, 300)
# 随机设定星星的大小和颜色
size = random.randint(5, 20)
color = random.choice(["white", "yellow"])
# 绘制海星形状
t.penup()
t.goto(x, y)
t.begin_fill()
for i in range(5):
t.forward(size)
t.right(144)
t.end_fill()
# 画笔退回起始位置
t.penup()
t.goto(0, 0)
t.left(90)
# 完成绘制,显示画布
turtle.done()
```
运行此程序,您将得到类似梵高的星空画。
阅读全文