我有对方旁边的形状,有的则是对自身粘贴两次Recangle2D相交的在Java领域,我想弄清楚通过得到两个物体相交的百分率对象粘贴,我编码单个对象与所有其他对象,在那里我会得到这样的90%相比意味着被复制(粘贴两次)
如何找到在Java Recangle2D相交的区域? 矩形的面积是areaRect=width * Height
我想这一点,但没有工作:如何找到
public void perceOf2Rect(Rectangle2D r1,Rectangle2D r2){
Rectangle2D rectArea=new Rectangle2D.Double();
rectArea=r1.getWidth() * r2.getHeight();
}
我使用的Rectangle2D.intersect
方法
public void compareLists(List<ObjectItem01> objItm1) {
for (int i = 0; i < objItm1.size(); i++) {
for (int j = 0; j < objItm1.size(); j++) {
if (objItm1.get(i).objectID == objItm1.get(j).objectID) {
continue;
}
System.out.println("objID1 "+objItm1.get(i).objectID);
System.out.println("objID2 "+objItm1.get(j).objectID);
Rectangle2D rect1 =objItm1.get(i).getRect();
Rectangle2D rect2 = objItm1.get(j).getRect();
Rectangle2D rectResult = new Rectangle2D.Double();
Rectangle2D.intersect(rect1,rect2,rectResult);
testIntersectResult (rect1,rect2,rectResult);
}}
}
在该方法中,我得到不同的值,这意味着有交叉点,但我想要确定该交点的百分比,因为如果交点是10%,它不会在我的情况下重复,而90%是重复的
private void testIntersectResult(Rectangle2D r1, Rectangle2D r2, Rectangle2D rectDest) {
System.out.println("beginning of testIntersectResult method");
Rectangle2D.intersect(r1,r2,rectDest);
System.out.println("\nRect1:\n "+r1+"\nRect2:\n "+r2+"\nrectResult:\n "+rectDest);
}
也许我误解了这个问题,但是使用[内建的'Rectangle2D#intersect'方法]有什么问题(http://docs.oracle.com/javase/7/docs/api /java/awt/geom/Rectangle2D.html#intersect%28java.awt.geom.Rectangle2D,%20java.awt.geom.Rectangle2D,%20java.awt.geom.Rectangle2D%29)? – Vulcan
我使用它,只是我想每个对象的百分比值,以确定是重复的形状或不 – a14
这将有什么事情在你的问题,包括:P您可以通过执行找到交集的比例'intersectArea /( r1Area + r2Area - intersectArea)'。 – Vulcan