java - 与 Java AWT 的矩形交集

标签 java awt java-2d

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

最佳答案

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

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

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

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

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

关于java - 与 Java AWT 的矩形交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62473324/

相关文章:

java - 如何让多个文本框以随机方向移动,并且它们之间有特定的时间间隔?

JavaFX setPrefSize 不会更改 vBox 大小

java - 从子类到父类(super class)获取浮点属性

java - 在随机位置绘画

java - 在 Java 中处理 PNG

javascript - javascript 完成后如何让 HtmlUnit 更新页面

java - 用另一个字符串替换文件中的行

java - 无法在 Java 上加载图像 (BlueJ)

java - 方法没有给出想要的结果?

java - 在 Java2D 中动态着色 Sprite ?