这里的主要机制是一种基于力的算法,它会计算作用在新增顶点上的力,并反复移动它们到一个平衡点(力的幅度和方向取决于邻近分支点的导线)。如果接入某个顶点(终点或新增点)的一对线段之间的角度小于120度(图13a和图13b),可以再增加一个分支点(图13b和图13d),然后使用力学算法优化顶点的位置(图13c和图13d)。最终结果如图13e所示。
值得注意的是,只是按降序排序所有角度然后按这个顺序增加新的顶点是行不通的,结果会更糟。在新加一个节点之后,你应该检查由4个引脚组成的子网的最小性:
1.如果顶点增加到其它新增顶点的邻近位置,要检查最小的四引脚网络(图14a)。 2.如果四引脚网络不是最小的,选择一对“对角”(属于四边形对角线)终点或虚拟的终端节点(虚拟终端节点-导线弯曲)。 3.连接终点(虚拟终点)到最近的新增顶点的线段被连接终点(虚拟终点)到远处的新增顶点的线段所代替(图14b)。 4.使用力学算法优化顶点的位置(图14c)。
图14:重新构建四引脚子网(a-c):算法步骤。
这种方法并不保证构建最小的网络,但相比其它方法,它不用牧举就能实现最小的网络长度。它还考虑到了终点连接被禁止的区域,并且终端节点数量可以是任意的。
其它优势
任何角度灵活布线还有其它一些有趣的优势。例如,如果你能借助自动的实时导线形状重新计算功能自动移动许多物体,你可以创建并行的蛇形线。这种布线方式能够更好的利用空间,最大限度地减小反复次数,并且允许灵活地使用容差(见图15)。如果有两条蛇形线相互交织在一起,自动布线器会减小其中一条或同时减小两条的长度,具体取决于规则优先级。
图15:在自动模式中延时校准可以按串行而不是并行的方式完成。这样可以更好的利用空间,最大限度地减少反复次数,并灵活地使用容差。
|