旋转的六边形

【题目描述】

输入一个整数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()绘旋转正六边形原理图

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值