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

Python Turtle绘制七边形顶边水平朝上,如何调整为顶点朝上?

我使用如下Python Turtle代码绘制七边形:

tegan.setheading(0);

for i in range (7):
    tegan.right(51.43)
    tegan.forward(100)

但运行后生成的七边形始终是顶部为水平边的状态,我需要实现顶点朝上的效果,请问代码哪里存在问题?

问题原因
  • 代码核心问题是初始朝向设置不符合顶点朝上的绘制要求:
    • tegan.setheading(0) 会将画笔朝向设置为正右方向
    • 循环内先右转约51.43度(正七边形外角=360/7≈51.4286度)再前进,第一条边会朝右下方绘制,最终整体呈现顶部为水平边的效果
修正方案

要实现顶点朝上的正七边形,只需要给初始朝向补充半个外角的偏移量即可:正n边形要顶点朝上,需要把初始朝向向上偏移 180/n 度,七边形对应偏移约25.71度。
有两种常用修正写法:

写法1:直接计算精准初始角度(推荐)

import turtle
tegan = turtle.Turtle()
# 90是正北朝向,减去半外角得到正确初始朝向
tegan.setheading(90 - 180/7)

for i in range(7):
    tegan.right(360/7) # 直接用计算式避免手动写近似值的误差
    tegan.forward(100)

turtle.done()

写法2:在原有代码基础上补充初始偏移

如果不想改动原有循环逻辑,只需要在初始朝向设置后、进入循环前,加一句左转半外角的代码即可:

tegan.setheading(0)
tegan.left(180/7) # 补充半外角偏移

for i in range (7):
    tegan.right(51.43)
    tegan.forward(100)
补充说明
  • 建议外角直接用360/7计算得到精确值,不要手动写死51.43,避免多次旋转后累计误差导致七边形首尾无法完全闭合
  • 两种写法最终都可以得到顶点完全朝上的正七边形效果

内容的提问来源于stack exchange,提问作者Andrew HB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:15:05