Python学习3:绘制美国队长之盾(拓展)

描述

美国队长之盾的外表涂装与美国国旗相似,由红色(象征勇气)、白色(象征真理)和蓝色(象征正义)组成,中间有着一个白色五角星。

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()  # 调用函数绘制美队之盾

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值