用Python画一个星空

1 问题

如何用Python画一个简单的星空?

2 方法

在Python中有着各种各样的工具包,比如math、pillow、requests等等,每个包有着自己专门的功能。要用python画星空,在绘制星空的过程中一般需要运用到turtle工具,它是属于Python的标准库,当然也可以将其称之为海龟库,它能够用于描绘绘图的轨迹,并且操作也比较简单、便捷。

6cd2b141fb63da146794b604b8d80bd5.png

代码清单 1

from turtle import *
from random import random,randint
screen = Screen()
width ,height = 800,600
screen.setup(width,height)
screen.title("模拟3D星空")
screen.bgcolor("black")
screen.mode("logo")
screen.delay(0)#这里要设为0,否则很卡
t = Turtle(visible = False,shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
t.setheading(-90)
t.goto(width/2,randint(-height/2,height/2))
stars = []
for i in range(200):
   star = t.clone()
   s =random() /3
   star.shapesize(s,s)
   star.speed(int(s*10))
   star.setx(width/2 + randint(1,width))
   star.sety( randint(-height/2,height/2))
   star.showturtle()
   stars.append(star)
while True:
   for star in stars:
       star.setx(star.xcor() - 3 * star.speed())
   if star.xcor()<-width/2:
       star.hideturtle()
       star.setx(width/2 + randint(1,width))
       star.sety( randint(-height/2,height/2))
       star.showturtle()

3 结语

针对用Python画一个简单星空的问题,提出使用Python中的turtle工具包的方法,通过实验,证明该方法是有效的,此方法简单易行,但仍有不足或考虑不周的地方,未来可以继续研究更高级算法。