给出平面上五个随机的点:
a = RandomReal[{-1, 1}, {5, 2}]
这五个点可以连当作一个五边形。
再加上一个点,获得六个点,也就是一个六边形。
b = Join[{{0, 0.1}}, a]
从六边形的极点{0,0.1}出发,累加六边形的极点坐标:
c = Accumulate[b]
扭转c对应的六边形:
d = c.(RotationMatrix[{c[[-1]], {0, 1}}])\[Transpose]
翻转d:
e = Reverse[d.{{-1, 0}, {0, 1}}]
这近似于关于y轴的对称变换。
去失e的第一个极点,获得五边形:
f = Rest[e]
归并d和f的极点,获得一个11边形:
g = Join[d, f]
扭转11边形g,扭转角度别离是0*π/3,1*π/3,2*π/3,3*π/3,4*π/3,5*π/3;
把这些极点归并起来,获得一个庞大的66边形;
这就是我们获得的雪花图案。
h = (g.RotationMatrix[#*60 \[Degree]] & /@ Range[6]) // Flatten[#, 1] &;
这样,可以整合一个雪花函数。
下面是10个随机雪花的动态图。
Graphics[{White, 雪花}, Background -> Black]
下面是100个雪花。
END0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!