用turtle画星空,python画星空图

  用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 turtle

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

  星星的光是白色的,因此我将颜色设置成了白色(white)。并且,因为是小星星,我将边长设成了 10 像素。画一个小星星的方法搞定了,接下来是画满天星,就画 50 个吧!

  满天星的位置都是随机的,我们需要用到 random 模块生成随机位置。因为教学环境中显示区域有限,随机位置在 x 轴上的范围是 -150 到 150,在 y 轴上的范围是 -100 到 100。

  随机画 50 颗小星星的代码如下:

  

import turtle

  from 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 turtle

  from 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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: