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 == 1
和 angle == 0
- 即相当于使用
for angles in [-1,0]:
在 Python 解释器中键入 range(-1,1)
window 以了解我的意思。
您可能也会对名称感到困惑。您将循环变量称为 angles
,但它实际上代表一个比率(您正在计算其倒数的正弦值)。
您可能真正想要的是以相当小的步长在 -1
到 1
范围内迭代的东西。让我们选择 0.01
作为我们的步骤(这是任意的)
我直接修改了你的代码,而不是自己实现。
- 我输入了比例因子 (
plot_scale
),它相当于我认为您在原始问题中想要的缩放比例。
- 我保留了您原来的函数参数,尽管我没有使用它们。我想你以后可能想和他们一起玩。
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)
这输出:
我目前正在使用 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 == 1
和 angle == 0
- 即相当于使用
for angles in [-1,0]:
在 Python 解释器中键入 range(-1,1)
window 以了解我的意思。
您可能也会对名称感到困惑。您将循环变量称为 angles
,但它实际上代表一个比率(您正在计算其倒数的正弦值)。
您可能真正想要的是以相当小的步长在 -1
到 1
范围内迭代的东西。让我们选择 0.01
作为我们的步骤(这是任意的)
我直接修改了你的代码,而不是自己实现。
- 我输入了比例因子 (
plot_scale
),它相当于我认为您在原始问题中想要的缩放比例。 - 我保留了您原来的函数参数,尽管我没有使用它们。我想你以后可能想和他们一起玩。
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)
这输出: