上周我很欣赏仓鼠的项目,飞行中的分形,它使用在下视频计算和观察一个被称为曼德尔勃特集的分形。我被分形的随机流动性所震撼。用仓鼠的话来说,“它有一种有机的品质”,我同意。这是一种自然的流动,让我感觉自己好像在观察一个生命有机体的进化。
凝视着变幻的形状和颜色,我几乎进入了恍惚状态。我发现自己想起了迪斯尼的《爱丽丝梦游仙境》里的场景,我过去常常和我的两个小女儿一起看。你还记得在《吃了我》和《喝了我》中,爱丽丝被放大到9英尺高,然后缩小到原来的小版本吗?放大和缩小视频中的分形,我质疑自己对大小的看法,就像爱丽丝一样。
当我看视频的时候,我想象我站在绿色的区域,好像这是一片高软的草。随着视频开始播放,我很快就被带进了不断变化的色彩景观中,群山在我周围拔地而起。我被震撼了。我正站在一个永无尽头的楼梯上,进入一个不断变化的景观。各种形状和颜色包围着我。我是爱丽丝,在分形仙境的某处。
我很感兴趣,于是联系了仓鼠,问他能否以一种“非技术的方式”为我分解这些奇妙的图像。我必须听到更多关于这个项目的消息。谢天谢地,他答应了,以下是他对分形的解释:
对于屏幕上的每一个点,它都会执行递归计算,然后绘制出在结果超过一个限制值之前,这个计算可以执行多少次。这就产生了一个具有无限细节的自相似物体——分形。”
在“无限细节”这句话的启发下,我像爱丽丝一样,在兔子洞里跳得更远。我想知道更多。
维基百科有曼德尔布罗特集的完整解释.但是,简单地说,曼德尔布罗特集是一组标绘在标准x/y平面上的复数。方程fc(z)=z^2+c递归地应用于平面上的每一点,并根据结果着色。对于某些点,迭代该方程的结果趋于无穷。根据这些点接近无穷的速度,这些点被赋予不同的颜色。这是相当技术性的,但请耐心听我说。最重要的是这些点代表的数永远不会趋于无穷。一些数字,当代入这个等式并迭代时,永远不会离零太远(它们在-2和2之间)。这些点用黑色表示。
同样,完整的解释请参见关于曼德尔布罗特集的维基百科页面.
仓鼠的项目使用在下视频计算曼德尔布罗特集,并以高清实时显示,这真的很酷。为了实时显示这种分形,Nexys Video必须每秒执行约1200亿次操作。
仓鼠解释说:“作为一个粗略的数字范围的概念,如果整个图像是美国大陆的大小,放大的水平相当于缩小到像素HD 4″手机显示。”
我了解到,仓鼠项目的最初灵感是在20世纪80年代中期产生的。一篇刊登在《科学美国人》杂志比起之前所看到的游戏,这款游戏呈现出更加“有机”的分形感觉,他非常喜欢这款游戏。

仓鼠试图设计类似的东西,并希望达到每秒158,630,400,000次计算。(哇!)
至于他在曼德尔布罗特组和他的在下视频在黑板上,仓鼠谦虚地写道:“遗憾的是,我的设计仅达不到每秒需要的158,630,400,000次计算,但也许有一天我会达到!”我毫不怀疑他会的。
把它分解成数字让我大开眼界。我们说的是每秒数十亿次计算。是的,数十亿!以下是他与我分享的关于理解所涉及的数字和计算的巨大范围。
1.如果完整的图像有美国大陆那么大,那么放大的程度相当于在HD 4″手机屏幕上缩小到像素。
2.计算的绝对规模是令人难以置信的(仅低于每秒158,630,400,000次计算)。
3.每一种计算都需要10个基本操作(3个乘法和其他7个基本操作(例如加法)),通常当每个像素的计算重复255次时,人们就会停止计算(因为255是一个字节可以容纳的最大值)。
4.假设我们在255处停止,计算屏幕上每个像素显示的颜色需要2550次操作,对于1920×1080图像的所有像素总共需要5287,680,000次操作。
5.为了平滑滚动和缩放,必须为每帧重新计算每个像素,当使用1080i视频时,每秒有30帧。
超级酷的项目,仓鼠!
Hamster是我们论坛的活跃成员,也是我们开源社区的重要成员。他通过回答问题和在我们的论坛上发布他的项目来分享他的知识。我鼓励你花点时间访问我们的论坛,看看他的其他工作。
你有什么要分享的吗?我们邀请您加入我们的社区,并分享您创建的项目。也许有一天你会在我们的博客上看到你的项目!如果你喜欢这篇文章,有什么要补充的,请在这里留下评论。



