python中平方函数图像,Python-Turtle图形,如何在一个区间内绘制函数?

您正试图使用buggy绘图代码绘制buggy函数。你需要单独调试它们,而不是一起调试。让我们从函数开始。如果我们看这三个区间的开头,-7,-1,和3并对它们调用f1(),我们得到:-7 -> 0.0

-1 -> division by zero

3 -> division by zero

在第一种情况下,在循环开始之前,绘图从不以f1(startf11)是> stopf11aka-3开始:

^{pr2}$

在另外两种情况下,由于被零除为except ZeroDivisionError:

continue

不能解决这个问题。所以没有阴谋。这可能并不重要,因为绘图代码本身不起作用。所有三个f1*函数(它们是相同的,没有意义)都可以:while y <= stop:

但是y从未改变,所以它是一个无限循环。注释掉的y += step会有所帮助,但在代码中的位置不同。此外,它还试图为每个屏幕像素绘制100个值!这可以通过改变坐标系来适应,但我不会在这里讨论,只要将每个屏幕像素的值减少到10个,就可以加快结果。在

让我们用一个更简单的测试函数重新开始绘制代码:def f1(x):

return x

让它成功地策划。以下是我对绘图代码的修改:from turtle import Turtle, Screen

def f1(x):

return x # dummy test plot

wn = Screen()

mypen = Turtle(visible=False)

mypen.speed('fastest')

mypen.penup()

def f11(start, stop, step):

y = f1(start)

while y <= stop:

try:

mypen.setpos(f1(start) * 25, y * 25)

mypen.dot()

y += step

except ZeroDivisionError:

continue

step = 0.1 # increased from 0.01 for debugging/speed

startf11 = -7

stopf11 = -3

f11(startf11, stopf11, step)

startf12 = -1

stopf12 = 1

f11(startf12, stopf12, step)

startf13 = 3

stopf13 = 7

f11(startf13, stopf13, step)

wn.exitonclick()

测试结果如下:

xHBqV.png

这对我们的测试功能来说是合理的。现在,您可以更改坐标系以获得更高分辨率的绘图和/或使用工作绘图仪调试f1()函数。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值