algorithm - 使用什么算法来查找 2D 中的空白区域?

标签 algorithm unity3d 3d 2d

我有 3d 元素(触发器),在单击它们时会生成内容框。我正在寻找一种在触发器附近的空白区域生成元素的算法。二维方法可能就足够了,因为内容框需要面向用户。 生成的内容框不应与触发器对象重叠,也不应与其他 3d 元素/内容框重叠。

示例: 如果触发器是一个长的垂直管,第一个内容框可能会在它的左侧生成,下一个内容框会在右侧生成,因为左侧已经被内容框 1 占据。然后第三个内容框可能会在第一个内容框的上方/下方生成或者如果还有其他东西挡在第一个内容框的左侧。

这应该是实时工作的,它不必是实际的最近点,但应该旨在将所有内容紧密地放在一起。我认为这是一个很多人在我之前解决的问题,但不知何故我找不到足够的信息,也许我缺少正确的搜索词,我很高兴听到不同的方法、提示和想法。

谢谢

星期五

最佳答案

尝试在平面或空间中的现有点上创建网格。该网格可以是每个存在点上的两条垂直线。之后,创建一棵树来搜索这个空间。或者只是在这些点上创建一个 kd 树。您可以在计算几何上下文中找到有关这些内容的更多信息。

关于algorithm - 使用什么算法来查找 2D 中的空白区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51891279/

相关文章:

c++ - 查找图中由一个顶点分隔的顶点

c# - 如何在场景之间保留对象的完整状态?

c# - move 玩家然后改变场景

c++ - Qt OpenGL 磅值

android - 我怎样才能让玩家更难破解游戏关卡数据?

python - 通过 Python 使用 Spark 准备我的大数据

python - 查找最大化一列总和同时限制另一列总和的数据帧行的子集

unity3d - Unity DropDown.OnValuechanged 不起作用

C 用值初始化 3D 数组

python - 将颜色图添加到 add_collection(3d 图中的表面)