【发布时间】:2014-01-13 20:36:17
【问题描述】:
我正在尝试确定两个矩形是否彼此相邻。如果它们共享一条边或边的一部分,那么我想包括它们,如果它们只共享一个顶点,那么我不包括。
我尝试过使用android android.graphics.Rect,我希望intersect 方法会返回true,给我一个矩形,宽度为0,但相交边缘的点。我正在使用 andEngine 并且还尝试了 org.andengine.entity.primitive.Rectangle 的 collideswith 方法,但是即使矩形只共享一个角顶点,它也会返回 true。
有什么好的方法吗?我能想到的唯一另一种方法是尝试创建所有边缘的集合,然后查看它们是否相等或以某种方式部分相等。
这是一张展示我想要的图片。如果我点击 rect 1,那么我想返回 rects 2,3 和 4,而不是 5。
“地图”:
【问题讨论】:
-
把它们当作一个图并持有一个邻接表怎么样?而不是你所说的边缘列表......
-
矩形移动还是旋转?试试 x 和 y 轴的点积。
-
不,矩形不会移动或旋转。我不熟悉点积或邻接列表,但我会去查找它们。
标签: java android andengine intersection rectangles