记得之前在 Matrix67 的博客上看过一个用三台摄影机制作分形图形的视频。原理很简单,每台摄影机都拍摄同一块大屏幕的内容,而大屏幕分三块,每块都显示摄像机拍摄的内容。这个想法太巧妙了,不用任何复杂的数学推导和编程就能画出复杂的图形。视频的原目的是为了不编程画分形,可惜三台摄影机比一台笔记本电脑贵多了。利用这个原理,用 R 能模拟实现这样的过程。

首先用 grid 包的 viewport 函数把一块屏幕分成三份,然后每份按照同样的方法再分成三份,如此递归下去,在最后一层放一个最简单的三角形或任何小图形。这样就可以跟视频中一样的方法在 R 里画出分形图形。还可以把图形或者是屏幕进行旋转得到更炫的图。