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

Python Turtle绘图for循环首圈调用penup避免从原点画线问题求解

代码存在的核心问题

    1. t增量更新的缩进错误:你把t += dt放在了for循环外部,导致200次循环过程中t的值始终没有变化,计算出的所有x1/y1都是同一个坐标点,自然无法绘制出连续线条,需要把这行代码缩进一层,放到for循环内部。
    1. setpos调用缺失前缀:else分支里的setpos(x1, y1)没有加turtle.前缀,如果你没有做from turtle import *的全局导入,这行代码会直接报错,就算做了全局导入,和i==0分支的turtle.setpos写法不一致也容易埋下隐患。
    1. (非必要优化)speed(10)不需要放在for循环里重复调用,放在循环外设置一次即可。

修正后可运行的代码

import turtle
from math import sin, e

# 提前定义你用到的f1/p1/d1/f2/p2/d2等参数,以及t、dt的初始值
turtle.speed(10)
t = 0  # 替换为你的t初始值
dt = 0.01  # 替换为你的dt参数值

for i in range(200):
    x1 = 200 * sin(f1 * t + p1) * e ** (-t * d1) + 200 * sin(f2 * t + p2) * e ** (-t * d2)
    y1 = 200 * sin(f3 * t + p3) * e ** (-t * d3) + 200 * sin(f4 * t + p4) * e ** (-t * d4)
    
    if i == 0:
        turtle.up()
        turtle.setpos(x1, y1)
    else:
        turtle.down()
        turtle.setpos(x1, y1)
    # t的增量更新放到循环内部
    t += dt

turtle.done()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:54:03