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

如何用Python turtle绘制3D多色三角形并正确设置边长参数

问题修正与实现方案

现有代码问题梳理

  • 函数参数逻辑混淆:draw_art_cube接收的是点击的坐标值,你错误地把边长数值当做坐标传给了draw_triangle
  • API调用错误:turtle.left()方法需要传入的是角度值,你传入边长width属于参数类型用错
  • 缺少必要依赖导入:代码用到的math、random库没有提前导入

尺寸对应逻辑说明

你提到的参数组合完全符合等腰直角三角形的边长规则:

  • 两条直角边长度相等,均为你定义的width
  • 斜边长度满足勾股定理:$\sqrt{width^2 + width^2} = width * \sqrt{2}$,和你给出的参数完全匹配

修正后完整代码

import turtle
import math
import random

turtle.setup(575,575)
pen = turtle.Turtle()
pen.speed(0)
pen.pensize(2)
pen.hideturtle()

width = random.randint(25,100)

def draw_art_cube(x,y):
    # 传入点击坐标作为绘制起点,同时传入边长参数
    draw_triangle(x, y, width)

def draw_triangle(start_x, start_y, side_width):
    pen.up()
    pen.setpos(start_x, start_y)
    pen.down()
    pen.setheading(0)
    # 第一条直角边,长度为side_width
    pen.forward(side_width)
    # 转向斜边方向
    pen.left(135)
    # 斜边,长度为side_width * math.sqrt(2)
    pen.forward(side_width * math.sqrt(2))
    # 转向第二条直角边方向
    pen.left(135)
    # 第二条直角边,长度为side_width,绘制后自动闭合
    pen.forward(side_width)

turtle.onscreenclick(draw_art_cube)

turtle.done()

如果需要调整三角形的朝向,只需要修改setheading的初始角度和转向的角度数值即可,边长的比例关系不需要改动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:09