【发布时间】:2019-10-13 08:58:20
【问题描述】:
给定
-
3D 空间中的许多点的集合
(每个表示为 3 个浮点坐标(x, y, z)) -
3D 空间中的一组无限条线
(每个都由线上的一个任意点和一个 3D 方向向量表示)
有没有办法找出哪些点位于哪条线上(稍微容忍浮点错误),这比琐碎的@987654323更有效@在嵌套循环中针对每一行测试每个点的方法?
我正在考虑将两组中的一组存储在有助于交叉测试的特殊数据结构中。但是这样的数据结构会是什么样子呢?
(也可提供相关学术文献的链接。)
【问题讨论】:
-
您可以使用网格或 k-de 树。这个问题与 光线追踪问题 有很大关系,其中一个目标是找出光束击中物体的位置:cs.tau.ac.il/~dcor/Graphics/adv-slides/RT_acceleration13.pdf
-
O(n²) 在技术上是错误的,除非点数和线数的顺序相同。
标签: data-structures 3d time-complexity computational-geometry intersection