本来遇到这个问题是因为在尝试为java的文件管理器的框选框设计需要.
我需要根据鼠标狂选的区域给定所选项目进行"选中",而判断选中的逻辑就需要这个判断子单位的区域和鼠标选框是否重叠.
本来我也是设计了一些算法,但是比较难受.自己就找到了反例.
本来的算法是,判断子项目的四个顶点中是否至少有一个在大的项目中.忽略了选框区域进入子单位和两者十字交叉的情况.便试着在网络上找找试试.
很快啊,找到了.
https://www.geeksforgeeks.org/find-two-rectangles-overlap/?ref=lbp
https://javarevisited.blogspot.com/2016/10/how-to-check-if-two-rectangle-overlap-in-java-algorithm.html#axzz7JLpSOe7j
和这个
也试着推了一下,尽管比较绕,也还算是理解了.
不过,这个坐标是4个象限的坐标系里面的坐标,对于java swing的0点坐标
还不太一样.
对于java swing中的判断两个矩形是否相交的代码是这样
可以在gitee 尝试
https://gitee.com/bludogs/java-box-selection.git



