用python画星空

人气:226 ℃/2023-01-16 13:01:30

用python画星空是怎样的呢?下面就让我们一起来了解一下吧:

在绘制星空的过程中一般需要运用到turtle工具,它是属于Python的标准库,当然也可以将其称之为海龟库,它能够用于描绘绘图的轨迹,并且操作也比较简单、便捷。

参考范例:

用python画星空的源代码介绍如下:

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()

以上就是小编的分享了,希望能够帮助到大家。

用python画星空的代码简单

python3的turtle画模仿3d星空、运动的恒星小宇宙

1.宇宙

2.代码实现条件

python3

3.第1步:

#---第1步---导入模块---from turtle import *from random import random,randint

4.第2步:

#---第2步---初始化定义---#---定义屏幕,窗口大小,标题,背景颜色screen = Screen()#---大一点效果好一点---width ,height = 1600,1200screen.setup(width,height)screen.title('浪漫星空')screen.bgcolor("black")#设置或返回以毫秒为单位的绘制延迟,延迟越大,绘图越慢screen.delay(0)

5.第3步:

#---第3步---定义3种不同颜色的星球,大小、速度、位置、形状不同---#shape():设置乌龟的图形形状,取值:“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”#---星球---白色星星---t = Turtle(visible = False,shape='circle')t.pencolor("white")#海龟的颜色,也就是飞动的星球的颜色t.fillcolor("blue")t.penup()#旋转角度t.setheading(-10)#坐标是随机的t.goto(width/2,randint(-height/2,height/2))#---星球2---绿色远处小星星---t2 = Turtle(visible = False,shape='turtle')#海龟的颜色,也就是飞动的星球的颜色t2.fillcolor("green")t2.penup()t2.setheading(-50)#坐标是随机的t2.goto(width,randint(-height,height))#---星球3---近的红色恒星---t3 = Turtle(visible = False,shape='circle')#海龟的颜色,也就是飞动的星球的颜色t3.fillcolor("red")t3.penup()t3.setheading(-90)#坐标是随机的t3.goto(width*2,randint(-height*2,height*2))

6.第4步:

#---第4步---定义星球列表---用于存放---stars = []stars2 = []stars3 = []

7.第5步:

#---第5步---定义3种星球的大小、速度、位置并存放各自列表中---#---注意200为画200个各自星球就退出,注意太多了要卡死的---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)for i in range(200): star2 = t2.clone() #决定星球的大小 s2= random()/2 star2.shapesize(s2,s2) star2.speed(int(s*10)) star2.setx(width/2 randint(1,width)) star2.sety(randint(-height/2,height/2)) star2.showturtle() stars2.append(star2)for i in range(200): star3 = t3.clone() #决定星球的大小 s3= random()*5 star3.shapesize(10*s3,10*s3) star3.speed(int(s3*10)) star3.setx(width*2 randint(1,width)) star3.sety(randint(-height*2,height*2)) star3.showturtle() stars3.append(star3)

8.第6步:

#---第6步---游戏循环---各自星球的启动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() for star2 in stars2: star2.setx(star2.xcor() - 3 * star2.speed()) if star2.xcor()<-width/2: star2.hideturtle() star2.setx(width/2 randint(1,width)) star2.sety( randint(-height/2,height*2)) star2.showturtle() for star3 in stars3: star3.setx(star3.xcor() - 3 * star3.speed()) if star3.xcor()<-width*2: star3.hideturtle() star3.setx(width*2 randint(1,width)) star3.sety( randint(-height*2,height*2)) star3.showturtle()

9.效果图

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.