java中两个矩形之间的碰撞检测
发布时间:2020-12-15 05:18:15 所属栏目:Java 来源:网络整理
导读:我有两个矩形,红色矩形(可以移动)和蓝色矩形. 两者都有:x,y,宽度,高度. 当蓝色和红色矩形之间发生碰撞时,如何用Java等编程语言说? 解决方法 if (RectA.X1 RectB.X2 RectA.X2 RectB.X1 RectA.Y1 RectB.Y2 RectA.Y2 RectB.Y1) 假设您有Rect A和Rect B.证明是
我有两个矩形,红色矩形(可以移动)和蓝色矩形.
两者都有:x,y,宽度,高度. 当蓝色和红色矩形之间发生碰撞时,如何用Java等编程语言说? 解决方法if (RectA.X1 < RectB.X2 && RectA.X2 > RectB.X1 && RectA.Y1 < RectB.Y2 && RectA.Y2 > RectB.Y1) 假设您有Rect A和Rect B.证明是矛盾的.四个条件中的任何一个都保证不存在重叠: Cond1. If A's left edge is to the right of the B's right edge,- then A is Totally to right Of B Cond2. If A's right edge is to the left of the B's left edge,- then A is Totally to left Of B Cond3. If A's top edge is below B's bottom edge,- then A is Totally below B Cond4. If A's bottom edge is above B's top edge,- then A is Totally above B So condition for Non-Overlap is Cond1 Or Cond2 Or Cond3 Or Cond4 因此,重叠的充分条件恰恰相反(De Morgan) 不是Cond1而不是Cond2而不是Cond3而不是Cond4 A's Left Edge to left of B's right edge,and A's right edge to right of B's left edge,and A's top above B's bottom,and A's bottom below B's Top 注1:很明显,同样的原则可以扩展到任意数量的维度. 如果您很难想象它的工作原理,我在silentmatt.com/intersection.html上做了一个示例页面,您可以在其中拖动矩形并查看比较. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |