algorithm - 形状拖动问题

标签 algorithm

我需要设计一个软件,用户可以在窗口中拖动形状。问题是可能有数千种形状,并且可能存在一些限制,例如一个形状不能位于另一个形状之上。

所以我实际上需要知道如何组织数据存储和一些算法来快速确定形状是否可以放置在某个特定位置。 我认为这个问题已经解决了很多次,但我不知道如何正确谷歌它。您能为我提供一些有关该主题的信息吗? 谢谢!

最佳答案

四叉树(2D,如果是 3D,则为八叉树)通常用于碰撞检测。想法是递归地将空间划分为正方形/立方体,并将形状放入正确的正方形/立方体中。当您需要对给定形状执行碰撞检测时,您可以仅测试同一正方形/立方体中的形状。

还有其他结构,每种结构都有优缺点,具体取决于您所面临的限制。如果其他形状是静态的,BSP树也可以是一个很好的结构。

关于algorithm - 形状拖动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408026/

相关文章:

python - 编写代码 O(256)?

java - 从自上而下的 2-3-4 左倾红黑树中删除需要什么额外的旋转?

C# 算法 - 找到最少数量的必要对象

python - 映射列表列表中元素之间所有关系的过程

algorithm - [特定时间间隔内的最大能量]

c++ - boost::multi_array 上的维度无关循环?

algorithm - BFS 和 DFS 算法有什么区别?

java - Horner 的小数部分递归算法 - Java

algorithm - 是否总有一些 MST 是最短路径树?

java - 如何将 2d 阵列旋转小于 90°,以获得最佳近似值?