Python乌龟-如何绘制蜘蛛网

时间:2018-09-13 07:57:26

标签: python turtle-graphics

我需要使用python绘制以下蜘蛛网。

Spider web complete - what I need to draw

我已经用谷歌搜索了乌龟,并做了以下

Spider web incomplete

因此,我需要帮助的是如何使直线变为曲线。我一直在尝试circle(),但无法按照我想要的方式工作。不论有无乌龟,任何提示都值得赞赏

2 个答案:

答案 0 :(得分:0)

定理:二维空间中只有一个真抛物线a*x^2 + b*x + C Source。由此可见,您所绘制的是同一抛物线的多个实例,从C=0开始,C的值越来越高;然后围绕原点旋转它,并为与原始角度+/- PI / 4相对应的任意角度绘制抛物线副本。对于每个抛物线,仅绘制介于y=0x=0(视情况而定)和y=-xy=x之间的部分。如果您对此发表一些编码,但是它不起作用,我们可以帮助您解决。

您应该定义一个函数,给定X值和一个角度theta,再加上要使用的抛物线的a,b和c,计算出抛物线Y的相应Y值=旋转角度theta的a x ^ 2 + b x + c。在您的情况下,b的值为0,因为抛物线的轴平行于y且其最小/最大值在x=0,y=0中,其C值为0。

答案 1 :(得分:0)

我能够使用Python turtle和by()命令来绘制这种近似值:

enter image description here

我还使用g.V().as('a').out('knows').as('b'). math("a - b"). by(values('hasSomeValue'), constant(0)). by(values('missingValue'), constant(0)) coalesce()以及coalesce()turtle.circle()绘制半径。我使用了turle.forward()turtle.backward()turtle.heading()来定位乌龟。然后,我投入了turtle.setheading()来调整宽高比,以使原件的外观稍微变平。

假设以上内容足够接近,关键是花时间了解为圆的半径和turtle.left()自变量提供值时发生的情况。

如果您不这样做,我将在您的作业可能到期后发布(两行)代码。