【问题标题】:Rectangle intersections with Java AWT与 Java AWT 的矩形交集
【发布时间】:2020-10-09 21:19:20
【问题描述】:

我有两个矩形,我想弄清楚它们在哪一边相交。我可以使用Rectangle.intersects(Rectangle),但它只告诉我矩形是相交的。我要做的是检查矩形是否在 x 或 y 轴上相交,但我不知道该怎么做。

【问题讨论】:

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

标签: java awt java-2d


【解决方案1】:

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

一个矩形有一个位置(左上角)和一个宽度和一个高度。

  • R1(10,20)R2(40,50)。由于R1 位于R2 的左侧和上方,因此这意味着如果R2R1 相交,则R2 必须与R1 的右侧和/或下方相交。
  • 但是如果R2没有R1那么宽,它可能只在R1的底部相交。
  • 或者如果R2没有R1那么高,它可能只在R1的右边相交。
  • R1R2 也有可能完全重叠。

因此,您需要结合矩形的位置和大小来确定矩形相交的确切位置。

最好的办法是尝试在纸上解决这个问题。然后编写您的代码,如果您有任何问题,请发布它,有人会提供帮助。发布答案时,只需编辑原始帖子并进行更改即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 2018-02-22
    • 1970-01-01
    相关资源
    最近更新 更多