蛾 (分形曲線)

飞蛾”是一个分形等边三角形,其边被鳞翅目曲线(科赫曲线的一种变体)所取代。它具有与“连体”(一种基于科赫曲线的分形菱形)相似的性质,因此可以分解为无限多个自身的副本。该图形由乔治奥·皮耶特罗科拉于2024年3月发现。

算法
生成鳞翅目曲线的算法与科赫曲线的算法相似。为了突出这一点,这里采用的算法收敛速度比通常用于生成科赫曲线的算法更慢。对于这两种曲线,我们都从一条线段开始,将其替换为两条成角度的线段,这两条线段组合起来将形成一个内角分别为30度、120度和30度的等腰三角形。随后对这些线段应用相同的变换,且在每一层中,线段长度按2的幂次增长。两条曲线的区别在于对线段进行替换时,左右两侧的交替顺序不同,如图所示。

FMSLogo 程序
to falena :lato :liv
rt 180
make "nstop int (0.5+(power 2 :liv-1)*4/3)+2
make "mem pos
make "hh heading
ht
pu
fd :lato/2
bk :lato/2
pd
make "conta 0
make "mem pos
make "hh heading
falenarico :lato*3 :liv 1 1
pu
setpos :mem
seth :hh
pd
make "conta 0
make "mem pos
make "hh heading
falenarico :lato*3 :liv 1 -1
pu
setpos :mem
seth :hh
pd
st
rt 180
end

to falenarico :x :l :s :t
localmake "x :x/sqrt 3
if :l=0 [make "conta :conta+1
if :conta>=:nstop [ stop]
forward :x stop ]
lt 30:s:t
falenarico :x :l-1 -1 -:t
rt 60:s:t
falenarico :x :l-1 1 -:t
lt 30:s:t
end
“falenarico” 过程由“falena”过程调用。在 FMSLogo 的编辑器中复制并保存它们后,您可以在命令行中输入“falena 200 10”,以生成指定大小和迭代级别的飞蛾。 在线文章中还提供了其他过程,例如“falenarep”,可用于生成如图所示的复制蛾。

飞蛾与连体的比较
虽然“连体”和“反连体”是通过将菱形的边替换为科赫曲线而得到的,但“飞蛾”则是通过将等边三角形的边替换为向外延伸的鳞翅目曲线而得到的。如果这些曲线向内延伸,则会形成“反飞蛾”(见图)。这些分形多边形的周长均为无穷大。
连体图的面积比其参考菱形增加了40%,而飞蛾图的面积比其参考三角形增加了75%。反图的面积则相应减少了相同比例。
无论是连体图还是飞蛾图,连同它们的反图,都能分解为无限多个相似的副本。

用相似的分形图形铺砌平面
File:FalenafrattaleGiorgioPietrocola 04.jpg|镶嵌飞蛾
File:FalenafrattaleGiorgioPietrocola 05.jpg|
File:Siamese_tiles_111_Tartapelago.gif|镶嵌连体
File:SiameseKochSnowflakes.gif|

参考文献
在线参考文献
*
File:Tassellarico3.gif|
File:Filafalenerazzi7.gif|
File:Esagonaleanimazionefalena.gif|
File:Autofal.gif|

*

评论 (0)

  • 还没有评论,来抢沙发吧。