当前位置: 首页 > 知识库问答 >
问题:

如何确定百万个数据点中的哪些点(x,y)位于矩形(x1,x2,y1,y2)描述的区域内?

宰父智敏
2023-03-14

我需要弄清楚如何检查某些点是否位于给定坐标(x1,x2,y1,y2)的矩形内部或外部,即矩形的左上点和右下点。积分总数相当大,约为200万。我知道在这种情况下使用四叉树,但我似乎不知道如何在这里应用它。比如在树中存储什么以及如何查询它。

如果有人能帮助我理解如何有效地解决这个问题,那么这也太好了!

共有1个答案

况唯
2023-03-14

如果您已经以随机顺序静态存储了所有n个点,并且想要处理它们,那么没有什么比线性搜索检查每个点的条件更好的了(您可以做的唯一改进是让进程和线程包裹点数组的不同块)。

如果您动态地接收它们,您可以在接收时将它们存储在一个四叉树中。然后你可以在n(平均)的对数时间内搜索一个矩形的点数。

 类似资料:
  • Draws a line Parameters x1numberx coordinate position of the start y1numbery coordinate position of the start x2numberx coordinate position of the end y2numbery coordinate position of the end Returns:

  • Returns squared distance between two points Parameters x1numberx coord of first point y1numbery coord of first point x2numberx coord of second point y2numbery coord of second point Returns: number dis

  • Returns distance between two points Parameters x1numberx coord of first point y1numbery coord of first point x2numberx coord of second point y2numbery coord of second point Returns: number distance

  • Returns an angle between two or three points Parameters x1numberx coord of first point y1numbery coord of first point x2numberx coord of second point y2numbery coord of second point x3numberx coord of

  • 在空间中,有两条线段,分别是线段AB和线段CD,它们的顶点坐标分别是A(x1,y1,z1),B(x2,y2,z2),C(x3,y3,z3);D(x4,y4,z4),请问如何求线段AB与线段CD的交点坐标?

  • 请帮助我如何找到两个矩形区域之间的交点。 例如:我在virtual earth MapsV6.3中搜索可视区域的结果 地图返回给我左上和右下的点作为纬度和经度。然后我平移区域移动到不同的位置。我有我的旧坐标保存现在我想找到共同的区域之间的旧的可视区域和新的可视区域。我已经有左上和右下的点了。