В текстовой книге код может рисовать sin (x).как рисовать грех в черепахе python?
for x in range(-175,176):
turtle.goto(x,50*math.sin((x/100)*2*math.pi))
Я не знаю почему? почему sin (x) 50*math.sin((x/100)*2*math.pi)
?
В текстовой книге код может рисовать sin (x).как рисовать грех в черепахе python?
for x in range(-175,176):
turtle.goto(x,50*math.sin((x/100)*2*math.pi))
Я не знаю почему? почему sin (x) 50*math.sin((x/100)*2*math.pi)
?
Отработать у-координаты точек, которые втягиваются:
50 * sin((-175/100) * 2π)
50 * sin((-174/100) * 2π)
50 * sin((-173/100) * 2π)
...
50 * sin((175/100) * 2π)
50 * sin((176/100) * 2π)
50-просто масштабируется вещи, потому что sin
значения между 0 и 1, так что умножение на 50 означает, что у-координаты идут от -50 до 50, что позволяет увидеть график намного лучше.
Аргументы функции sin аналогично масштабируются для перехода от -3.5π до 3.5π, поскольку автор этого сценария считает, что это будет хороший диапазон для оси x. И обратите внимание, что код делает 350 шагов, поскольку он идет слева направо.
Итог в том, что этот код считал его автор «хорошим».
ИМХО, это уравнение используется для преобразования степени (180) в радиан (math.pi, 3.141592 ...).
BTW, если вы используете Python 2.7, замените x/100
на x/100.0
. В противном случае вы получите плоскую линию вместо sin волна.
>>> 1/100
0
>>> 1/100.0
0.01
range()
обрабатывает только целые значения грациозно. Поэтому они решили использовать целочисленные значения для оси x и отобразить 100 единиц в полный период синуса. Код отображает 3 1/2 периода, от -1,75 * 2pi до 1,75 * 2pi.
Затем результат отображается в диапазоне [-50..50], чтобы иметь чистые координаты для y.
составить список, содержащий все х и у значений в виде кортежа, а затем просто установить позицию черепахи :)
import math,turtle,threading
sine_line=[]
cos_line=[]
amp=100
for x in range(0,1000,10):
sine_line.append((x/10,amp*math.sin(math.radians(x))))
cos_line.append((x/10,amp*math.cos(math.radians(x))))
window=turtle.Screen()
myT=turtle.Turtle()
myT2=turtle.Turtle()
for x in range(0,len(sine_line)):
myT2.setpos(cos_line[x][0],cos_line[x][1])
myT.setpos(sine_line[x][0],sine_line[x][1])
Является ли это действительно код из текста книги? Я имею в виду, что это выглядит плохо, особенно если оно предназначено для обучения чему-то. Который вы вроде как хорошо иллюстрируете. Его можно легко разделить на 3 строки с комментариями. Масштабировать y, масштаб x, конвертировать в радианы и рисовать. Я действительно обеспокоен качеством книги и ее доблестными учениями. – luk32