介绍
我们知道Python作为一个程序语言,讲究的是严谨和逻辑;而艺术画似乎处于另一个维度,更多是无规则和随心所欲。然而我们却可以找到两者的交汇点。今天我们将学习如何用Python制作艺术图。一旦我们知道如何用Python做基础,我们就可以免费获得Python工具库的其他部分(web框架、数据科学工具、AI+ML+CV工具等)。可以想象,拥有这些工具的我们其实没有天花板。
我们将在本python绘图教程中涉及的工具和库有:Numpy + Scipy + Matplotlib
Jupter Noteboobk
用于交互设计的Ipythonwidgets
用于SVG后处理的Vpype
(可选)Axidraw Python客户端
代码链接:
https://github.com/zoso95/plotter_guides/tree/master/genhut
(可选)Axidraw Python客户端安装指南:
https://axidraw.com/doc/py_api/#installation
基本步骤
生成艺术的第一件作品叫做Voronoi图,如下图所示:
我们需要画一堆多边形,然后填充其中一些多边形。
初始设计
我们要做的第一件事是调整画布的大小。通常使用11x14张纸。这里的想法是,我们希望我们的多边形延伸到框架的边缘之外,因此有一个更大的区域(x/y_bounds)来创建我们的多边形,然后实际上将它们显示在一个11x14的区域内:
x_bounds = np.array([0, 13])y_bounds = np.array([0, 16])x_buffer, y_buffer = 1, 1x_plot = x_bounds + np.array([x_buffer, -x_buffer])y_plot = y_bounds + np.array([y_buffer, -y_buffer])
还记得我说过Voronoi图包含点并给出多边形吗?让我们把这些点表示出来。这段代码将生成200点:num_points = 200x = np.random.uniform(*x_bounds, size&#