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

如何使用turtle库向下绘制并实现类三角形形状?

解决Turtle库向下绘制类三角形的问题

问题原因

你用turtle.backward(30)没实现向下绘制,是因为Turtle的forward/backward移动是基于当前朝向的:默认初始朝向是右侧(0度),backward(30)会朝左侧移动,而非向下。

修复方案

要实现向下绘制,有两种常用方式:调整Turtle朝向,或直接通过坐标定位。以下是对应修改后的代码,能实现你预期的类三角形效果:

方式1:调整朝向绘制

import turtle

def get_mouse_click_coor(x, y):
    print(x, y)

turtle.onscreenclick(get_mouse_click_coor)
turtle.penup()
turtle.goto(-120, 15)
turtle.pendown()
# 绘制向上的竖线
turtle.goto(-120, 25)

# 设置朝向为正下方(Turtle中270度对应向下)
turtle.setheading(270)
# 向下移动30像素
turtle.forward(30)
# 右转30度,绘制斜边
turtle.right(30)
turtle.forward(34.64)  # 30 / cos(30°) ≈ 34.64,保证回到起点
turtle.goto(-120, 25)

turtle.mainloop()

方式2:直接坐标定位(无需关注朝向)

import turtle
import math

def get_mouse_click_coor(x, y):
    print(x, y)

turtle.onscreenclick(get_mouse_click_coor)
turtle.penup()
turtle.goto(-120, 15)
turtle.pendown()
turtle.goto(-120, 25)

# 向下绘制到(-120, -5)
turtle.goto(-120, 25 - 30)
# 绘制30度方向的斜边
turtle.goto(-120 + 30 * math.tan(math.radians(30)), 25 - 30)
# 回到顶点完成三角形
turtle.goto(-120, 25)

turtle.mainloop()

说明

  • 两种方式都能实现你想要的向下类三角形效果,方式2更直观,适合精准控制坐标;方式1更贴合Turtle的面向方向绘制逻辑。
  • 若需要调整三角形大小或角度,修改对应数值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 19:33:02