我在指定的空间中有一组矩形,它们可以有不同的尺寸和位置。矩形重叠的数据结构
我需要检测碰撞簇,彼此相交的矩形组,如附图所示,其中我有两个簇(红框)。
琐碎的方法是让这些矩形的载体,以双循环for
交叉检查,像什么
for (size_t i = 0; i < rectangles.size(); i++) {
for (size_t j = i + 1; j < rectangles.size(); j++) {
if (rectangles.at(i).intersect(rectangles.at(j)) {
// Add rectangle[j] to cluster in which rectangle[i] is
}
}
我不认为这是为了执行结石最有效的方法。
如何有效计算这些簇?我已经阅读了有关使用四叉树的平面分区的一些内容,但我不知道在这种情况下如何使用它们。这是合适的数据结构还是更有效的方法(我必须在软实时处理它)。
http://en.wikipedia.org/wiki/Collision_detection – 2014-08-27 13:46:12
相关:http://stackoverflow.com/q/5880558/951890 – 2014-08-27 13:51:02
@VaughnCato R-Tree是我的问题的正确选择,你同意吗?我犯了一个错误? – Jepessen 2014-08-27 13:57:46