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 函数,绘制不同大小和颜色的空心五角星。