绘制满天星(100颗)最简单的python代码
时间: 2023-10-10 19:14:17 浏览: 128
以下是绘制100颗满天星的Python代码示例:
```python
import turtle
turtle.speed(0)
for i in range(100):
turtle.penup()
turtle.goto((i%10)*50, (i//10)*50) #计算每颗星的位置
turtle.pendown()
turtle.begin_fill()
for j in range(5): #绘制五角星
turtle.forward(40)
turtle.right(144)
turtle.end_fill()
turtle.hideturtle() #隐藏画笔
turtle.done()
```
需要用到turtle库,可以在Python中自带,用于绘制图形。通过循环计算100颗星的位置并调用turtle绘制五角星,最后隐藏画笔,绘制完成。
相关问题
绘制黑色背景的满天星(100颗)的python代码
以下是绘制黑色背景的满天星的Python代码:
```python
import turtle
# 设置画布大小和背景颜色
turtle.setup(width=600, height=600)
turtle.bgcolor('black')
# 定义绘制星星的函数
def draw_star(x, y, color, size):
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
turtle.color(color)
turtle.begin_fill()
for i in range(5):
turtle.forward(size)
turtle.right(144)
turtle.end_fill()
# 绘制100颗星星
for i in range(100):
# 随机生成星星的坐标、颜色和大小
x = random.randint(-300, 300)
y = random.randint(-300, 300)
color = random.choice(['white', 'red', 'yellow', 'blue'])
size = random.randint(10, 30)
# 调用绘制星星的函数
draw_star(x, y, color, size)
# 隐藏画笔
turtle.hideturtle()
turtle.done()
```
此代码使用turtle模块绘制100颗大小、颜色、位置均随机的星星,背景为黑色。
绘制满天星Python
以下是绘制满天星的Python代码,具体实现过程请参考注释:
```python
import random as ra
import tkinter as tk
# 创建画布
canvas = tk.Canvas(width=1200, height=800, bg='black')
canvas.pack()
# 定义星星类
class Star():
# 初始化
def __init__(self):
self.r = 1 # 星星的初始大小
self.x = ra.randint(-1000, 1000) # 星星在画布中的x坐标位置
self.y = ra.randint(-500, 500) # 星星在画布中的y坐标位置
self.c = ra.choice(colors) # 在星星的颜色列表中随机选择一个颜色
# 绘制星星
def draw(self):
canvas.create_oval(self.x - self.r, self.y - self.r, self.x + self.r, self.y + self.r, fill=self.c)
# 星星闪烁
def twinkle(self):
self.r += ra.randint(-1,1) # 星星大小随机变化
if self.r <= 0:
self.r = 1
if self.r >= 5:
self.r = 4
self.c = ra.choice(colors) # 星星颜色随机变化
# 定义颜色列表
colors = ['white', 'yellow', 'red', 'blue', 'green', 'purple', 'orange']
# 创建星星列表
stars = []
for i in range(200):
stars.append(Star())
# 绘制满天星
while True:
for star in stars:
star.draw()
star.twinkle()
canvas.update()
canvas.after(50)
canvas.delete('all')
```