gpt4 book ai didi

java - 矩形相交共享边

转载 作者:行者123 更新时间:2023-12-02 06:19:56 24 4
gpt4 key购买 nike

我正在尝试确定两个矩形是否彼此相邻。如果它们共享一条边或一条边的一部分,那么我想包括它们,如果它们只共享一个顶点,那么我不想包括它们。

我尝试过使用 android android.graphics.Rect,我希望 intersect 方法会返回 true 给我一个矩形,宽度为 0 但相交边缘的点。我正在使用 andEngine 并尝试了 org.andengine.entity.primitive.Rectangle 的 collideswith 方法,但是它返回 true,即使矩形只共享一个角顶点。

有什么好的方法可以做到这一点吗?我能想到的唯一其他方法是尝试创建所有边的集合,然后查看它们是否相等或在某种程度上部分相等。

这是一张展示我想要的图片。如果我点击矩形 1,那么我想返回矩形 2,3 和 4,但不是 5。

“ map ”:

最佳答案

听起来你需要一个新的类来做到这一点。我会获取矩形每个角的坐标。然后,当您选择一个矩形时,您可以通过一次找到它们的一侧来获取与其相邻的矩形。以顶部为例,检查其他哪些矩形的角具有相同的高度。从该列表中,您可以检查哪些点存在于两个顶角之间的至少一个点上。因此,如果左上角是 0,3,右上角是 4,3,那么您将查找 y=3 处的角点列表。从该列表中,您可以找到 0<=x<=4 的所有角点,并且任何适合的角点都将是相邻的。然后,您对另外的每一面都执行相同的操作。它应该是一个很容易制作的类,但我不会编写任何代码,因为我不知道如何存储数据或如何在代码中引用它。如果您需要帮助,请发表评论。

关于java - 矩形相交共享边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21100842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com