欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 旋转的六边形

旋转的六边形

2024/10/24 17:33:29 来源:https://blog.csdn.net/hz_zhangrl/article/details/139750122  浏览:    关键词:旋转的六边形

【题目描述】

输入一个整数n,绘制出n个不断旋转的六边形,如图1所示。

图1 旋转的六边形图形

【要求】

  -绘制速度设为最快,画笔粗细为3。

  -六边形每次旋转10度,边长增加10%。

【分析】

这是一个同心正六边,六边形边长每次增加10%,每次逆时针转10°。

正六边形可用circle(rad, steps=6)绘制,由于要以原点为中心,而turtle的circle绘图是以当前点开始的,如图2所示。

图2 trutle的circle()绘旋转正六边形原理图

初始turtle的原点在(0,0),turtle的方向右。

如要画图2所示图形,先右转90+α°,向前移动r距离到绘图起点,方向左转90°,画正六边形,然后回到(0,0),方向回转到向右,为画下一个六边形作准备。

【程序】

import turtle as tl               # 导入模块n = int(input())                  # 输入绘制六边形个数
d = 40                            # 初始边长
tl.speed(0)                       # 最快速度
tl.pensize(3)                     # 画笔粗细为3
for i in range(n):                # 绘制n个旋转六边形tl.pu()                       # 抬笔tl.rt(90 + i*10)              # 右转90+α(α=i*10, 每次转10°)tl.fd(d)                      # 移到绘图起点tl.lt(90)                     # 左转90°转向绘图方向tl.pd()                       # 落笔准备绘图tl.circle(d, steps=6)         # 绘制边长为d的下楼六边形d = d * 1.1                   # 边长增加10%tl.pu()                       # 抬笔tl.goto(0, 0)                 # 移回原点tl.seth(0)                    # 转向右(0°)方向

【结果】

图3 trutle的circle()绘旋转正六边形原理图

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com