【问题标题】:Finding a point within a 3D Voronoi region在 3D Voronoi 区域内查找一个点
【发布时间】:2014-05-07 07:34:27
【问题描述】:

我正在使用 Scipy 的空间包 Voronoi 类来生成输入点的 3D 细分。然后我在“盒子”域内随机插入点。我遇到麻烦的地方是弄清楚如何检查随机点是否在给定的 Voronoi 区域内。我认为,由于我拥有每个 Voronoi 区域的所有顶点,我应该能够做到这一点,但我无法绕开它。任何可以相当直接地做到这一点的见解、示例代码或 python 工具?

非常感谢任何帮助, 某人

更新,我想我遗漏了一些关键信息:

我需要遍历每个 Voronoi 区域,在整个区域内生成随机点,但只保留该特定 Voronoi 区域的点。我正在对每个区域的整个 Voronoi 空间的分布进行抽样。

【问题讨论】:

    标签: 3d volume voronoi vertices point-in-polygon


    【解决方案1】:

    当您有输入点时,最简单的方法是遍历它们并检查哪个最接近您的新点。

    最近的输入点将代表包含新点的区域。

    【讨论】:

    • 这行得通,但是我的问题有一个警告。本质上,我需要遍历每个 Voronoi 区域,在整个区域内生成随机点,但只保留该特定 Voronoi 区域的点。我正在对每个区域的整个 Voronoi 空间的分布进行抽样。
    • 您是受性能约束还是只想让它发挥作用?您的典型区域编号和随机点数是多少?您还可以通过凸包的多边形进行区域检查。
    • 只想让它工作!区域编号可以是 1000 个,随机点的数量可以是 100,000 个。一定要给你更多细节我很重要,我试着写我自己的代码来做这件事:li.mit.edu/Archive/Graphics/A/utils.html#voronoirize
    • 对于这么多区域,为您的区域边界创建一个切割平面可能会更好,这将导致该区域的凸包。这样您就可以更快地检查点-区域碰撞。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多