描述
美国队长之盾的外表涂装与美国国旗相似,由红色(象征勇气)、白色(象征真理)和蓝色(象征正义)组成,中间有着一个白色五角星。
import turtle
import math
def shield():
"""功能:绘制盾牌"""
###turtle.bgcolor('#010101')#设置背景色为黑色
turtle.speed(10)#设置turtle为慢速
# 依次填充同心圆
fill_circle('#FF0000', 230)
fill_circle('#FFFFFF', 178)
fill_circle('#FF0000', 129)
fill_circle('#0000FF', 75)
# 完成五角星
draw_five('#FFFFFF', 75)
turtle.hideturtle()#隐藏画笔
turtle.done()
def draw_circle(radium):
"""功能:绘制半径为radium、不填充的圆"""
# 画笔定位到圆点
turtle.home()
# 提笔
turtle.penup()
# 向前移动指定的半径
turtle.forward(radium)
# 落笔
turtle.pendown()
# 偏转角度
turtle.setheading(90)
# 画一个指定半径的圆
turtle.circle(radium)
# 提笔
turtle.penup()
def fill_circle(color, r1):
"""功能:绘制半径为r1,线条颜色和填充颜色为color的圆;实现过程需要调用draw_circle()函数"""
# 设置画笔颜色
turtle.pencolor(color)
# 设置填充颜色
turtle.fillcolor(color)
# 开始填充
turtle.begin_fill()
# 画圆线
draw_circle(r1)
# 结束填充
turtle.end_fill()
# 画并填充五角星
def draw_five(color, radium):
"""功能:在radium圆内绘制五角星、color为填充色"""
# 画笔定位到圆点
turtle.home()
# 提笔
turtle.penup()
# 偏转90度
turtle.setheading(90)
# 向前移动90个像素
turtle.forward(radium)
# 偏转288度
turtle.setheading(288)
# 落笔
turtle.pendown()
# radians()将角度转换为弧度
long_side = (math.sin(math.radians(36))*radium)/math.sin(math.radians(126))
# 设置画笔颜色
turtle.pencolor(color)
# 设置填充颜色
turtle.fillcolor(color)
# 开始填充
turtle.begin_fill()
for i in range(10):
turtle.forward(long_side)
if i % 2 == 0:
turtle.left(72)
else:
turtle.right(144)
# 结束填充
turtle.end_fill()
# 提笔
turtle.penup()
if __name__ == '__main__':
shield() #调用函数绘制美队之盾
当设置了背景色为黑色
turtle.bgcolor('#010101')
Python123在线编程
import turtle
import math
def shield():
"""功能:绘制盾牌"""
turtle.bgcolor("#010101") # 设置背景色
turtle.speed(10) # 设置turtle为慢速
# 下面补充代码:调用函数,依次由外往内绘制四个填充圆
fill_circle('red', 240)
fill_circle('white', 180)
fill_circle('red', 120)
fill_circle('blue', 60)
# 下面补充代码:调用函数绘制边长为75的五角星,填充颜色为#FFFFFF
draw_five("#FFFFFF", 60)
turtle.hideturtle() # 隐藏画笔
turtle.done() # 完成绘制
# 画不填充的圆
def draw_circle(radium):
"""功能:绘制半径为radium、不填充的圆"""
# 下面补充代码绘制半径为radium的不填充圆
turtle.home() # turtle回到初始位置
turtle.penup()
turtle.seth(0) # 设置画笔指向正右
turtle.fd(radium) # 到达圆周最右顶点处
turtle.pendown()
turtle.seth(90) # 设置画笔指向正上方
turtle.circle(radium) # 画圆
turtle.penup()
turtle.home()
# 画填充圆
def fill_circle(color, r1):
"""功能:绘制半径为r1,线条颜色和填充颜色为color的圆;实现过程需要调用draw_circle()函数"""
turtle.color(color, color) # 设置线条色和填充色
turtle.begin_fill()
draw_circle(r1) # 调用函数,画半径为r1的圆
turtle.end_fill()
# 画并填充五角星
def draw_five(color, radium):
"""功能:在radium圆内绘制五角星、color为填充色"""
turtle.home() # 返回原点
turtle.penup()
turtle.setheading(90) # 设置初始方向
turtle.forward(radium) # 到达最小圆的最高点
turtle.setheading(288) # 设置画五角星的初始方向
turtle.pendown()
long_side = (math.sin(math.radians(36)) * radium) / math.sin(math.radians(126))
turtle.color(color, color) # 设置线条与填充颜色,两个颜色相同,都是color
turtle.begin_fill()
for i in range(10):
turtle.forward(long_side)
if i % 2 == 0:
turtle.left(72)
else:
turtle.right(144)
turtle.end_fill()
turtle.penup()
if __name__ == '__main__':
shield() # 调用函数绘制美队之盾