Python 中如何画空心五角星

简单一点 数码 3

首先,要画出空心五角星,我们需要先了解如何绘制五角星。

使用 turtle 库绘制五角星的方法如下:

import turtle
 
star = turtle.Turtle()
 
for i in range(5):
    star.forward(100)
    star.right(144)
 
turtle.done()

上述代码使用 turtle 库创建了一个五角星对象 star,然后利用 for 循环,执行 forward() 和 right() 方法,来绘制五角星。

绘制空心五角星的方法是在绘制五角星的基础上,将五角星的填充改为边框。

import turtle
 
star = turtle.Turtle()
 
star.fillcolor('white')
star.begin_fill()
for i in range(5):
    star.forward(100)
    star.right(144)
star.end_fill()
 
turtle.done()

上述代码的区别在于,使用 fillcolor() 方法将填充颜色改为白色,使用 begin_fill() 方法开始填充,使用 end_fill() 方法结束填充。这样就绘制了一个空心的五角星。

绘制出五角星后,默认情况下是从起点开始绘制的,我们可以采取一些措施来使五角星处于中心位置。

import turtle
 
star = turtle.Turtle()
 
star.penup()
star.goto(0, 0) # 将起点改为屏幕中心
star.pendown()
 
star.fillcolor('white')
star.begin_fill()
for i in range(5):
    star.forward(100)
    star.right(144)
star.end_fill()
 
turtle.done()

上述代码在绘制五角星之前,先使用 penup() 方法将画笔抬起,使用 goto() 方法将起点移到屏幕中心,然后使用 pendown() 方法将画笔放下。这样就可以在画布中心绘制五角星了。

如果想要绘制带有边框的空心五角星,只需要在绘制完空心五角星后,再次绘制五角星,但是边框颜色需要和背景颜色相同。

import turtle
 
star = turtle.Turtle()
 
star.penup()
star.goto(0, 0) # 将起点改为屏幕中心
star.pendown()
 
star.fillcolor('white')
star.begin_fill()
for i in range(5):
    star.forward(100)
    star.right(144)
star.end_fill()
 
star.color('white') # 将画笔颜色改为和填充颜色相同
for i in range(5):
    star.forward(100)
    star.right(144)
 
turtle.done()

上述代码使用 color() 方法将画笔颜色改为和填充颜色相同的白色后,再次绘制五角星,从而实现了带有边框的空心五角星。

如果想要在程序中多次绘制空心五角星,可以将绘制过程封装为函数,一遍调用即可。

import turtle
 
def draw_star(size, color):
    star = turtle.Turtle()
    star.penup()
    star.goto(0, 0)
    star.pendown()
   
    star.fillcolor(color)
    star.begin_fill()
    for i in range(5):
        star.forward(size)
        star.right(144)
    star.end_fill()
   
    star.color(color)
    for i in range(5):
        star.forward(size)
        star.right(144)
 
draw_star(100, 'white')
draw_star(50, 'black')
 
turtle.done()

上述代码将绘制过程封装为一个函数 draw_star,参数包括 size 和 color,分别表示五角星的大小和填充颜色。这样就可以在程序中多次调用 draw_star 函数,绘制不同大小和颜色的空心五角星。

回复

共1条回复 我来回复
  • 暂无回复内容