python 中的缩放功能? (2.7.9)

Zoom function in python? (2.7.9)

我目前正在使用 python 的海龟库。

我正在为我的编码做期中项目 class,我的项目是使用海龟及其反函数绘制 cos、sin 和正切曲线。

我的问题是,当我编写反正弦代码时,图表显示得太小,用户无法看到。我想知道是否有缩放功能或拉伸图形以使其变大的方法?

这是我的 arcsin 代码:

def drawarcsincurve(amplitude, period, horShift, verShift):
    turtle.speed(0)
    startPoint = -1 
    turtle.goto(startPoint, math.asin(startPoint))
    turtle.pendown()
    for angles in range(-1,1):
        y = math.asin(angles)
        turtle.goto(angles,y)

我认为,您的主要问题是迭代 angles 变量的范围。行

for angles in range(-1,1):

将只执行循环两次,使用 angle == 1angle == 0 - 即相当于使用

for angles in [-1,0]:

在 Python 解释器中键入 range(-1,1) window 以了解我的意思。

您可能也会对名称感到困惑。您将循环变量称为 angles,但它实际上代表一个比率(您正在计算其倒数的正弦值)。

您可能真正想要的是以相当小的步长在 -11 范围内迭代的东西。让我们选择 0.01 作为我们的步骤(这是任意的)

我直接修改了你的代码,而不是自己实现。

  1. 我输入了比例因子 (plot_scale),它相当于我认为您在原始问题中想要的缩放比例。
  2. 我保留了您原来的函数参数,尽管我没有使用它们。我想你以后可能想和他们一起玩。

def drawarcsincurve(amplitude, period, horShift, verShift):
    plot_scale = 100 # Arbitrary value - up to you - similar to "zoom"
    turtle.speed(1)
    turtle.penup() 
    startPoint = -1 
    turtle.goto(plot_scale*startPoint, plot_scale*math.asin(startPoint))
    turtle.pendown()
    for angles in range(-100,100):
        sinval = 1.0 * angles / 100 # this will run -1 to 1 in 0.01 steps
        y = math.asin(sinval)
        turtle.goto(plot_scale*sinval,plot_scale*y)

这输出: