Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaawt的矩形交点_Java_Awt_Java 2d - Fatal编程技术网

javaawt的矩形交点

javaawt的矩形交点,java,awt,java-2d,Java,Awt,Java 2d,我有两个矩形,我想知道它们在哪一边相交。我可以使用Rectangle.intersects(Rectangle),但它只告诉我矩形是相交的。我试图做的是检查矩形是否在x轴或y轴上相交,但我不确定如何做。我建议只使用一些基本数学来确定矩形在哪里相交 矩形具有位置(左上角)、宽度和高度 假设R1位于(10,20),R2位于(40,50)。由于R1在R2的左侧和上方,因此这意味着如果R2与R1相交,R2必须在R1的右侧和/或下方相交 但是如果R2没有R1那么宽,它可能只在R1的底部相交 或者,如果R

我有两个矩形,我想知道它们在哪一边相交。我可以使用
Rectangle.intersects(Rectangle)
,但它只告诉我矩形是相交的。我试图做的是检查矩形是否在x轴或y轴上相交,但我不确定如何做。

我建议只使用一些基本数学来确定矩形在哪里相交

矩形具有位置(左上角)、宽度和高度

  • 假设
    R1
    位于
    (10,20)
    R2
    位于
    (40,50)
    。由于
    R1
    R2
    的左侧和上方,因此这意味着如果
    R2
    R1
    相交,
    R2
    必须在
    R1
    的右侧和/或下方相交
  • 但是如果
    R2
    没有
    R1
    那么宽,它可能只在
    R1
    的底部相交
  • 或者,如果
    R2
    没有
    R1
    高,则它可能仅在
    R1
    的右侧相交
  • 还有一种可能性是,
    R1
    R2
    完全重叠
因此,您需要结合使用矩形的位置及其大小来确定矩形的确切相交位置


最好的办法是在纸上写出来。然后写你的代码,如果你有任何问题,发布它,有人会帮助你。在发布答案时,只需编辑带有更改的原始帖子。

我建议只使用一些基本数学来确定矩形相交的位置

矩形具有位置(左上角)、宽度和高度

  • 假设
    R1
    位于
    (10,20)
    R2
    位于
    (40,50)
    。由于
    R1
    R2
    的左侧和上方,因此这意味着如果
    R2
    R1
    相交,
    R2
    必须在
    R1
    的右侧和/或下方相交
  • 但是如果
    R2
    没有
    R1
    那么宽,它可能只在
    R1
    的底部相交
  • 或者,如果
    R2
    没有
    R1
    高,则它可能仅在
    R1
    的右侧相交
  • 还有一种可能性是,
    R1
    R2
    完全重叠
因此,您需要结合使用矩形的位置及其大小来确定矩形的确切相交位置


最好的办法是在纸上写出来。然后写你的代码,如果你有任何问题,发布它,有人会帮助你。在发布答案时,只需编辑带有更改的原始帖子。

您知道如何判断图表上的一点相对于另一点的位置吗?例如,通过比较x1和x2以及y1和y2。对于矩形也可以这样做。当然,如果它们完全重叠,您将不知道输入的是哪一侧(假设它们朝着另一侧移动)。@WJS这是我第一次使用堆栈溢出,我不确定如何响应答案。你的意思是像距离公式一样,检查到角点的距离是否为0或更小,并返回哪个角点的枚举值?你知道如何判断图形上的一个点相对于另一个点的位置吗?例如,通过比较x1和x2以及y1和y2。对于矩形也可以这样做。当然,如果它们完全重叠,您将不知道输入的是哪一侧(假设它们朝着另一侧移动)。@WJS这是我第一次使用堆栈溢出,我不确定如何响应答案。你的意思是像距离公式一样,检查到角点的距离是否为0或更小,并返回哪个角点的枚举值?