我的左眼有相当严重的散光,因此无缘各种类型的3D立体图,包括看对眼、立体眼镜、左右两幅图(一只眼睛看一个)等等。后来,网上出现了一种只需要一只眼睛就能体验的3D图,原理非常简单,效果也比较震撼。只需要在两个眼睛的位置分别拍照,然后做成gif循环显示两个图片,大脑也可以从中迅速获取信息分辨出第三维来。闲逛ffffound时偶然发现这个图,突然想到:同样的方法为何不用于展示三维数据呢?于是试着用Mathematica做了一个。Mathematica输出gif动画相当简单,只需要一句Export[“file.gif”,{g1, g2, …}]就行了。在这里,我们将用三维空间的点来展示组合数的各位数字之和的分布情况。可以看到,使用3D动画的效果非常明显。
img = ListPointPlot3D[
Table[Total[IntegerDigits[Binomial[i, j]]], {i, 0, 50}, {j, 0, 50}],
ViewVertical -> {0, 0, 1}, ImageSize -> 600];
Export["F:\file.gif", {Show[img, ViewVector -> {-32, -20, 60}],
Show[img, ViewVector -> {-31, -21, 60}]}];
类似地,我们还可以做出环视一周的gif动画来,虽然这样将很难观察出细节,但对总体的把握效果将更好。
好玩~
这gif做的真鬼畜
给一个简单的tip,点击右上的最小化或者恢复窗口/最大化按钮,摁住不要放,可以暂停gif图。帮助观察比较
img = ListPointPlot3D[Table[Total[IntegerDigits[Binomial[i, j]]], {i, 0, 50}, {j, 0, 50}], ViewVertical -> {0, 0, 1}, ImageSize -> 600];
x = True;
img1 = Show[img, ViewVector -> {-32, -20, 60}];
img2 = Show[img, ViewVector -> {-31, -21, 60}];
DynamicModule[{x = 0}, Dynamic[x++; If[OddQ[x], img1, img2]]]
比GIF闪的快一点呵呵
看多了眼花 = =
就是视觉暂留效应嘛…晃个不停。
ffffound的有好东东,基本上每天晃一眼
ffffound上面好多图不和谐…
不错不错, 这个比较简单, 我也看不懂那种要对眼的..
好玩,不错不错