提前抱歉,我正在为如何解释这个问题而苦苦挣扎......:)
本质上,我有一个典型的 Windows 坐标系(顶部、左侧为 0,0)。如果有人熟悉 haversine 查询,like in SQL ,它可以根据经纬度坐标得到一个半径内的所有点。
我需要更简单的东西,但我的数学技能还达不到标准!基本上,我将随机点散布在大约 600x400 的空间中。我需要针对 map 上的任何 X、Y 点运行查询以确定该点的给定半径内有多少其他点。
如果这还不够描述,请告诉我!
最佳答案
直接的方法:
您可以使用 Pythagorean theorem 计算点之间的距离:
deltaX = x1 - x2
deltaY = y1 - y2
distance = square root of (deltaX * deltaX + deltaY * deltaY)
给定点 x1,y1
,每隔一个点 (x2,y2
) 执行此操作以查看计算的距离是否在(小于或等于)您的范围内半径。
如果你想让它更快,计算并存储半径的平方,然后与 (deltaX * deltaX + deltaY * deltaY)
进行比较,避免平方根。
关于c++ - (C++) 需要使用 reg 找出半径内的所有点。二维窗口坐标。系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/466568/