栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

「Python海龟画图」利用海龟画笔绘制镂空五角星

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

「Python海龟画图」利用海龟画笔绘制镂空五角星

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

计算分析

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

  

已知正五边形的顶角∠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,因此有,得到,带入,经过计算可以得出,。

绘制边长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()

运行结果

绘制边长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()

运行结果

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

功能要求

绘制边长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()

运行结果

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号