旋转的六边形

【题目描述】

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

相关推荐

  1. 旋转表示

    2024-06-17 19:14:03       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 19:14:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 19:14:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 19:14:03       82 阅读
  4. Python语言-面向对象

    2024-06-17 19:14:03       91 阅读

热门阅读

  1. MySQL用户权限管理详解

    2024-06-17 19:14:03       30 阅读
  2. 榆林通讯工程元宇宙:虚拟融合现实的信息桥梁

    2024-06-17 19:14:03       30 阅读
  3. C# 语言类型(三)—数组/枚举类型/结构体

    2024-06-17 19:14:03       30 阅读
  4. 3.5. 马氏链-平稳测度(1)

    2024-06-17 19:14:03       27 阅读
  5. Python程序设计 文件和异常 笔记整理

    2024-06-17 19:14:03       30 阅读
  6. 徐州BGP服务器租用的好处有哪些?

    2024-06-17 19:14:03       30 阅读