企业文化

方格四角穿过等值线时为什么有时需要额外连接规则:独立观察第16例


用四角数值画一条零等值线时,普通格子往往只有两个边界交点;正负值交替分布时却会出现四个交点,仅凭交点位置无法唯一决定连接方式。

四角依次为左上、右上、右下、左下,边编号按同样顺序绕行。正负异号的边按线性插值找到零点。两个交点直接相连;四个交点时,本例约定四角平均值非负就把中心视为正,否则视为负,并围住与中心符号相反的角。

输入与计算记录

每行四个角值按左上、右上、右下、左下排列。交点记录为边编号对应的横纵坐标,连接用两端边编号表示。

四角值 | 中心平均 | 各边零点 | 连接边对 [7, -8, 9, -2] | 3/2 | {'0': ['7/15', '0'], '1': ['1', '8/17'], '2': ['2/11', '1'], '3': ['0', '7/9']} | [[0, 1], [2, 3]] [2, 1, -2, -9] | -2 | {'1': ['1', '1/3'], '3': ['0', '2/11']} | [[1, 3]] [-9, -7, -9, -4] | -29/4 | {} | [] [-7, 7, -4, 1] | -3/4 | {'0': ['1/2', '0'], '1': ['1', '7/11'], '2': ['1/5', '1'], '3': ['0', '7/8']} | [[0, 1], [2, 3]] [-2, -4, 2, -9] | -13/4 | {'1': ['1', '2/3'], '2': ['9/11', '1']} | [[1, 2]] [-7, -9, 1, 1] | -7/2 | {'1': ['1', '9/10'], '3': ['0', '7/8']} | [[1, 3]] [7, -1, 4, 4] | 7/2 | {'0': ['7/8', '0'], '1': ['1', '1/5']} | [[0, 1]] [-4, 4, 9, 2] | 11/4 | {'0': ['1/2', '0'], '3': ['0', '2/3']} | [[0, 3]]

阅读记录时先确认编号代表的是格子、对象、时间还是数组位置,再逐项对应输入与输出。中间状态提供了定位差异的依据,最后的一个合计数字不能替代全部步骤;没有对象的集合与数值零也应区别看待。

怎样检查这个结果

输入角值全部非零,避免端点恰好在线上的特殊情况。每个交点必须位于相应边上且插值值为零;四交点时形成两段连接,每个交点恰好使用一次,中心平均值为零按正号处理。

这是一个明确约定的简化等值线构造,不宣称完全复原格子内部的真实曲线,也不把中心平均规则当作所有软件的通用实现。相邻格共享的边应使用相同端点和插值规则,才能避免边界裂缝。

可以遮住结果表先按规则复算第一步,再选择一个边界输入重复操作。若更换规则中的任一前提,应重新推导结果,不要只调整最后答案。这样既能理解本例为何成立,也能看清它在哪些情况下不再适用。