模拟星空

古往今来,人们对于星空有着独特的喜爱。遥看那漫天的星斗,像黑夜里眨动的眼睛,又像一颗颗光闪闪、亮晶晶的夜明珠,更像在无边海洋上闪动着的点点银光,无不令人神往。

在这节课上,我们将自己动手,绘制一颗颗小星星,并使其在行空板屏幕上随机飘动,模拟一个动态的浩瀚星空。

任务目标

在屏幕上绘制一颗颗小星星并使其飘动。

知识点

1、认识turtle库

2、学习使用turtle库绘制星星的方法

3、学习使用turtle库使星星随机出现并飘动的方法

材料清单

软件使用:Mind+编程软件x1

知识储备

1、什么是turtle库

turtle库,又称海龟绘图库,它是Python语言中一个很流行的绘制图像的函数库。它的原理是利用画笔移动的路径来生成图形。我们可以借助turtle库来实现在屏幕上绘制图形,如矩形、圆、五角星等。

2、turtle库通用知识

(1) turtle空间坐标体系

(A)绝对坐标

以屏幕中间为原点(0,0),形成四象限的坐标体系。

(B)海龟坐标

是以海龟的视角的坐标体系,分为四个方向。

(2) 画布

画布(Canvas),我们可以理解为一张白纸,在上面能画出不同形状、颜色、粗细的图形。海龟每次绘制的图形都是显示在一张自动生成的画布上的。画布的默认大小为(400,300),其中400是指长度的像素值,300是指宽度的像素值。对于画布,我们可以设置它的大小和初始位置,也可以把画布看成一个坐标系,小海龟每次移动都是从坐标原点(0,0)出发的。

(3)海龟绘图三要素

海龟绘图有三个关键要素,即方向、位置和画笔。在进行海龟绘图时,主要就是控制这些要素来绘出我们想要的图形。

其中,方向主要用于控制海龟的移动方向。位置主要用于控制海龟移动的距离。而画笔主要承担画图工具的作用。在海龟绘图中,通过画笔可以控制线条的粗细、颜色和运动的速度等。

3、turtle库屏幕控制的常见函数

turtle库中关于屏幕控制的函数有很多,我们只使用其中的一部分,编程时,通过“import turtle”导入库后可采用“turtle.函数名()”的形式来实现功能。Tips :这里的函数都来自于TurtleScreen类中的方法。

(1)setup()函数设置绘图窗口(画布)的大小和位置

通过setup()函数我们可为当前的窗口屏幕设置大小和位置,设定的参数为整数时,单位为像素,不输入参数则表示默认。

turtle.setup(240,320) # 设置绘图窗口大小

其中,240和320分别指的是窗口的宽度和高度,与行空板的屏幕分辨率相同。

(2)bgpic()函数设置屏幕的背景图片

通过bgpic()函数我们可为当前的窗口屏幕设置背景图片。

turtle.bgpic(“123.png”) # 设置背景图

其中,“123.png”指的是具体的背景图,为了使显示效果更加,我们可调整其尺寸大小与屏幕一致。

(3)tracer()函数设置动画的打开或关闭

通过tracer()函数我们可自行设定绘图动画的打开或关闭。当我们想将图形一次性绘好,而不显示绘制过程,则可选择关闭动画。

turtle.tracer(True) # 打开绘图动画

turtle.tracer(False) # 关闭绘图动画

其中,“True”和“False”分别指的是绘图轨迹动画的打开和关闭。

(4)delay()函数设置绘图延迟

通过delay()函数我们可为当前的窗口屏幕设置绘图延迟,单位为毫秒。绘制延迟越长,绘图动画越慢,设为0可以避免卡顿。

turtle.delay(0) # 设置背景图

其中,“0”指的是画布上绘图延迟的具体时间。

4、turtle库画笔运动的常见函数

turtle库中关于画笔运动的函数有很多,我们只使用其中的一部分,在编程时,可采用“turtle.函数名()”的形式来实现功能。Tips :这里的函数都来自于Turtle类中的方法。

(1)forward()函数控制画笔向前移动指定距离

通过forward()函数我们可使画笔向前移动,继而绘制出线条。

turtle.forward(100) # 向前移动100像素

其中,“100”指的是具体的像素值,可通过改变像素值来改变线条的长度。同样地,我们也可以通过“backward()”函数来使画笔向后移动来绘制线条。

(2)left()函数控制画笔向左转动指定角度

画笔的初始朝向为向右,我们可通过left()函数来改变画笔的朝向。

turtle.left(90) # 向左转动90度

其中,“90”指的是具体的角度值,可通过改变角度值来改变朝向方位。同样地,我们也可以通过“right()”函数来使画笔向右转动。

(3)goto()函数控制画笔移动到指定坐标位

turtle.goto(110,120) # 移动到(110,120)坐标位

其中,“110”指的是所要移动到的位置的横坐标,“120”指的是相应的纵坐标,可通过改变横纵坐标来改变移动到的位置。同样地,我们也可以通过“set(x)”和“set(y)”两个函数来单独设置海龟画笔的横纵坐标。

(4)speed()函数设置画笔移动的速度

画笔的移动速度,可通过0-10范围内的整数值来进行设定。

“最快”:0

“快速”:10

“正常”:6

“慢”:3

“最慢”:1

从 1 到 10 的速度使线条绘制和转弯的动画速度越来越快。速度 = 0 表示不发生动画。前进/后退时呈现跳跃的效果,左右转时呈现立即转身的效果。

turtle.speed(0) # 设置画笔移动速度为最快

(5)clone()函数克隆画笔对象

在生成一个画笔对象后,我们可通过clone()函数实现对该对象的克隆。

tt = turtle.Turtle(shape =“turtle”) # 实例化Turtle类,创建对象,形状为海龟

star = tt.clone() # 克隆

这里,我们手动创建了一个形状为海龟的画笔对象,之后通过clone()函数对其进行克隆操作,并存储到变量star中。

Tips:turtle库中的画笔对象默认是存在的,且为海龟形状,当我们需要额外生成一些画笔并设定其形状时,可通过实例化Turtle类的方式实现,如上。

5、turtle库画笔控制的常见函数

turtle库中关于画笔控制的函数有很多,我们只使用其中的一部分,在编程时,可采用“turtle.函数名()”的形式来实现功能。

(1)shape()函数显示形状

通过shape()函数我们可使画笔显示成各种不同的形状,如海龟状(turtle)、圆形(circle)、箭头状(arrow)等,这些是turtle库形状列表中自带的,当然,我们也可通过自己手动绘制的方式将图形存入形状列表继而显示出来。

turtle.shape(“turtle”) # 显示海龟形状

其中,“turtle”指的是具体的海龟形状,可通过改变引号内的参数来改变实际的形状。

Tips:我们可通过“getshape()”函数来获取turtle库形状列表中所有的形状。

(2)register_shape()函数注册形状

通过register_shape()函数我们可注册形状,将非自带的图形添加到形状列表中。

turtle.register_shape(“tt”,shape) # 显示海龟形状

其中,“tt”指的是要添加到列表中形状的名称,“shape”指的是具体要添加的形状。

(3)begin_poly()、end_poly()、get_poly()函数记录形状

要想将绘制的图形作为一个形状存储到形状列表中,我们需要记录所绘制图形的顶点。编程时,我们需在开始绘制图形前通过“begin_poly()”函数来启动顶点的记录,之后在绘制完成后通过“end_poly()”来结束记录,最后,再通过“get_poly()”函数来返回获取记录的图形。

turtle.begin_poly() # 开始记录多边形顶点

for i in range(5): # 循环五次

turtle.forward(15) # 前进15像素turtle.right(144) # 右转144度

turtle.end_poly() # 结束记录

shape = turtle.get_poly() # 返回记录的多边形

turtle.register_shape(“tt”,shape) # 将绘制的多边形添加到形状列表中

这里,我们通过“begin_poly()”、“end_poly()”、“get_poly()”三个函数实现了对于所绘制的五角星的顶点的记录,并将这个五角星保存为基础形状,存储到了形状列表中。

(4)hideturtle()函数隐藏画笔

shape()函数可使画笔显示各种不同的形状,而当我们不想见到它时,我们可通过“hideturtle()”函数使其隐藏。

turtle.hideturtle() # 隐藏海龟画笔

同样地,我们也可通过“showturtle()”函数使画笔再显现出来。

(5)penup()函数抬起画笔

penup()函数可使画笔抬起,从而在移动时不绘制图形。

turtle.penup() # 抬起画笔

同样地,如果我们需要在画笔移动时绘制图形,可通过“pendown()”来使画笔落下。

(6)pencolor()函数设置画笔的颜色

移动画笔绘图时默认的颜色为黑,pencolor()函数可设置画笔的颜色,继而改变所绘制图形的颜色。

turtle.pencolor(“red”) # 设置画笔颜色为red

其中,“red”指的是具体的颜色,这里的颜色同样可以通过RGB值、十六进制值、固定值三种不同的方式来表示。

(7)fillcolor()、begin_fill()、end_fill()函数填充图形颜色

pencolor()函数只能设置画笔的颜色,而要想对于所绘制图形增加填充色,我们需要先通过“fillcolor()”函数设置好要填充的颜色,之后再在开始绘制图形前通过“begin_fill()”函数来启动填充,最后在绘制完成后通过“end_fill()”函数来结束填充。

turtle.fillcolor(“red”) # 设置填充颜色为red

turtle.begin_fill() # 开始记录多边形顶点

for i in range(5): # 循环五次

turtle.forward(15) # 前进15像素turtle.right(144) # 右转144度

turtle.end_fill() # 结束记录

这里,我们通过“fillcolor()”、“begin_fill()”、“end_fill()”三个函数实现了对绘制的五角星进行红色的填充。

(8)xcor()、ycor()函数检测获取画笔的横纵坐标

对于画笔当前的坐标位置,我们可通过“xcor()”、“ycor()”函数来进行检测。

x = turtle.xcor() # 检测画笔所在位置的横坐标

y = turtle.ycor() # 检测画笔所在位置的纵坐标

其中,“x”和“y”分别是两个变量,用来存储检测到的画笔当前的横纵坐标位。

(9)done()函数结束绘图并保持窗口

在图形绘制完成后,我们可通过done()函数来结束绘图,并且保持绘图窗口。

turtle.done() # 结束绘图,保持窗口不关闭

这里,done()函数的使用必须是海龟图形程序的最后一句。

动手实践

任务描述1:绘制星星

将通过turtle库绘制的一颗星星显示在屏幕上。

1、硬件搭建

通过USB连接线将行空板连接到计算机

2、程序编写

STEP1:创建与保存项目文件

启动Mind+,另存项目并命名为“004、模拟星空”。

STEP2:创建与保存Python文件

创建一个Python程序文件“main1.py”,双击打开。

STEP3:导入图片

在项目文件夹中导入背景图。(图片与程序文件同在项目文件夹中)(图片下载链接见附录1)

STEP4:程序编写

(1) 导入所需功能库

在这个任务中,我们需要使用turtle库来绘制星星,因此,我们须先导入它。

import turtle #导入海龟绘图库

(2) 创建绘图窗口

为了能使行空板的屏幕与绘图时的画布保持大小一致,我们需要手动创建一块固定尺寸的画布作为绘图窗口,并在其中导入一张背景图,再设置好绘画延迟。

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(8) # 设置绘画延迟(以毫秒为单位),绘制延迟越长,动画越慢

(3) 创建画笔并设置绘图参数

之后,我们创建一个海龟画笔,并将它隐藏,使其在绘图时不显示,再设置好它的移动速度、画笔颜色、填充颜色等几个绘图相关参数。

创建海龟画笔并设定相关参数

t = turtle.Turtle() # 实例化Turtle类,创建一个海龟对象作为画笔

t.hideturtle() # 隐藏海龟画笔

t.speed(0) # 设置海龟画笔移动速度

t.pencolor(“white”) # 设置画笔颜色

t.fillcolor(“white”) # 设置填充颜色

(4) 绘制星星

接下来,我们就可以随心所欲得绘制星星了,具体步骤如下。

t.pendown() # 落笔,画笔移动时绘制图形

t.begin_fill() # 开始填充

绘制过程

for i in range(5): # 循环五次

t.forward(30) # 前进30像素t.right(144) # 右转144度

t.end_fill() # 结束填充

t.penup() # 抬起画笔

turtle.done() # 结束绘图

Tips:完整示例程序如下:

向上滑动阅览

绘制一颗小星星

import turtle # 导入海龟库

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(8) # 设置绘画延迟(以毫秒为单位),绘制延迟越长,动画越慢,设为0避免卡顿

创建海龟画笔并设定相关参数

t = turtle.Turtle() # 实例化Turtle类,创建一个海龟对象作为画笔

t.hideturtle() # 隐藏海龟画笔

t.speed(0) # 设置海龟画笔移动速度

t.pencolor(“white”) # 设置画笔颜色

t.fillcolor(“white”) # 设置填充颜色

t.pendown() # 落笔,画笔移动时绘制图形

t.begin_fill() # 开始填充

绘制xingxing过程

for i in range(5): # 循环五次

t.forward(30) # 前进30像素t.right(144) # 右转144度

t.end_fill() # 结束填充

t.penup() # 抬起画笔

turtle.done() # 结束绘图

3、程序运行

STEP1:远程连接行空板

STEP2:点击右上方的运行按钮

STEP3:观察效果

观察行空板,首先可以看到一幅浩渺无边的银河背景图,之后,一颗白色的五角星渐渐显示在屏幕中间。

任务描述2:绘制星空

在成功绘制出一颗星星后,我们将借助这种方法,快速地在屏幕任意位置上重复绘制多颗星星。

1、程序编写

STEP1:创建与保存项目文件

新建一个Python程序文件“main2.py”,双击打开。

STEP2:程序编写

(1)导入所需功能库

这里,由于将使星星随机出现,因此,我们需要额外导入random随机数库。

import turtle # 导入海龟库

import random # 导入随机数dandom库

(2)创建绘图窗口

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(8) # 绘画延迟,设为0避免卡顿

(3)创建Star类

这里,我们通过创建星星类再实例化的方式来在随机位置上先后绘制多颗星星以呈现星星随机出现的效果。整理上,我们先设定画笔的基本属性,之后绘制单颗星星,最后重复同样的过程10次实现星空的绘制。因此,在构造方法中,我们先设定海龟画笔,使其处于隐藏状态,并且移动速度最快,之后调用后续绘制星空的实例方法来实现需求。

定义一个Star类

class Star(turtle.Turtle):

def __init__(self):turtle.Turtle.__init__(self) # 解绑Star类中的方法,使其也拥有Turtle类中的方法self.hideturtle() # 隐藏海龟画笔self.speed(0) # 设置画笔移动速度self.draw_stars() # 绘制整个星空

(4)绘制单颗星星

之后,我们创建一个实例方法,来绘制单颗星星,具体过程如下。

def draw_star(self): # 绘制一颗星星

    self.pencolor("white") # 设置画笔颜色self.fillcolor("white") # 设置填充颜色self.pendown() # 落笔,画笔移动时绘制图形self.begin_fill() # 开始填充# 绘制过程for i in range(5): # 循环五次self.forward(20) # 前进20像素self.right(144) # 右转144度self.end_fill() # 结束填充self.penup() # 抬起画笔

(5)绘制星空

接着,我们再通过创建实例方法来绘制十颗星星并使其随机出现在屏幕上,具体过程如下。

def draw_stars(self): # 绘制整个星空

    self.penup() # 抬起画笔# 绘制过程for i in range(10): # 循环10次,绘制10颗x=random.randint(-120,120) # 设定屏幕内随机的x坐标y=random.randint(-160,160) # 设定屏幕内随机的y坐标self.goto(x, y) # 走到初始位置self.draw_star() # 绘制单颗小星星self.end_fill() # 结束填充self.penup() # 抬起画笔

(6)实例化Star类,并结束绘图

最后,我们通过实例化Star类,来创建一个完整的星空。

Star() # 创建Star类的实例

turtle.done() # 结束绘图,保持窗口不关闭

Tips:完整示例程序如下:

向上滑动阅览

绘制小星星 ,并使其随机出现

import turtle # 导入海龟库

import random # 导入随机数dandom库

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(0) # 绘画延迟,设为0避免卡顿

定义一个Star类

class Star(turtle.Turtle):

def __init__(self):turtle.Turtle.__init__(self) # 解绑Star类中的方法,使其也拥有Turtle类中的方法self.hideturtle() # 隐藏海龟画笔self.speed(0) # 设置画笔移动速度self.draw_stars() # 绘制整个星空def draw_star(self): # 绘制一颗星星self.pencolor("white") # 设置画笔颜色self.fillcolor("white") # 设置填充颜色self.pendown() # 落笔,画笔移动时绘制图形self.begin_fill() # 开始填充# 绘制过程for i in range(5): # 循环五次self.forward(20) # 前进20像素self.right(144) # 右转144度self.end_fill() # 结束填充self.penup() # 抬起画笔def draw_stars(self): # 绘制整个星空self.penup() # 抬起画笔# 绘制过程for i in range(10): # 循环10次,绘制10颗x=random.randint(-120,120) # 设定屏幕内随机的x坐标y=random.randint(-160,160) # 设定屏幕内随机的y坐标self.goto(x, y) # 走到初始位置self.draw_star() # 绘制单颗小星星self.end_fill() # 结束填充self.penup() # 抬起画笔

Star() # 创建Star类的实例

turtle.done() # 结束绘图,保持窗口不关闭

2、程序运行

STEP1:远程连接行空板

STEP2:运行程序并观察效果

点击运行后,观察行空板,可以看到一颗颗小星星随机出现在屏幕上。

任务描述3:模拟动态星空

接下来,我们将使星星随机出现在屏幕的上方,之后缓缓飘落下来,模拟一个动态的星空。

1、程序编写

STEP1:创建与保存项目文件

新建一个Python程序文件“main3.py”,双击打开。

STEP2:程序编写

(1)导入所需功能库

import turtle # 导入turtle库

import random # 导入随机数dandom库

(2)创建绘图窗口

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(0) # 绘画延迟,设为0避免卡顿

(3)绘制星星并记录其轮廓

在上个任务中,我们在屏幕上快速绘制了10颗星星,而在这里,我们要想使星星们随机飘动起来,就必须将他们视作一个个独立的对象,因此我们需要将绘制完成的星星轮廓记录下来,以便之后再将其作为星星形状添加到turtle库默认的形状列表中,继而使星星以画笔对象的形式呈现出来。

绘制星星并记录其轮廓

t = turtle.Turtle() # 实例化Turtle类,创建一个海龟对象作为画笔

t.hideturtle() # 隐藏海龟画笔

t.speed(0) # 设置移速最快

t.pencolor(“white”) # 设置画笔颜色

t.fillcolor(“white”) # 设置填充颜色

t.penup() # 抬起画笔

t.goto(-140,0) # 移动到屏幕左侧

turtle.tracer(False) # 关闭动画

t.begin_fill() # 开始填充

t.begin_poly() # 开始记录多边形顶点

for i in range(5): # 循环五次

t.forward(15) # 前进15像素t.right(144) # 右转144度

t.end_poly() # 结束记录

t.end_fill() # 结束填充

(4)获取记录的星星轮廓并将其添加到形状列表中

接下来,我们就可以随心所欲得绘制星星了,具体步骤如下。

获取记录的星星轮廓并将其添加到形状列表中

shape = t.get_poly() # 返回记录的多边形

turtle.register_shape(“tt”,shape) # 将绘制的多边形添加到形状列表中,命名为tt

(5)绘制一颗星星

之后,我们就可以将星星形状作为一个画笔对象调用出来。

turtle.tracer(True) # 打开动画

创建星星

tt = turtle.Turtle(shape=‘tt’) # 实例化Turtle类,创建一个对象画笔,形状为五角星,并赋值给变量tt,后面都用tt来表示

tt.pencolor(“white”) # 设置画笔颜色

tt.fillcolor(“white”) # 设置填充颜色

tt.penup() # 抬笔

tt.goto(-120,160) # 移动到屏幕外

(6)克隆星星并使其随机出现在屏幕上方

紧接着,我们克隆50颗星星画笔对象,并使其随机出现在屏幕上方。

stars = [] # 创建星空列表

for s in range(50): # 进行50次循环

star = tt.clone() # 克隆星星s =random.random()/3 #随机数star.speed(int(s*10)) # 移动速度star.setx(random.randint(-width/2,width/2)) # 设置星星的x坐标在屏幕内

star.sety(height/2+ random.randint(1,height)) # 设置星星的y坐标在屏幕上方

star.showturtle() # 显示星星stars.append(star) # 扩充星星

(7)模拟星空,使星星随机飘落

最后,我们使其缓缓飘落。

while True: # 永久循环

for star in stars: # 列表循环star.sety(star.ycor() - 3 * star.speed()) # 设定星星的纵向移动if star.ycor()<-300: # 判断星星是否移动到了下方屏幕star.hideturtle() # 隐藏星星star.setx(random.randint(-width/2,width/2)) # 设置星星的x坐标在屏幕内star.sety(height/2+ random.randint(1,height)) # 设置星星的y坐标在屏幕上方star.showturtle() # 显示星星

Tips:完整示例程序如下:

向上滑动阅览

从上往下飘动

import turtle # 导入turtle库

import random # 导入随机数dandom库

创建绘图窗口

width,height = 240,320 # 设定窗口的宽度和高度

turtle.setup(width,height) # 以设定好的宽度和高度来创建窗口

turtle.bgpic(‘浩瀚银河.png’) # 添加银河背景图

turtle.delay(0) # 绘画延迟,设为0避免卡顿

绘制星星并记录其轮廓

t = turtle.Turtle() # 实例化Turtle类,创建一个海龟对象作为画笔

t.hideturtle() # 隐藏海龟画笔

t.speed(0) # 设置移速最快

t.pencolor(“white”) # 设置画笔颜色

t.fillcolor(“white”) # 设置填充颜色

t.penup() # 抬起画笔

t.goto(-140,0) # 移动到屏幕外

turtle.tracer(False) # 关闭动画

t.begin_fill() # 开始填充

t.begin_poly() # 开始记录多边形顶点

for i in range(5): # 循环五次

t.forward(15) # 前进15像素t.right(144) # 右转144度

t.end_poly() # 结束记录

t.end_fill() # 结束填充

获取记录的星星轮廓并将其添加到形状列表中

shape = t.get_poly() # 返回记录的多边形

turtle.register_shape(“tt”,shape) # 将绘制的多边形添加到形状列表中,命名为tt

print(turtle.getshapes())

turtle.tracer(True) # 打开动画

创建星星

tt = turtle.Turtle(shape=‘tt’) # 实例化Turtle类,创建一个对象画笔,形状为五角星,并赋值给变量tt,后面都用tt来表示

tt.pencolor(“white”) # 设置画笔颜色

tt.fillcolor(“white”) # 设置填充颜色

tt.penup() # 抬笔

tt.goto(-120,160) # 移动到屏幕外

stars = [] # 创建星空列表

for s in range(50): # 进行50次循环

star = tt.clone() # 克隆星星s =random.random()/3 #随机数star.speed(int(s*10)) # 移动速度star.setx(random.randint(-width/2,width/2)) # 设置星星的x坐标在屏幕内star.sety(height/2+ random.randint(1,height)) # 设置星星的y坐标在屏幕上方star.showturtle() # 显示星星stars.append(star) # 扩充星星入列表

while True: # 永久循环

for star in stars: # 列表循环star.sety(star.ycor() - 3 * star.speed()) # 设定星星的纵向移动if star.ycor()<-300: # 判断星星是否移动到了下方屏幕star.hideturtle() # 隐藏星星star.setx(random.randint(-width/2,width/2)) # 设置星星的x坐标在屏幕内star.sety(height/2+ random.randint(1,height)) # 设置星星的y坐标在屏幕上方star.showturtle() # 显示星星

2、程序运行

STEP1:远程连接行空板

STEP2:运行程序并观察效果

点击运行后,观察行空板,可以发现在等待几秒后,一颗颗白色的小星星就从屏幕上方随机落下,与银河交相辉映。

挑战自我

尝试改变星星的形状、大小、数量与颜色,看一看变化后的3D星空效果如何吧!
想学习更多行空板Python系列入门教程请关注“蘑菇云创造”。

蘑菇云【行空板Python入门教程】第四课:模拟星空相关推荐

  1. 蘑菇云「行空板Python入门教程」第九课-智慧农业物联网系统2

    5G元年的列车早已驶出,人工智能.大数据的浪潮还在涌动,云办公.云问诊成为防疫期间的热词. 现如今,物联网技术正处于时代发展的风口,相较于传统的硬件设备,物联网技术使得各种硬件设备能够通过信息传输设备 ...

  2. 【行空板Python入门教程】第二课:小小捕光仪

    在日常生活中,光线的强弱对人类的情绪有着很大的影响.无论是积极还是消极的情绪,愈明亮的光线会让这种感情愈加剧.也正因此,书房.厨房等一些具有实用功能的家居环境,往往会采用较强光线的灯光,这样更能让人集 ...

  3. 蘑菇云「行空板Python入门教程」第七课:舒尔特方格小游戏

    注意力是一切学习的根本,是大脑进行感知.学习.思维等认知活动的基本条件.然而,无论是孩子还是成年人,我们常常会因开小差.注意力无法集中而困扰.此时,找到一个合适的方法来训练我们的注意力势在必行. 舒尔 ...

  4. 蘑菇云「行空板Python入门教程」第六课:贪吃蛇小游戏

    在很久很久以前,手机屏幕都还是黑白的年代,有一款叫做"贪吃蛇"的游戏风靡了大街小巷,在那分辨率极低的屏幕上,几条扭扭曲曲的弧线似乎穿越了整个童年. 这节课上,就让我们用行空板来实现 ...

  5. 蘑菇云「行空板Python入门教程」第八课:智慧农业可视化系统

    在过去,我国农业自动化程度较低,与发达国家存在着较显著的差距.现如今,随着现代科技的不断进步,农业自动化水平日渐提高,越来越多的传感器.显示屏等电子设备被应用在农业中,随时随地监测农作物的生长,以便在 ...

  6. 蘑菇云【行空板Python入门教程】第五课:2D迷宫

    2D迷宫 迷宫游戏是许多小伙伴儿时经常做的游戏,它能锻炼我们的空间推理能力.逻辑力.耐心与恒心,也能带来许多欢乐. 让我们设计一个迷宫游戏,在DFRobot-行空板屏幕上体验一下吧! 任务目标 通过三 ...

  7. 蘑菇云【行空板Python入门教程】第三课:多功能提醒器

    多功能提醒器 生活中,我们对于声音并不陌生,美妙动听的音乐令人陶醉,节奏感十足的鸣笛声令人警醒,然而,当音量达到一定的强度,妨碍到人们正常休息.学习和工作,声音就会成为噪音. 与此同时,闹钟在许多小伙 ...

  8. 蘑菇云「行空板Python入门教程」第十课:多节点智慧农业系统

    在上节课,我们设计了一个智慧农业物联网系统,通过一块行空板来检测植物生长时的土壤湿度情况,将湿度数据上传到SIoT物联网平台进行远程查看并在湿度较低时从平台远程控制浇水. 然而,在真实的农业场景中,常 ...

  9. python入门教程共四本书籍-Python入门经典书籍有哪些?有这三本就够了

    Python的入门书籍不要看太多,读一本就够了.重要的是,你要学会方向的Python,或者你有兴趣在什么方向. 所以我们首先你要对学生自己有一个企业定位和规划,而不是可以看到有关于Python的书籍就 ...

最新文章

  1. 你连原理都还没弄明白?java的基本单位
  2. php百合网,来百合网直播,做最真实的自己
  3. javaweb学习总结(四)——Http协议
  4. 如何深入浅出地讲解麦克斯韦方程组
  5. 算法:Find First and Last Position of Element in Sorted Array(在有序数组中搜索第一个和最后一个找到的数字)
  6. 【CASS精品教程】CASS9.1生成标准图幅案例教程
  7. 关于网页点击按钮无响应问题分析
  8. DH-SQL(学生信息表-课程表-选课表)
  9. Excel的最大行数
  10. 什么A股,B股,H股?什么是红筹股,蓝筹股?
  11. 面试过程中的排列组合和趣味性题目一
  12. 如何成为DBA,如何成为高级DBA
  13. java九宫格游戏实践
  14. RPA机器人流程自动化
  15. 计算机网络:数据链路层之虚拟局域网,高速以太网
  16. DevC++ 如何正确安装 SFML
  17. 星空电影院 v6.08 bt
  18. 01.监控深度学习平台的运行情况
  19. 北京大学所有专硕确定不安排住宿!北大招生简章专业目录公布
  20. 放假第二天的重大事故:忘记服务器root密码了,于是我一顿操作猛如虎。。。

热门文章

  1. 河北省邢台市谷歌高清卫星地图下载
  2. 学习绘制专题地图的收获与心得
  3. 逻辑电平、噪声容限、串行通信
  4. 5G标准R16版,即将发布!
  5. macromedia_Macromedia弯曲肌肉
  6. web连接mysql数据库_java web与数据库相连,具体怎么做
  7. Android菜鸟笔记-实现一键重启和关机
  8. 乔布斯斯坦福大学演讲中文译文
  9. Mac设置固定IP地址
  10. python量化投资培训深圳你了解多少?