体育动态

多边形面积符号怎样反映顶点绕行方向:八组凹边界的绕行方向与面积·练习07


地图区域的边界点按不同方向走一圈,带符号面积会改变正负,但实际覆盖面积不会因此变成负数。用一个矩形挖去上边凹口的例子,可以同时核对边界公式和直观分块。

本篇使用一组可以手算或逐行复查的虚构游戏记录。先读清操作顺序与边界,再看完整过程;它不是某一款现有游戏的隐藏公式,也不要求读者安装工具。

规则与输入

坐标横向右、纵向上,八个顶点组成没有自交的凹多边形。按给定顺序将相邻点的横纵交叉乘积作差并求和,最后除二得到带符号面积;最后一点必须接回第一点。另比较倒序顶点。

八组外框上边带矩形凹口的独立边界,均包含闭合的最后一条边。

逐步计算与结果

第1组外框6×8,凹口宽3、深3,平移[-2, -7],顶点[[-2, 1], [0, 1], [0, -2], [3, -2], [3, 1], [4, 1], [4, -7], [-2, -7]]。逐边交叉差[-2, 0, 6, 9, -1, -32, -42, -16],合计-78,带符号面积-39,倒序为39,实际面积39。

第2组外框6×5,凹口宽1、深3,平移[-7, 7],顶点[[-7, 12], [-4, 12], [-4, 9], [-3, 9], [-3, 12], [-1, 12], [-1, 7], [-7, 7]]。逐边交叉差[-36, 12, -9, -9, -24, 5, 42, -35],合计-54,带符号面积-27,倒序为27,实际面积27。

第3组外框8×8,凹口宽4、深1,平移[4, -2],顶点[[4, -2], [12, -2], [12, 6], [10, 6], [10, 5], [6, 5], [6, 6], [4, 6]]。逐边交叉差[16, 96, 12, -10, 20, 6, 12, -32],合计120,带符号面积60,倒序为-60,实际面积60。

第4组外框14×9,凹口宽3、深2,平移[6, 3],顶点[[6, 12], [13, 12], [13, 10], [16, 10], [16, 12], [20, 12], [20, 3], [6, 3]]。逐边交叉差[-84, -26, -30, 32, -48, -180, 42, 54],合计-240,带符号面积-120,倒序为120,实际面积120。

第5组外框8×10,凹口宽1、深2,平移[8, -6],顶点[[8, 4], [13, 4], [13, 2], [14, 2], [14, 4], [16, 4], [16, -6], [8, -6]]。逐边交叉差[-20, -26, -2, 28, -8, -160, -48, 80],合计-156,带符号面积-78,倒序为78,实际面积78。

第6组外框8×5,凹口宽4、深3,平移[0, -7],顶点[[0, -7], [8, -7], [8, -2], [5, -2], [5, -5], [1, -5], [1, -2], [0, -2]]。逐边交叉差[56, 40, -6, -15, -20, 3, -2, 0],合计56,带符号面积28,倒序为-28,实际面积28。

第7组外框10×6,凹口宽3、深4,平移[8, -1],顶点[[8, -1], [18, -1], [18, 5], [16, 5], [16, 1], [13, 1], [13, 5], [8, 5]]。逐边交叉差[10, 108, 10, -64, 3, 52, 25, -48],合计96,带符号面积48,倒序为-48,实际面积48。

第8组外框7×10,凹口宽1、深4,平移[1, 8],顶点[[1, 8], [8, 8], [8, 18], [4, 18], [4, 14], [3, 14], [3, 18], [1, 18]]。逐边交叉差[-56, 80, 72, -16, 14, 12, 36, -10],合计132,带符号面积66,倒序为-66,实际面积66。

逐组用外框减凹口核验绝对面积,正负只随绕行方向变化,平移不增加或减少覆盖。

怎样独立复核

不使用边界求和,直接用外矩形面积减去凹口矩形面积,应该等于带符号面积绝对值。倒序只改变符号,平移全部点不改变面积;这些是本例的独立交叉检查。

很多图像坐标的纵轴向下,视觉顺逆时针的解释会反过来,应先说明坐标约定。自交边界需要额外定义填充规则,不能直接拿这里的绝对值当作任何复杂路径的覆盖面积。

练习时可以只改变一个输入,再预测哪一步会最先改变。保留中间记录,检查空状态、相等数值和刚好落在边界的情况。最终结果碰巧相同,并不能证明两个过程等价;反过来,采用不同规则得出不同结果,也不应立即视作程序故障。