Python turtle库绘制五星红旗
直接上代码
import turtle
"""
五星红旗的宽高比是3:2,这里我们使用300x200的大小作为红旗底部
5颗黄色的星星,1颗大星星,4颗小星星
"""
def main():
turtle.setup(500, 500, 200, 200)
drawBackground()
drawBigStar()
drawSmallStar(-50, 170, 30)
drawSmallStar(-30, 145, 25)
drawSmallStar(-30, 117, 15)
drawSmallStar(-47, 95, 25)
turtle.hideturtle()
turtle.done()
def drawBackground():
# 调整画笔的位置
turtle.penup()
turtle.setpos(-150, 0)
# 绘制并填充
turtle.pencolor('red')
turtle.fillcolor('red')
turtle.begin_fill()
turtle.pendown()
turtle.forward(300) # 底部线条
turtle.left(90)
turtle.forward(200) # 右侧线条
turtle.left(90)
turtle.forward(300) # 顶部线条
turtle.left(90)
turtle.forward(200) # 左侧线条
turtle.end_fill()
def drawBigStar():
# 调整画笔的位置和颜色
turtle.penup()
turtle.setpos(-120, 120)
turtle.pencolor('yellow')
turtle.fillcolor('yellow')
# 绘制五角星并填充
turtle.pendown()
turtle.begin_fill()
# 调整角度
turtle.right(18)
for i in range(5):
turtle.left(144)
turtle.forward(60)
turtle.end_fill()
def drawSmallStar(x, y, l):
# 调整画笔位置
turtle.penup()
turtle.setpos(x, y)
# 绘制五角星并填充
turtle.pendown()
turtle.begin_fill()
turtle.left(l)
for i in range(5):
turtle.left(144)
turtle.forward(20)
turtle.end_fill()
main()
注:可能部分比例不太标准,望理解
作者:Q3493620082