打开网易新闻 查看精彩图片

美队之盾最外圈的圆环为红色(半径为200),接下去的圆环为白色(半径为150),在下去的圆环又变成红色(半径为100),最内部的圆环为蓝色(半径为50),在蓝色圆环内接一个白色五角星。修改drawCircle方法,在画圆的同时填充颜色,并设置画布和画笔。

功能要求

美队之盾中心五角星是内接于半径为50的圆,通过根据求三角形第三边的公式,计算出内接五角星的边长。

例代码

import math

a, b, sita = map(int, input("输入两边及夹角(度)(以逗号分隔,):").split(','))

c = math.sqrt(a ** 2 + b ** 2 - 2 * a * b * math.cos(sita * math.pi / 180))

print("三角形边为%d、%d,夹角为%d的三角形的另一条边为%.2f"%(a, b, sita, c))

运行结果

代码分析

五角星的边长是由两条边长等于内接圆的半径即50组成,两条边的夹角为两个内接正五边形的三角形内接(360/5=72°)的两倍(72°×2=144°),根据已知三角形两边和夹角公式可以求出五角星的边长约等于95.11。

打开网易新闻 查看精彩图片

功能要求

美队之盾最外圈的圆环为红色(半径为200),接下去的圆环为白色(半径为150),在下去的圆环又变成红色(半径为100),最内部的圆环为蓝色(半径为50),在蓝色圆环内接一个白色五角星。

例代码

import turtle

# turtle.hideturtle() # 隐藏画笔

turtle.speed(0) # 设置画笔速度

# turtle.bgcolor("lavender") # 设置画布的背景颜色

设置画笔的位置,绘制圆形

r参数为画的圆的半径

x,y为画圆的起始点

def drawCircle(r, x, y):

# 设置画笔起始位置

turtle.up()

turtle.goto(x, y)

turtle.down()

turtle.circle(r) # 绘制半径为r的圆

drawCircle(200, 0, -200) # 绘制最外面的圆

drawCircle(150, 0, -150) # 绘制第二个圆

drawCircle(100, 0, -100) # 绘制第三个圆

drawCircle(50, 0, -50) # 绘制最里面的圆

# 设置绘制五角星画笔的起点

turtle.up()

turtle.goto(0, 50)

turtle.down()

turtle.left(72) # 修改画笔的角度

# 绘制五角星

for i in range(5):

turtle.forward(-95.11)

turtle.left(144)

turtle.done()

运行结果

打开网易新闻 查看精彩图片

功能要求

美队之盾最外圈的圆环为红色(半径为200),接下去的圆环为白色(半径为150),在下去的圆环又变成红色(半径为100),最内部的圆环为蓝色(半径为50),在蓝色圆环内接一个白色五角星。修改drawCircle方法,在画圆的同时填充颜色,并设置画布和画笔。

实例代码

import turtle

turtle.hideturtle() # 隐藏画笔

turtle.speed(0) # 设置画笔速度

turtle.bgcolor("lavender") # 设置画布的背景颜色

设置画笔的位置,绘制圆形

r参数为画的圆的半径

x,y为画圆的起始点

def drawCircle(r, x, y, color):

# 设置画笔起始位置

turtle.up()

turtle.goto(x, y)

turtle.down()

turtle.color(color) # 设置画笔的颜色

# 绘制半径为r的圆,并填充颜色

turtle.begin_fill()

turtle.circle(r)

turtle.end_fill()

drawCircle(200, 0, -200, "red") # 绘制最外面的圆

drawCircle(150, 0, -150, "white") # 绘制第二个圆

drawCircle(100, 0, -100, "red") # 绘制第三个圆

drawCircle(50, 0, -50, "blue") # 绘制最里面的圆

# 设置绘制五角星画笔的起点

turtle.up()

turtle.goto(0, 50)

turtle.down()

turtle.left(72) # 修改画笔的角度

# 绘制五角星

turtle.color("white")

turtle.begin_fill()

for i in range(5):

turtle.forward(-95.11)

turtle.left(144)

turtle.end_fill()

turtle.done()

运行结果

打开网易新闻 查看精彩图片