用Mathematica绘制随机的雪花图案
1、给出平面上五个随机的点:
a = RandomReal[{-1, 1}, {5, 2}]
这五个点可以连成一个五边形。

2、再加上一个点,得到六个点,也就是一个六边形。
b = Join[{{0, 0.1}}, a]

3、从六边形的顶点{0,0.1}出发,累加六边形的顶点坐标:
c = Accumulate[b]

4、旋转c对应的六边形:
d = c.(RotationMatrix[{c[[-1]], {0, 1}}])\[Transpose]

5、翻转d:
e = Reverse[d.{{-1, 0}, {0, 1}}]
这类似于关于y轴的对称变换。

6、去掉e的第一个顶点,得到五边形:
f = Rest[e]

7、合并d和f的顶点,得到一个11边形:
g = Join[d, f]

8、旋转11边形g,旋转角度分别是0*π/3,1*π/3,2*π/3,3*π/3,4*π/3,5*π/3;
把这些顶点合并起来,得到一个复杂的66边形;
这就是我们得到的雪花图案。
h = (g.RotationMatrix[#*60 \[Degree]] & /@ Range[6]) // Flatten[#, 1] &;

9、这样,可以整合一个雪花函数。

10、下面是10个随机雪花的动态图。
Graphics[{White, 雪花}, Background -> Black]

11、下面是100个雪花。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:154
阅读量:59
阅读量:188
阅读量:130
阅读量:155