# intersect von zwei Rechtecken



## Schuriko (29. Mrz 2020)

Ich suche gerade zwei effiziente Methoden, die

1. bestimmen ob sich zwei Rechtecke überschneiden
2. den Bereich (als Rechteck) der Überschneidung


----------



## mihe7 (29. Mrz 2020)

Was gefällt Dir an den betreffenden Methoden von java.awt.Rectangle bzw. java.awt.geom.Rectangle2D nicht?


----------



## Schuriko (29. Mrz 2020)

mihe7 hat gesagt.:


> Was gefällt Dir an den betreffenden Methoden von java.awt.Rectangle bzw. java.awt.geom.Rectangle2D nicht?


Das war nicht die Frage


----------



## kneitzel (29. Mrz 2020)

??? Du suchst effektive Methoden und du wurdest auf Methoden hingewiesen. Hast Du Dir diese mal angesehen?

Oder was stört Dich an den Methoden?


----------



## httpdigest (29. Mrz 2020)

Wenn du ein Rechteck durch den minimalen und maximalen Eckpunkt beschreibst, dann:

```
public boolean intersects(Rectangle other) {
    return minX < other.maxX && maxX >= other.minX &&
           maxY >= other.minY && minY < other.maxY;
}
public Rectangle intersect(Rectangle other) {
    float nMinX = Math.max(minX, other.minX), nMinY = Math.max(minY, other.minY);
    float nMaxX = Math.min(maxX, other.maxX), nMaxY = Math.min(maxY, other.maxY);
    if (nMinX > nMaxX || nMinY > nMaxY) {
        return null;
    }
    return new Rectangle(nMinX, nMinY, nMaxX, nMaxY);
}
```


----------



## Schuriko (29. Mrz 2020)

JustNobody hat gesagt.:


> ??? Du suchst effektive Methoden und du wurdest auf Methoden hingewiesen. Hast Du Dir diese mal angesehen?
> 
> Oder was stört Dich an den Methoden?


Weil mich der Algo interessiert und dieses sieht man nun mal nicht bei einer closed function


----------



## Schuriko (29. Mrz 2020)

httpdigest hat gesagt.:


> Wenn du ein Rechteck durch den minimalen und maximalen Eckpunkt beschreibst, dann:
> 
> ```
> public boolean intersects(Rectangle other) {
> ...


Danke dir! Jetzt weis ich wie man es am effektivsten erfüllen kann.


----------



## temi (29. Mrz 2020)

Schuriko hat gesagt.:


> Weil mich der Algo interessiert und dieses sieht man nun mal nicht bei einer closed function



Von Algorithmus kann man da kaum sprechen, es werden einfach nur ein paar Vergleiche gemacht und bezüglich "closed function":

http://developer.classpath.org/doc/java/awt/Rectangle-source.html


----------



## kneitzel (29. Mrz 2020)

Jo, der Source kann ja eingesehen werden. Daher kann das JDK sehr gut als Referenz genommen werden.


----------

