女士们,先生们,老少爷们儿们!在下张大少。 前文回顾: 震惊!印第安原始部落手工艺品用数学对称性蒙骗游客,你可敢信? 我们直观地探讨了对称差集集运算应用于简单平面区域的对称排列。快速算法执行这一操作的区域由多边形曲线被广泛使用,使其成为一个实用工具的数学艺术。 集合的对称差 给定两个集合A和B,它们的对称差集A⊕B包含恰好属于给定集合之一的所有元素。更正式的说法是:A⊕B=(A∪B)−(A∩B)。这个简单的运算是交换和结合的,因此它可以毫不含糊地应用于任何有限集合。一般来说,一个元素属于A1⊕A2⊕···⊕An ,如果它属于Ai[3]的奇数。两组、三组和四组对称差集的维恩图如图1所示。 图1:两个、三个和四个集合的对称差集的维恩图。 渲染大量平面区域的对称差集的复杂性可以通过将每个区域想象成半透明的圆盘来说明。随着层的增加,重叠区域会变暗,并且每个子区域会根据其所属的层的数量而变暗。以2为模减少这些层数得到对称差集,其中1表示某个点属于对称差集,0表示它不属于对称差集。参见图2。 图2:左图:七个半透明的圆盘。中间:七个圆盘的对称差集。右:Mathematica的对称差集算子应用于七个盘形区域。 计算 虽然矢量图形程序覆盖半透明区域很简单,但识别包围特定阴影的每个连通子区域的边界曲线则完全是另一回事。这正是有效计算对称差集所需要的。计算对称差集的算法的最新进展(例如参见[1,2])已经产生了快速、健壮的软件。Matlab、Mathematica、OpenSCAD和大多数CAD程序现在可以计算离散化平面区域(即由一条或多条多边形曲线包围的区域)的对称差集。 图2中最右边的图像展示了Mathematica的对称差集运算符如何计算七个圆盘的对称差集。首先,每个圆盘用一个有几百条边的多边形来近似。显示了构成磁盘边界的多边形路径上的顶点。然后,该算法计算两条路径的一对边相交的每个点,并将这些点添加到顶点集合中。最后,实心区域出现在对称的差异被三角化以填充它们。 图2:左侧:7个半透明圆盘。中:七个圆盘的对称差集。右图:适用于七个圆盘状区域的数学对称差运算符。 布尔集合运算计算算法的创新一直是由应用程序驱动的。例如,在熔融沉积建模中,在3D打印之前对模型进行切片会将模型分解为水平层。每一层都是一个平面区域,其轮廓是挤出机的刀具路径。两个相邻层中区域的差异表示印刷品的部分将不被支撑--在印刷品的这一部分下面将有没有材料的突出部分。切片软件越来越多地使用这些区域差异来自动标记这些潜在的问题区域。另一个应用程序使用海洋照片来模拟冰盖。对称差集异可以用来突出冰盖随时间变化的区域[2]。 对称的对称差集 我们对对称差集的兴趣不是由这样的实际应用驱动的,而是由当应用于简单形状的对称排列——对称对称差集时运算所固有的几何美感和复杂性所驱动的。例如,图3显示了五个等边三角形排列的对称差集,每个等边三角形是通过围绕一个公共点旋转2π/5而从下一个三角形获得的。由此产生的图形的错综复杂掩盖了其构造的简单性。 图3:五个等边三角形的对称差集。五个三角形中的一个画在右边;其他的是通过围绕指示点旋转2π/5的倍数获得的。 当然,我们可以将任何图形的副本均匀地排列在一个圆圈周围,并取它们的对称差集。比如说,让我们把图3所示的整个五三角形结构复制三个副本,每个副本都是通过围绕一个公共点旋转2π/3而从下一个副本获得的。这三个集合的对称差集实际上就是3×5=15个相同的等边三角形的特定排列的对称差集。这是关联性的直接结果。图4显示了旋转中心三种不同选择下的万花筒效果。 图4:每幅图显示了15个相同等边三角形的对称差集。图3中的结构的三个副本通过2π/3旋转,具有三个不同的旋转中心。 图5显示了图3中10个副本的结构围绕一个公共点旋转的对称差集,使其成为50个相同等边三角形排列的对称差集。 图5:左:50个相同的等边三角形的对称性差异。图3中的结构围绕一个公共点旋转了2π/10的倍数。右图。中心的特写。 创建简单图形的对称排列的另一种方法始于参数曲线,例如图6中间所示的七叶次摆线。该曲线的区域被均匀地分成许多小的子区间。然后将正方形的中心放在曲线上由分割确定的每个点上,这样正方形的一条对角线与曲线相切。然后我们取所有这些方块的对称差集。 图6:63个正方形(左)和28个正方形(右)的对称差集。正方形的中心位于七瓣曲线(中间)上,一条对角线与曲线相切。 我们选择沿着曲线放置63个正方形来产生图6中左边的图像,而使用28个正方形来产生右边的图像。这些选择,加上每个方块的大小,纯粹是审美的。用于这些图像的正方形的大小显示在中央面板中。注意7 × 9 = 63,左边曲线的每个波瓣有9个方块。右边曲线的每个波瓣有4个方块。每当正方形的总数是7的倍数时,将在曲线上离其中心最远的每个点上放置一个正方形;如果正方形的总数是7的偶数倍,那么也将在曲线上最接近其中心的7个点上精确地放置一个正方形(图6的中心显示了每种正方形的示例)。因此,放置在每个波瓣上的正方形数量的均等对所得图像的中心区域具有有形的视觉效果。 总结和结论 简单形状的简单排列,当透过对称差集算子观察时,可以揭示复杂的对称性和惊人的图案。我们的示例仅说明了使用该工具创建图像的无数可能性中的几种。对称差集运算的快速、健壮和精确实现使其使用比以往任何时候都更容易。 参考文献 [1] M. Gaspar. “A procedure for computing the symmetric difference of regions defined by polygonal curves.” Journal of Symbolic Computation, vol. 61–62, 2014, pp. 53–65. https://www./science/article/pii/S0747717113001272. [2] F. Martínez, A. J. Rueda, and F. R. Feito. “A new algorithm for computing Boolean operations on polygons.” Computers & Geosciences, vol. 35, no. 6, 2009, pp. 1177–1185. https://www./science/article/pii/S0098300408002793. [3] C. Woo. “Symmetric difference on a finite number of sets.” Planet Math, 2013. https:///symmetricdifferenceonafinitenumberofsets. 青山不改,绿水长流,在下告退。 转发随意,转载请联系张大少本尊,联系方式请见公众号底部菜单栏。 |
|