Python turtle绘图如何实现六边形尺寸随绘制逐步增大
逐次增大六边形尺寸的实现方案
你当前代码无法实现六边形尺寸递增的核心问题有两个:
- 绘制图形的
drawLine函数完全没用到传入的length参数,所有边的绘制长度硬编码为固定值15,图形尺寸不会随循环次数变化 - 原代码循环8次、每次转45度,实际画出来的是八边形,不符合正六边形的绘制规则:正六边形有6条等长边,每次转向的外角为60度
修改要点
- 调整图形绘制逻辑:把硬编码的前进长度替换为传入的动态length参数,循环6次、每次转60度绘制正六边形
- 保留奇偶序号图形转向相反的原有逻辑,保证交替排布的效果不变
- 图形绘制完成后的平移距离和当前六边形边长匹配,保证排布间距均匀不会错位
参考效果
修改后可直接运行的代码
import turtle import math def drawLine(num, length): # 奇偶位转向方向相反,维持交替排布效果 turn_angle = 60 if num % 2 == 0 else -60 for _ in range(6): turtle.forward(length) turtle.right(turn_angle) def main(): turtle.penup() turtle.goto(-300,0) turtle.speed(5) turtle.pensize(2) turtle.pendown() for x in range(40): current_length = 20 + 5 * x drawLine(x, current_length) # 平移距离和当前边长匹配,保证间距合理 turtle.forward(current_length) turtle.hideturtle() main() input()
代码保留了你原本的函数名
drawLine,不需要额外调整调用逻辑,直接替换原有代码即可运行。边长的递增步长设为5,你可以根据需求修改current_length = 20 +5 *x里的系数调整尺寸增长速度。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

