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

给定速度与角度参数,如何在Python Turtle中实现触发绘图功能

实现方案

  • 你梳理的公式计算的是斜抛运动的水平位移,确实需要将计算结果赋值给变量d用来做判断。
  • 完整实现逻辑如下:
  1. 确保已经导入所需依赖
import math
import tkinter as tk
import turtle
  1. 编写按钮点击触发的回调函数,在函数内完成取值、计算、判断、绘图逻辑
def trigger_draw():
    # 捕获输入异常,避免用户输入非数字时报错
    try:
        input_speed = int(speed1.get())
        input_angle = int(angle1.get())
        # math.cos/math.sin接收弧度参数,需要把输入的角度转成弧度
        angle_rad = math.radians(input_angle)
        # 计算结果赋值给d
        d = (input_speed * math.cos(angle_rad)) * (input_speed * math.sin(angle_rad) / 4.9)
        if d > 25:
            # 此处替换为你需要的d>25时的turtle绘图逻辑,示例为绘制抛射轨迹
            turtle.clear()
            turtle.penup()
            turtle.goto(0, 0)
            turtle.pendown()
            time_step = 0.05
            g = 9.8
            t = 0
            while True:
                x = input_speed * math.cos(angle_rad) * t
                y = input_speed * math.sin(angle_rad) * t - 0.5 * g * t **2
                if y < 0:
                    break
                turtle.goto(x, y)
                t += time_step
        else:
            # 此处替换为d<=25时的对应逻辑
            pass
    except ValueError:
        # 输入非数字时的提示逻辑,可自行补充
        pass
  1. 给你的按钮组件绑定上述回调函数即可
# 给你的按钮加command参数绑定回调函数即可,代码中的「你的窗口对象」替换为你实际定义的tk窗口变量
draw_button = tk.Button(你的窗口对象, text="执行绘图", command=trigger_draw)
draw_button.pack()

*注意:如果你的turtle是嵌入到tkinter窗口的,只需要把上面的绘图逻辑里的turtle替换为你嵌入的TurtleScreen对象即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:54:07