python海龟画笔 (python海龟画图怎样将所画图缩小)

分析镂空五角星边长的关系

计算分析

分析五角星和内接正五边形的边长关系。已知五角星的边长为l,求在同一直线上五角星的顶点到正五边形的顶点的距离,即r的值;以及正五边形的边长x的值。如下图所示:

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

已知正五边形的顶角∠EBD=180°-360°/5=108°,五角星的顶角∠BCA=(180°-108°)/2=36°,∠AED=(360°-2×∠CED)/2=(360°-2×72°)/2=108°,∠DEB=(180°-108°)/2=36°,因此DE=r。

△BDE∽△BCA,因此有

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

,得到

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

,带入

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

,经过计算可以得出

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

绘制边长l为400的五角星

功能要求

绘制边长l为400的五角星,将画笔颜色设置为yellow,填充颜色设置为red,画笔宽度为3,画笔速度最快,并隐藏画笔。

实例代码

import turtle

turtle.speed(0)

turtle.ht()

l = 400 # 设定五角星的边长

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

turtle.ht() # 隐藏画笔

turtle.pensize(3) # 设置画笔的粗细

# 设置画笔的初始位置

turtle.penup()

turtle.goto(-200, 50)

turtle.pendown()

# 绘制外面的五角星

turtle.color("yellow", "red")

turtle.begin_fill()

for i in range(5):

turtle.forward(l)

turtle.right(144)

turtle.end_fill()

turtle.done()

运行结果

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

绘制边长l为400的镂空五角星

功能要求

绘制边长l为400的五角星,将画笔颜色设置为yellow,填充颜色设置为red;移动画笔到正五边形的顶点,即向前移动r距离,绘制一个边长为x的正五边形,设置画笔颜色为yellow,填充颜色为white,即用白色正五边形覆盖五角星的中学部分,画笔宽度为3,画笔速度最快,并隐藏画笔。

实例代码

import turtle

import math

l = 400 # 设定五角星的边长

r = l * 2 / (math.sqrt(5) + 3) # 计算两个顶点的距离

x = l * (math.sqrt(5) - 1) / (math.sqrt(5) + 3) # 计算五边形的边长

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

turtle.ht() # 隐藏画笔

turtle.pensize(3) # 设置画笔的粗细

# 设置画笔的初始位置

turtle.penup()

turtle.goto(-200, 50)

turtle.pendown()

# 绘制外面的五角星

turtle.color("yellow", "red")

turtle.begin_fill()

for i in range(5):

turtle.forward(l)

turtle.right(144)

turtle.end_fill()

# 绘制正五角星

turtle.penup()

turtle.forward(r)

turtle.pendown()

turtle.color("yellow", "white")

turtle.begin_fill()

for i in range(5):

turtle.forward(x)

turtle.right(72)

turtle.end_fill()

turtle.done()

运行结果

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo

为镂空五角星添加文字信息

功能要求

绘制边长l为400的五角星,将画笔颜色设置为yellow,填充颜色设置为red;移动画笔到正五边形的顶点,即向前移动r距离,绘制一个边长为x的正五边形,设置画笔颜色为yellow,填充颜色为white,即用白色正五边形覆盖五角星的中学部分,画笔宽度为3,画笔速度最快,并隐藏画笔。完成绘图后,在图中添加文字“镂空五角星”

实例代码

import turtle

import math

l = 400 # 设定五角星的边长

r = l * 2 / (math.sqrt(5) + 3) # 计算两个顶点的距离

x = l * (math.sqrt(5) - 1) / (math.sqrt(5) + 3) # 计算五边形的边长

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

turtle.ht() # 隐藏画笔

turtle.pensize(3) # 设置画笔的粗细

# 设置画笔的初始位置

turtle.penup()

turtle.goto(-200, 50)

turtle.pendown()

# 绘制外面的五角星

turtle.color("yellow", "red")

turtle.begin_fill()

for i in range(5):

turtle.forward(l)

turtle.right(144)

turtle.end_fill()

# 绘制正五角星

turtle.penup()

turtle.forward(r)

turtle.pendown()

turtle.color("yellow", "white")

turtle.begin_fill()

for i in range(5):

turtle.forward(x)

turtle.right(72)

turtle.end_fill()

# 在图中添加文字信息

turtle.penup()

turtle.goto(-150, -50)

turtle.color("violet")

turtle.write("镂空五角星", font=('微软雅黑', 48, 'bold'))

turtle.done()

运行结果

python海龟画图有哪些可用颜色,python海龟画图绘制pythonlogo