用Python中的Turtle绘制有月亮的星空

用Python中的Turtle绘制有月亮的星空

在Python中,Turtle是一个内置的库,它为我们提供了绘制不同的图案、形状或任何我们想要的东西,但为此,我们必须了解Turtle库所提供的不同函数的用途。

在这篇文章中,我们将学习如何绘制星空。也许这篇文章很长,但读完整篇文章后,你会很容易理解每一个步骤。

为此,我们使用Turtle库和随机模块来生成随机位置来绘制星星。

我们使用的绘制星空的方法如下:

方法 参数 描述
Turtle() None 它创建并返回一个新的Turtle对象。
bgcolor 颜色名称 填充窗口背景的颜色
circle() 半径, 范围, 步骤 以给定的半径画一个圆。
title() name 赋予Turtle窗口名称。
forward() / fd() amount 它将Turtle向前移动指定的数量。
Screen() None 通过此方法后,Turtle屏幕将被激活。
speed value 决定笔的速度。
up() 捡起Turtle的笔。
down() None 挑下Turtle的笔。
left() angle 它将Turtle逆时针旋转。
right() angle 它使Turtle顺时针转动。
goto() x, y 它将Turtle移动到x, y位置。
begin_fill() None 在绘制要填充的形状之前调用。相当于fill(True)。
end_fill() 填充最后一次调用begin_fill()后绘制的形状。相当于fill(False)。
hideturtle() 绘制完成后,隐藏Turtle。
exitonclick() None 点击后退出Turtle屏幕。
randint start, end value 生成指定范围内的随机值。

我们的星空是由许多星星和一个月亮组成的,月亮的形状是圆的。因此,我们必须首先学习如何画出星星和圆圈。

我们先来学习一下如何通过代码来绘制星星。

# importing turtle library
import turtle
  
  
# creating turtle object
t = turtle.Turtle()
  
# to activate turtle graphics screen
w = turtle.Screen()
  
# speed of turtle's pen
t.speed(0)
  
# creating star
for i in range(0, 5):
    t.fd(200)
    t.right(144)
  
# after clicking turtle graphics screen
# will be terminated
w.exitonclick()

输出:

用Python中的Turtle绘制有月亮的星空

在上面的代码中,我们从0到5的范围内运行for循环,因为我们都知道星星有5条边,两条边之间的角度将是144度,这就是我们正在做的事情,在t.right(144)一行,我们正在以144度的角度移动Turtle的头,t.fd(200)一行决定我们星星的大小(值越小=星星越小)。

现在,我们要学习如何通过我们的代码来画圆。

# importing turtle library
import turtle
  
  
# creating turtle object
t = turtle.Turtle()
  
# to activate turtle graphics Screen
w = turtle.Screen()
  
# speed of turtle's pen
t.speed()
  
# Creating circle
t.circle(100)
  
# after clicking turtle graphics screen 
# will be terminated
w.exitonclick()

输出:

用Python中的Turtle绘制有月亮的星空

在上面的代码中,为了制作一个圆,我们使用了turtle库提供的圆函数,只是我们传递了一个参数100,它定义了圆的半径。运行我们的代码后,我们得到了我们的圆。

因此,我们终于学会了如何画星星和圆。

现在我们要画出我们的星空

# importing libraries
import turtle
import random
  
  
# creating turtle object
t = turtle.Turtle()
  
# to activate turtle graphics Screen
w = turtle.Screen()
  
# setting speed of turtle
t.speed(0)
  
# giving the background color of turtle
# graphics screen
w.bgcolor("black")
  
# giving the color of pen to our turtle
# for drawing
t.color("white")
  
# giving title to our turtle graphics window
w.title("Starry Sky")
  
# making function to draw the stars
def stars():
    for i in range(5):
        t.fd(10)
        t.right(144)
  
  
# loop for making number of stars
for i in range(100):
    
    # generating random integer values for x and y
    x = random.randint(-640, 640)
    y = random.randint(-330, 330)
      
    # calling the function stars to draw the 
    # stars at random x,y value
    stars()
      
    # took up the turtle's pen
    t.up()
      
    # go at the x,y coordinate generated above
    t.goto(x, y)
      
    # took down the pen to draw
    t.down()
  
# for making our moon tooking up the pen
t.up()
  
# going at the specific coordinated
t.goto(0, 170)
  
# took down the pen to start drawing
t.down()
  
# giving color to turtle's pen
t.color("white")
  
# start filling the color
t.begin_fill()
  
# making our moon
t.circle(80)
  
# stop filling the color
t.end_fill()
  
# after drawing hidding the turtle from
# the window
t.hideturtle()
  
# terminated the window after clicking
w.exitonclick()

输出:

用Python中的Turtle绘制有月亮的星空

Starry Sky

用Python中的Turtle绘制有月亮的星空

在上面的代码中,在阅读了每一行代码前的注释后,你会明白我们的代码是如何工作和绘制星空的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python Turtle