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

如何使用Python Turtle绘制互不重叠的N个正七边形

问题解决方法

重叠原因

  • 绘制完单个正七边形后,仅调整了海龟朝向,没有移动海龟位置,下一个七边形的绘制起点和上一个完全重合
  • 填充语句放在了全局,所有图形会被识别为同一个填充区域
  • 实例化的tegan海龟对象未被实际使用,全局海龟和实例混用可能引发额外异常

修改后可运行代码

import turtle

tegan = turtle.Turtle()
length = 100  
degrees = 51.42857
# 两个七边形之间的间隔距离,可自行调整
gap = 120

numbers = int(input('number of 50 Pence: '))
print(numbers)

def draw_heptagon(tegan, length, numbers, gap):
    # 先移动到左侧起始位置,避免第一个图形超出画布
    tegan.penup()
    tegan.goto(-(numbers-1)*gap/2, 0)
    tegan.pendown()
    for i in range(numbers):
        # 单个七边形填充放在循环内部
        tegan.fillcolor('grey')
        tegan.begin_fill()
        for x in range(7):
            tegan.forward(length)
            tegan.left(degrees)
        tegan.end_fill()
        # 画完一个后抬起笔移动到下一个位置
        tegan.penup()
        tegan.forward(gap)
        tegan.pendown()

draw_heptagon(tegan, length, numbers, gap)
turtle.done()

自定义调整说明

  • 调整gap参数可以修改两个七边形之间的间距
  • 如果要实现环形排列,可保留原代码的角度旋转逻辑,同时每次画完后向前移动固定距离再旋转即可
  • 可以在循环中修改fillcolor的值,实现不同七边形用不同颜色填充的效果

内容的提问来源于stack exchange,提问作者Prashanthan Kailainathan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:39:03