1 问题
如何利用python实现星空模拟?
2 方法
1、Turtle画板
Turtle的画板大小可以用turtle.screensize()函数来设置turtle.screensize(width,height,bg):设置画板的大小,包含长和宽,width为宽,height为高,bg为画布颜色
2、Turtle画笔
①turtle.penup():抬起画笔,此时移动画笔不会在画布上留下痕迹哦
②turtle.pendown():放下画笔,与turtle.penup相对应,放下画笔后就可以继续画画了(放下画笔后画画会在画布上留下痕迹)
③turtle.pensize():控制画笔的大小(可以根据需求自行定义画笔的大小哦)
④turtle.pencolor():控制画笔的颜色(可以自己在网上查阅所有python可以使用的颜色,python里面可以用的颜色有很多的哦)
⑤turtle.hideturtle():隐藏画笔(隐藏画笔以后画图时画笔就看不到了)
3、Turtle画图
①turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)
②turtle.backward(x):将画笔向后退x个像素(x可以理解为距离)
③turtle.left(n):将画笔向左旋转n度
④turtle.right(n):将画笔向右旋转n度
⑤turtle.speed():设置画笔画图的速度(1~10递增,0最快)
4、Turtle填色
turtle.beginfill() #开始填充
turtle.fillcolor() #输入填充的颜色
turtle.endfill() #结束填充
代码清单 1
代码语言:txt复制import turtle as tu
import random as ra
width ,height = 800,600
tu.setup(width,height)
tu.title("3D星空")
tu.bgcolor("black")
tu.delay(0)
t=tu.Turtle(visible=False,shape='circle')
t.pencolor("white")
t.fillcolor("white")
t.penup()
t.goto(ra.randint(width/2,width),ra.randint(-height/2,height/2))
stars = []
for i in range(99):
star=t.clone()
s=ra.uniform(0,1)/3
star.shapesize(s,s)
star.speed(ra.randint(2,5))
star.setx(ra.randint(width/2,width))
star.sety(ra.randint(-height/2,height/2))
star.showturtle()
stars.append(star)
while True:
for star in stars:
star.setx(star.xcor()-star.speed())
if star.xcor()<-width/2:
star.hideturtle()
star.setx(ra.randint(width/2,width))
star.sety(ra.randint(-height/2,height/2))
star.showturtle()
3 结语