用python画梵高星空
时间: 2023-06-30 19:14:16 浏览: 520
好的,我可以为你提供一些绘制梵高星空的Python代码。首先,你需要安装Pillow库来处理图像。以下是一个简单的示例代码:
```python
from PIL import Image, ImageDraw
import random
# 设置画布大小和背景颜色
width, height = 500, 500
background_color = (0, 0, 50)
# 创建画布
image = Image.new("RGB", (width, height), background_color)
draw = ImageDraw.Draw(image)
# 设置星星颜色和数量
star_color = (255, 255, 150)
num_stars = 2000
# 绘制星空
for i in range(num_stars):
x = random.randint(0, width)
y = random.randint(0, height)
size = random.randint(1, 3)
draw.ellipse((x, y, x + size, y + size), fill=star_color)
# 显示图片
image.show()
```
这段代码会以指定的尺寸和背景颜色创建一个画布,并在随机位置绘制指定数量的星星。你可以自己调整参数来达到更好的效果。在代码中,我使用的是黄色的星星,你可以根据梵高星空的颜色来调整颜色值。
相关问题
用python画梵高星空的代码
以下是用Python绘制梵高星空的代码:
```python
import turtle
import random
# 设置画布大小和背景颜色
turtle.setup(800, 600)
turtle.bgcolor("#000000")
# 定义星星的颜色和大小
colors = ["#FFFFFF", "#FFFF00", "#FF00FF", "#00FFFF"]
sizes = [1, 2, 3]
# 定义绘制星星的函数
def draw_star(x, y):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.color(random.choice(colors))
turtle.begin_fill()
size = random.choice(sizes)
for i in range(5):
turtle.forward(size * 10)
turtle.right(144)
turtle.end_fill()
# 绘制星空
for i in range(200):
x = random.randint(-400, 400)
y = random.randint(-300, 300)
draw_star(x, y)
# 隐藏画笔
turtle.hideturtle()
# 显示绘图窗口
turtle.done()
```
python用海龟画一张梵高的星空
好的,让我来为您展示如何用 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()
```
运行此程序,您将得到类似梵高的星空画。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)