3D 线与多面体 (Multipatch) 相交 (3D Analyst) 的工作原理
3D 线与多面体 (Multipatch) 相交工具会查找线与多面体之间的相交点,并选择性地将这些点和/或在这些位置分割的线写入到输出要素类。在 3D 欧氏空间中对 3D 要素执行计算。该工具会返回一个表示查找到的相交点数的数字(整数)。
当指定输出点要素类时,线和多面体的 OID 都将被写为各点的属性,以标识哪两个要素负责创建该点。沿该线的 3D 距离(从线的起点到相交点)将被包括在内。
指定输出线要素类时,输入线在与多面体的相交点处被分割,然后写出。源线 OID 以及负责分割点的起点和终点的多面体的 OID 也会包括在内。数字 -1 用作表示当线的起点和终点不是相交点(即分割位置)而是原始输入线的起点或终点时的代码。与源输入线起点相关的输出线的起点的 3D 距离被包括在内。如果线与任何多面体都不相交,则将其完整复制到输出。
如果多面体与原始线相交,则完整的初始线将由一条或多条新线表示,合并时其在几何上相当于原始线。从原始线派生出来的各新线的 LENGTH_3D 值的总和将等于原始线的 3D 长度。
对于每条新线,DIST_3D 和 LENGTH_3D 的总和将等于沿新线的终点所在的原始线的 3D 距离。
对于生成的每条新线,都会有一对多面体 ID。如果新线来自原始线的起点,并且没有与多面体恰好在原始线的起点处相交,则 -1 被指定为新线起点多面体的 ID。同样,如果新线来自原始线的终点,并且没有与多面体恰好在原始线的终点处相交,则 -1 被指定为新线终点多面体的 ID。
对于来自原始线(即没有共同端点)内部的每条新线,如果可以找到相匹配的一对,则可以为每个端点指定相同的多面体 ID;否则,为各端点指定最先发现的多面体 ID。例如,如果一条线穿过两个邻接的方块(多面体 1 和多面体 2)但不穿过其他物体,而且原始线的两个端点在多面体的外部,则将创建四条新线。各条新线的多面体 ID(起点和终点)为 (-1, 1);(1, 1);(2, 2) 和 (2, -1)。