如何用turtle绘制嵌套正多边形?现有代码输出不符预期求修正
修正Python Turtle绘制嵌套正多边形的代码
原代码因固定边长、绘制后未回归中心,导致多边形偏移且大小随边数增加而缩小,无法形成同心嵌套效果。以下是修正后的代码:
import turtle import math tr = turtle.Turtle() tr.speed(0) # 加快绘制速度 radius = 80 # 统一外接圆半径,确保所有多边形顶点在同一圆上 for n in range(3, 13): tr.penup() tr.goto(0, 0) # 每次绘制前回到中心原点 tr.pendown() # 根据外接圆半径计算正n边形的边长 side_length = 2 * radius * math.sin(math.pi / n) # 调整起始角度,让多边形顶部对齐正上方 tr.setheading(90 - (360 / n) / 2) for _ in range(n): tr.forward(side_length) tr.left(360 / n) turtle.done()
修正说明:
- 统一外接圆半径:通过计算不同边数正多边形的边长,确保所有多边形的顶点都落在同一个圆上,形成整齐的嵌套效果。
- 回归中心绘制:每次绘制新多边形前,让海龟回到原点,避免位置偏移。
- 对齐起始角度:调整海龟初始朝向,让每个多边形的顶部顶点指向正上方,视觉上更规整。
- 加快绘制速度:设置
speed(0)提升绘制效率,减少等待时间。
内容的提问来源于stack exchange,提问作者Mehrad
相关产品推荐
相关产品推荐

