You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python创建符合指定样式的6个饰带图案(Frieze Pattern)

需求:生成指定样式的6个饰带图案

我需要创建一个由6个形状组成的饰带图案,参考图展示了所需形状及其尺寸。

当前代码生成的形状与需求不符:

from turtle import *

number_of_shapes = 6

# Draw six basic elements

for shape in range (number_of_shapes):
       # Draw a basic element

       for section in range(8):
              forward(30)
              right(110)
              forward(30)
              left(20)
              forward(30)
              right(110)
              forward(30)
              left(20)
              forward(30)
              right(110)
              forward(30)
              left(20)
              forward(20)
              right(110)
              forward(30)

寻求能生成符合指定样式的6个饰带图案的Python实现方法。


修正后的实现代码

根据参考的形状样式,调整绘图逻辑后,代码如下:

from turtle import *

def draw_band_element():
    # 绘制单个饰带单元
    for _ in range(3):
        forward(30)
        right(110)
        forward(30)
        left(20)
    # 完成最后一段路径
    forward(20)
    right(110)
    forward(30)
    # 调整位置准备绘制下一个单元
    penup()
    right(60)
    forward(60)
    pendown()

number_of_shapes = 6

# 初始化设置
speed(5)
penup()
goto(-100, 0)
pendown()

# 绘制6个饰带单元
for _ in range(number_of_shapes):
    draw_band_element()

hideturtle()
done()

关键调整说明

  • 把重复的绘图步骤封装成函数,逻辑更清晰
  • 原代码循环8次会过度绘制,单个形状只需要3组重复的路径段,再加最后一段收尾
  • 每个单元绘制完成后右转60度(360/6的均分角度),并移动位置,确保6个形状能组成连续饰带
  • 调整初始位置,让整个图案显示更居中

内容的提问来源于stack exchange,提问作者Lee Roberts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 13:53:13