Черепаха питон - как нарисовать паутину - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно нарисовать следующую паутину, используя python.

Паутина завершена - что мне нужно нарисовать

Я гуглил свой путь к черепахе и сделал следующее

Паутина неполная

Итак, мне нужна помощь, как сделать прямые линии кривыми. Я пытался с circle(), но не могу заставить его работать так, как я хочу. Любые советы, как с черепахой, так и без нее, приветствуются

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Я смог нарисовать это приближение, используя Python turtle и команду turtle.circle():

enter image description here

Я также использовал turle.forward() & turtle.backward(), а также turtle.heading() & turtle.setheading(), чтобы нарисовать радиусы.Я использовал turtle.left(), turtle.right() и turtle.sety() для позиционирования черепахи.И я добавил screen.setworldcoordinates(), чтобы отрегулировать соотношение сторон, чтобы создать слегка сглаженный вид оригинала.

Предполагая, что вышеприведенное достаточно близко, ключ в том, чтобы найти время, чтобы понять, что происходит, когда вы поставляете отрицательных значений для радиуса круга и extent= аргументов.

Если вы не сделаете этого в первую очередь, я опубликую (две дюжины строк) кода после того, как ваше назначение, вероятно, придетиз-за.

0 голосов
/ 13 сентября 2018

Теорема: в двухмерном пространстве есть только одна истинная парабола, a*x^2 + b*x + C Источник . Из этого следует, что вы рисуете несколько экземпляров одной и той же параболы со все более высоким значением C, начиная с C=0; затем вы поворачиваете его вокруг начала координат и рисуете копию параболы для любого угла, соответствующего +/- PI / 4 от исходного угла. Для каждой параболы вы рисуете только ту часть, которая находится между y=0 или x=0, в зависимости от случая, и y=-x или y=x, в зависимости от ситуации. Если вы опубликуете какую-то кодировку, и она не работает, мы можем помочь вам исправить это.

Вы должны определить функцию, которая, учитывая в качестве входных данных значения X и угол theta, а также a, b и c, в соответствии с параболой, которую вы хотите использовать, вычисляет соответствующие значения Y параболы Y = a x ^ 2 + b x + c, повернутый на угол theta. В вашем случае значение b будет равно 0, поскольку парабола, ось которой параллельна оси y, а минимум / максимум которой равен x=0,y=0, имеет значение C, равное 0.

...