退化螺旋的催眠世界

2021-05-10 08:59:20

PSE警告:如果您患有光敏性癫痫症,请考虑跳过这篇文章!此页面上的可视化可能会触发扣押。对不起!

最近,我正在寻找一种向我的网站添加螺旋的方法1.我的搜索导致我参加这个代号,我发现迷人。对于一个,模拟螺旋的代码非常简单。但是,当我开始使用提供的&#34时,真正引起了我的注意力是发生的事情。滑块。令人难以置信的复杂,复杂的形状从几条简单的代码中绘制在我的眼前,他们在某些时候甚至看起来像螺旋。

我摔倒了一个令人愉快的兔子洞,试图了解实际发生的事情,然后我最终找到了不同类型的螺旋,看看我可以观察到什么其他影响。我喜欢与你分享所有调查结果,但如果你不在乎细节,那么随后可以随意直接跳到可视化!

在数学中,螺旋是从一点中散发出来的曲线,就像围绕点旋转一样移动。

我认为它有用,可以通过观察一个简单的圈子来开始。尽管我们通常将圈子视为静态,但我们也可以将它们视为围绕一点旋转的曲线,始终保持与该点完全相同的距离。

随着半径\(r \)保持恒定,而角度\(\ theta \)保持不断增加,此运动迹覆盖\(360 ^ {\ rIC} \)之后的完美圆圈,并将永远循环循环。

当我们从这个角度看一个圆圈时,螺旋的唯一差异是半径不保持恒定,而是根据角度的某些功能变化:\ [r = f(\ theta)\]不同的功能导致不同的螺旋,其中一些我们稍后会探索。现在,让'首先以最简单的一个,Archimedean螺旋:\ [r = a \ theta \]

在此示例中,我选择\(a = 0.1 \),因此半径始终等于\(\ theta / 10 \)(具有以度为单位给出的\(\ theta))。更改此参数不会改变螺旋的基本形状,它只改变连续环之间的距离。

为了改变螺旋形状,我们需要改变角度和半径之间的关系。例如,Fermat' S螺旋有循环,随着曲线从中心变得更远的循环,彼此更加靠近:\ [r = a \ sqrt {\ theta} \]

随着一个小的变化,我们甚至可以获得朝向一个点的螺旋趋势而不是远离一个,例如lituus:\ [r = \ frac {a} {\ sqrt {\ theta}} \]

使用代码有多种方式绘制螺旋,您可以在Rosetta代码中看到多种语言中的不同实现。我们对使用行段的方法感兴趣,因为这是将在此帖子的开始时导致这些有趣模式的方法。

假设我们想绘制一个完成了5个完整旋转的螺旋,所以\(\ theta \)已经从\(0 ^ \ circ \)到\(1800 ^ \ circ \)。我们将通过挑选螺旋形的很多积分并将它们与直线段连接到连接的大部分来近似曲线。

这基本上是我&#39的方式。到目前为止一直在绘制所有的螺旋,但没有向你展示实际点。要创建一个扩展螺旋的动画,您需要做的就是增加每一个框架并绘制相应的螺旋2。

在上面的例子中,我选择从\(0 ^ \ circ \)到\(0 ^ \ circ \)到\(1800 ^ \ circ \)中的一个点,我认为这是一个非常合理的近似。当然,如果我们减少这个差距,我们将挑选更多的点并获得更好的近似,并且同样,如果我们增加这个差距,我们会得到更糟糕的近似。

如果你用上面的滑块播放了一点,你可能已经看到了我们在哪里'重新使用它。

如果,而不是以规则的间隔提出要点(如每个\(5 ^ \ circ \)),我们限制了以固定数量的点(例如,100)估计螺旋,无论螺旋多大。在这种情况下,随着螺旋膨胀,少数点必须进一步分开并进一步覆盖整个形状,使我们的近似逐渐变得更糟。

在那里我们是!现在我们只需要选择一些任意数量的点,让\(\ \ \ \ \)生长,观察我们的螺旋退化缓慢地进入这些凉爽的,复杂的模式,因为我们的近似值壮观。

在下一节中,我将删除像坐标轴和显示螺旋末端的线/点这样的解释元素,因此您可以享受I&#39的催眠性视为; M现在呼叫退化螺旋。

我' ve只绘制了这些螺旋的单个分支,实际上还有更多!到目前为止,通过开始(\ theta = 0 \)来获得螺旋,然后慢慢增加它;我们可以通过沿另一个方向移动另一个。这是阿克里米德螺旋和浪漫的舞蹈的两个分支,从一颗小心开始:

这实际上为我们的堕落螺旋增加了一系列美丽的复杂层,导致大量的流利的模式!

还有另一种方法可以将辅助分支添加到螺旋,并且这是通过绘制其关于原点的反射。以下是使用费姆' s螺旋的例子:

当然,你不必选择一个或另一个,你可以同时有四个分支。所以在这里,结束这篇文章,是所有四个分支的Lituus,优雅地退化为终结标记。

如果你喜欢深入潜入螺旋世界,那么维基百科文章是从大量一般信息开始的好地方,并链接到不同类型的螺旋。此页面上的所有可视化都是用惊人的p5.js图书馆制作的。如果您' d喜欢用代码播放,我在p5.js web编辑器上做了一个模板堕落螺旋素描,你可以编辑和运行!如果您愿意在此处查看草图的代码,请查看此帖子的来源。

这篇文章的格式是由易在的解释运动启发,我享受这么多。如果你最喜欢这个,你' ll可能喜欢那里的一些帖子。这是我第一次' m探索和解释一个主题,所以如果您有任何反馈(或只是想打个招呼),请随时写信给我!

如果你只是试图绘制一个适当的螺旋,这一直保持扩张,这显然是效率低下,每帧重绘整个螺旋;您应该只在每个帧中添加一些新的线段到结束。但是,我们并不试图绘制适当的螺旋,并重绘每个框架对于我们在这里追求的效果至关重要。 ↩︎