我有一堆点的坐标,想在 python 包中用它们创建曲面。我想在将数据导入包之前对其进行整理。点来自规则网格。首先,我根据点的位置创建线。在此步骤中,我仅定义哪些点号创建我的线。我的输入数据是:
coord = np.array(
[[0., 0., 2.], [0., 1., 3.], [0., 2., 2.], [1., 0., 1.], [1., 1., 3.],
[1., 2., 1.], [2., 0., 1.], [2., 1., 1.], [3., 0., 1.], [4., 0., 1.]])
下图显示了网格点的数量(灰色)和线的数量(蓝色和红色)。
这些线是通过字典建模的,其中键是线号,值是包含起点和终点编号的元组:
In [906]: blue_line
Out[906]: {1: (1, 2), 2: (2, 3), 3: (4, 5), 4: (5, 6), 5: (7, 8)}
In [907]: red_line
Out[907]:
{6: (1, 4),
7: (2, 5),
8: (3, 6),
9: (4, 7),
10: (5, 8),
11: (7, 9),
12: (9, 10)}
要了解有关如何生成线条的更多信息,请查看这个线程 https://stackoverflow.com/questions/65626486/how-to-select-some-lines-created-by-points-based-on-their-distances-in-python。用于创建曲面的线存储在列表中:
surfaces = [(1, 6, 3, 7), (2, 7, 4, 8), (3, 9, 5, 10)]
作为最后一步,我想找到在创建曲面时未使用或已使用但比上图中虚线的限制更接近的线数。同样,我有创建虚线的两点的坐标:
coord_dash = [(2., 2., 2.), (5., 0., 1.)]
adjacency_threshold = 2
我想将这些相邻的行作为另一个列表(如图中的红色箭头所示):
adjacent_lines = [4, 10, 5, 11, 12]
我只有这个粗略的想法,不知道如何用Python编写它。我只能创建线号和曲面,并且需要帮助才能找到那些接近的线。