用turtle画星空,python画星空图
本文主要介绍了Python中基于turtle的星星和星空的绘制。turtle是Python自带的绘图模块。下面这篇文章详细介绍了海龟画星星和星空的方法。有需要的朋友可以参考一下,作为学习练习。
00-1010前言:1。画一个N形多边形2。画一个五角星3。闪烁的星星。
目录
——turtle (turtle Drawing),Python中的一个绘图工具,是Python自带的一个绘图模块。它最初来自于1967年由沃利弗泽格、西蒙派珀特和辛西娅索罗门创造的标志编程语言。
用龟控笔刷在画板上画画。这个刷子有一个形状。默认情况下,它是一个小箭头。我们可以用turtle.shape(turtle )设置成小乌龟。除了变成乌龟,还支持引入箭头,圆,正方形,三角形,经典。
默认情况下,画笔的颜色是黑色。我们可以用turtle.color(red )把它改成红色。当然也可以用turtle.color(黄色)改成黄色,turtle.color(粉色)改成粉色等等。
前言:
进口甲鱼
Turtle.color(red) #将画笔颜色设置为红色。
Turtle.hideturtle() #隐藏小海龟
#画一个N形多边形
定义绘图_多边形(n):
对于范围(n):内的I
海龟.前进(100)
turtle.right(360/n)
Draw_polygon(5) #绘制五边形
turtle.done()
一、画一个N边形
五角星的每个角的度数是36度,用180-36得到的对应补角是144度。
如下图所示:
五角星的五条线有相同的长度和相同的角度。然后,我们可以用一个圆画一个五角星。五角星要画五条线,所以要循环五次。除了画一条线,每个循环都要旋转一个特定的角度。从上图可以看出,每次可以向右旋转144度。
所以画五角星的代码如下:
进口甲鱼
Turtle.color(red) #画笔颜色和填充颜色都设置为红色。
Turtle.hideturtle() #隐藏小海龟
Turtle.begin_fill() #开始填充
对于范围(5):中的I
Turtle.forward(100)#往前走100个像素。
Turtle.right(144) #右转144度
Turtle.end_fill() #结束填充
打印出来的结果是上图中的五角星不在画板的中心,我们就把它移到画板的中心。
注意:(-50,20)仅适用于边长为100像素的五角星形。不要随意修改边长。
进口甲鱼
turtle.color(红色)
turtle.hideturtle()
turtle.penup()
乌龟. goto(-50,20)
turtle.pendown()
turtle.begin_fill()
对于范围(5):中的I
海龟.前进(100)
龟权(下)144
turtle.end_fill()
turtle.done()
二、画五角星
让我们画一串星星来实现“闪烁的星星,满天都是小星星”的效果
果~✨
因为画的星星比较多,我们先把之前画五角星的代码封装成一个函数:
import turtledef draw_star():
turtle.color(white)
turtle.hideturtle()
turtle.begin_fill()
for i in range(5):
turtle.forward(10)
turtle.right(144)
turtle.end_fill()
星星的光是白色的,因此我将颜色设置成了白色(white
)。并且,因为是小星星,我将边长设成了 10 像素。画一个小星星的方法搞定了,接下来是画满天星,就画 50 个吧!
满天星的位置都是随机的,我们需要用到 random 模块生成随机位置。因为教学环境中显示区域有限,随机位置在 x 轴上的范围是 -150 到 150,在 y 轴上的范围是 -100 到 100。
随机画 50 颗小星星的代码如下:
import turtlefrom random import randint
def draw_star():
turtle.color(white)
turtle.hideturtle()
turtle.begin_fill()
for i in range(5):
turtle.forward(10)
turtle.right(144)
turtle.end_fill()
for i in range(50):
turtle.speed(0) # 最快速
turtle.penup()
x = randint(-150, 150) # x 轴
y = randint(-100, 100) # y 轴
turtle.goto(x, y)
turtle.pendown()
draw_star()
应该注意到了 turtle.speed(0)
这行代码,这是控制绘图速度的。因为画 50 颗小星星耗时较久,所以要加快绘图速度。 turtle.speed(0) 的参数是 0-10 的整数,其中 1-10 数字越大,绘图速度越快。1 最慢,10 最快,默认是 6。而 0 表示没有动画效果,因此 0 比 10 的速度还要快。
满天星画完了,我们最后再署个名。调用turtle.write()
可以在画板上写字,参数为要写的内容。我们还能设置字的字体、大小等,比如 turtle.write('By 黄帮主', font = ('SimHei', 12, 'bold'))。font 参数是个元组,其中第一个是字体,第二个是字体大小,最后一个是字重。
为了让文字更清晰可见,我将字体设置成了黑体!12 像素!加粗!完整的代码如下:
import turtlefrom random import randint
def draw_star():
# 补全画一颗星星的代码
turtle.color(red)
turtle.hideturtle()
turtle.begin_fill()
for i in range(5):
turtle.forward(10)
turtle.right(144)
turtle.end_fill()
# 将 ??? 改成你想画的星星个数
for i in range(50):
turtle.speed(0)
turtle.penup()
x = randint(-150, 150)
y = randint(-100, 100)
turtle.goto(x, y)
turtle.pendown()
draw_star()
turtle.penup()
turtle.goto(0, -130)
turtle.pendown()
turtle.write(一闪一闪亮晶晶, font = (SimHei, 12, bold))
turtle.done()
最终结果:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。