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

如何让turtle海龟画笔从另一只画笔的结束位置开始绘制

实现方法

每只turtle实例都独立存储自身的位置、朝向等状态,你只需要在第一只海龟绘制完成后,读取它的终点状态同步给第二只海龟即可,无需手动计算偏移量。

  • 用到的核心API:
    • turtle.pos():获取海龟当前坐标,返回格式为(x, y)的元组
    • turtle.goto(x, y):将海龟移动到指定坐标,移动前抬笔可避免留下多余痕迹
    • turtle.heading():获取海龟当前的朝向角度
    • turtle.setheading(angle):将海龟的朝向调整为指定角度

修改后的完整代码

import turtle

hexagonTurtle = turtle.Turtle()
def hexagon(hexagonTurtle, size):
    hexagonTurtle.pendown()
    hexagonTurtle.pencolor('yellow')
    hexagonTurtle.pensize(10)
    hexagonTurtle.left(90)
    for i in range(6):
        hexagonTurtle.forward(size)
        hexagonTurtle.right(60)
    hexagonTurtle.left(60)
    hexagonTurtle.back(size)
    hexagonTurtle.left(60)
    hexagonTurtle.back(size)
    hexagonTurtle.right(210)

pentagonTurtle = turtle.Turtle()

def pentagon(pentagonTurtle, size):
    pentagonTurtle.pendown()
    pentagonTurtle.pencolor('green')
    pentagonTurtle.pensize(10)
    pentagonTurtle.left(90)
    for i in range(5):
        pentagonTurtle.forward(size)
        pentagonTurtle.right(72)

# 绘制六边形
hexagon(hexagonTurtle, 120)
# 同步第一只海龟的终点状态给第二只海龟
end_position = hexagonTurtle.pos()
end_heading = hexagonTurtle.heading()
pentagonTurtle.penup()
pentagonTurtle.goto(end_position)
pentagonTurtle.setheading(end_heading)
# 从六边形终点位置开始绘制五边形
pentagon(pentagonTurtle, 120)

turtle.done()

补充说明

如果你不需要第二只海龟和第一只海龟结束时的朝向保持一致,仅需要起点位置相同,可以省略setheading()相关代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:00:03