因此,我从一个矩形传递 double 值,以查看它是否与另一个矩形相交。我将属性值 (x, y, w, h) 作为参数传递给函数,然后在其中创建一个矩形并将参数设置为其属性。然后我使用 rectangle.intersects(rect)
对其进行测试看看它们是否重叠。代码如下。
问题:行 inputRectangle.intersects(scannedRectangle);
给出一个错误,显示 "Incompatible types: Rectangle cannot be converted to bounds
.
Google 和 SO 搜索没有找到该错误的结果。
我怎么处理这个问题是错误的?谢谢
import javafx.scene.shape.Rectangle;
-----------^^^^^^^^^^^^^^^^------------
public boolean isIntersectingNode(double inputX, double inputY, double inputWidth, double inputHeight)
{
Rectangle inputRectangle = new Rectangle(inputX, inputY, inputWidth, inputHeight);
double newX = 20, newY = 20, newW = 20, newH = 20;
Rectangle scannedRectangle = new Rectangle(newX, newY, newW, newH);
return inputRectangle.intersects(scannedRectangle); <<<<<<<ERROR HERE
}
注意:我稍微简化了代码。但无论我如何更改代码,scannedRectangle
函数中的段给出了该错误。
最佳答案
javafx.scene.shape.Rectangle
是一个Node
。由于您没有将这些对象用作场景的一部分,因此最好使用 javafx.geometry.Rectangle2D
检查交叉点。此类不扩展 Node
,它允许您检查 2 个 Rectangle2D
的交集。
public boolean isIntersectingNode(double inputX,
double inputY,
double inputWidth,
double inputHeight) {
Rectangle2D inputRectangle = new Rectangle2D(inputX, inputY, inputWidth, inputHeight);
double newX = 20, newY = 20, newW = 20, newH = 20;
Rectangle2D scannedRectangle = new Rectangle2D(newX, newY, newW, newH);
return inputRectangle.intersects(scannedRectangle);
}
关于java - "Rectangle cannot be converted to bounds"使用矩形.相交()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505969/