我有 3d 元素(触发器),在单击它们时会生成内容框。我正在寻找一种在触发器附近的空白区域生成元素的算法。二维方法可能就足够了,因为内容框需要面向用户。 生成的内容框不应与触发器对象重叠,也不应与其他 3d 元素/内容框重叠。
示例: 如果触发器是一个长的垂直管,第一个内容框可能会在它的左侧生成,下一个内容框会在右侧生成,因为左侧已经被内容框 1 占据。然后第三个内容框可能会在第一个内容框的上方/下方生成或者如果还有其他东西挡在第一个内容框的左侧。
这应该是实时工作的,它不必是实际的最近点,但应该旨在将所有内容紧密地放在一起。我认为这是一个很多人在我之前解决的问题,但不知何故我找不到足够的信息,也许我缺少正确的搜索词,我很高兴听到不同的方法、提示和想法。
谢谢
星期五
最佳答案
尝试在平面或空间中的现有点上创建网格。该网格可以是每个存在点上的两条垂直线。之后,创建一棵树来搜索这个空间。或者只是在这些点上创建一个 kd 树。您可以在计算几何上下文中找到有关这些内容的更多信息。
关于algorithm - 使用什么算法来查找 2D 中的空白区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51891279/