У меня есть фигуры рядом друг с другом, некоторые из них вставляются дважды на себя, я хочу выяснить, какой объект вставляется через получение процента пересечения двух объектов, i закодированный для сравнения одного объекта со всеми другими объектами, где я получу как 90% означает, что дублируется (вставлено дважды)
Как найти область пересечения Recangle2D в java? площадь прямоугольника areaRect=width * Height
я попытался это, но не работал:Как найти область пересечения Recangle2D в java
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