用python画梵高星空的代码
时间: 2023-11-12 08:57:46 浏览: 168
以下是用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代码。首先,你需要安装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可以通过结合matplotlib库和其他艺术相关的模块来绘制星空效果,模拟梵高的风格通常需要一些艺术化处理和颜色处理技巧。下面是一个简单的例子,展示如何用Python和matplotlib创建一个抽象的、梵高风格的星空画面:
```python
import matplotlib.pyplot as plt
from random import randint
import numpy as np
def梵高星空(width=500, height=500):
# 创建画布
fig, ax = plt.subplots(figsize=(width, height))
# 设置背景色
ax.set_facecolor((np.random.uniform(0.4, 0.6), np.random.uniform(0.4, 0.6), np.random.uniform(0.4, 0.6)))
# 添加点状星体
stars = [(randint(0, width), randint(0, height)) for _ in range(randint(100, 200))]
for x, y in stars:
star_size = randint(1, 10)
plt.scatter(x, y, s=star_size, c=(randint(80, 255), randint(80, 255), randint(80, 255)), edgecolors='black')
# 模拟梵高笔触
for i in range(10):
brush_stroke_width = np.random.randint(1, 5)
brush_stroke_length = np.random.randint(brush_stroke_width, width // 2)
start_x = np.random.randint(0, width - brush_stroke_length)
start_y = np.random.randint(0, height - brush_stroke_length)
for j in range(start_y, start_y + brush_stroke_length):
for k in range(start_x, start_x + brush_stroke_width):
if (k, j) not in stars:
plt.plot([k, k], [j, j + brush_stroke_width], color=(np.random.randint(80, 255), np.random.randint(80, 255), np.random.randint(80, 255)))
# 显示图像
plt.title("星空梵高风格")
plt.axis('off')
plt.show()
# 调用函数生成星空图
梵高星空()
```
请注意这只是一个基本的示例,实际的梵高风格会更复杂,可能涉及颜色渐变、厚涂等技术。如果你想要更加接近梵高的作品,可能需要借助其他专门的艺术库,如Pillow或skimage。
阅读全文