用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()
输出:
在上面的代码中,我们从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()
输出:
在上面的代码中,为了制作一个圆,我们使用了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()
输出:
Starry Sky
在上面的代码中,在阅读了每一行代码前的注释后,你会明白我们的代码是如何工作和绘制星空的。