c++ - (C++) 需要使用 reg 找出半径内的所有点。二维窗口坐标。系统

标签 c++ algorithm visual-c++

提前抱歉,我正在为如何解释这个问题而苦苦挣扎......:)

本质上,我有一个典型的 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/

相关文章:

c++ - 如何在 C++ 中调用 LsaRemoveAccountRights

c++ - c++ std::list::front() 返回一个空列表是什么?

C++:ReadProcessMemory() 导致崩溃

c++ - 如何应对 int 溢出

c++ - 升级COM回调接口(interface)

c++ - 警告 C4247 和 C4248 是什么意思?为什么它们从 Visual C++ 2005 中删除?

Windows关闭然后启动后c++服务不会启动

algorithm - 有没有办法用networkX在有向图中找到半连接(单边连接)组件?

algorithm - 我应该使用多少个 bool 变量来表示一个图形?

algorithm - 以下斐波那契数列程序的时间复杂度是多少?代码使用动态规划