我目前正在使用Python的turtle库。
我正在为我的编码类(class)做期中项目,我的项目是使用 turtle 及其反函数绘制余弦、正弦和正切曲线。
我的问题是,当我编写反正弦代码时,图形显示得太小并且用户无法看到。我想知道是否有缩放功能或拉伸(stretch)图形以使其更大的方法?
这是我的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)
以了解我的意思。
您可能也会对名称感到困惑。您将循环变量称为“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 - python 中的缩放功能? (2.7.9),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062142/