我有一组平面上已知坐标的散点(见示意图),以及将整个平面划分为区域(R1-R5)的四条曲线(C1-C4)。我还知道最小距离......
我有一组平面上已知坐标的散点(见示意图),以及将整个平面划分为区域(R1-R5)的四条曲线(C1-C4)。我还知道 每个点到每条曲线的最小距离 。有没有办法仅基于这些信息来估计该点属于哪个区域?我想用 Python 编写代码来做到这一点。我的想法是,首先找出每个点的最小距离 - 这会缩小该点属于哪个区域的选项范围。但那么我怎么知道点落在曲线的哪一侧?例如,点 A 和点 B 到曲线 C3 的最小距离 d1 和 d2 均最小,这意味着它们要么在区域 R3 要么在 R4,但有没有办法缩小哪个区域?好奇想知道这里是否有任何解决方案,或者是否需要更多信息来解决这个问题。
编辑:这是一个示例代码。我稍微简化了一下。数据存储在数据框中:
columns = ['Point', 'x', 'y', 'd1','d2','R']
data = [("A",1.5, 3.5, 1.2, 2.8, "NA"), ("B",3.5, 2.5, 0.8, 0.7, "NA"), ("C", 3.0, 0.5, 2.1,0.5,"NA")]
df = pd.DataFrame(data, columns=columns)
区域名称如下:
regions=["R1","R2","R3"]
输出数据框应该是:
output_columns = ['Point', 'x', 'y', 'd1','d2','R']
output_data = [("A",1.5, 3.5, 1.2, 2.8, "R1"), ("B",3.5, 2.5, 0.8, 0.7, "R2"), ("C", 3.0, 0.5, 2.1,0.5,"R3")]
output_df = pd.DataFrame(output_data, columns=output_columns)