# Verwirrung mit Submatrix



## Kirby.exe (14. Dez 2020)

Alsoo ich habe ein gegebenes Grauwert Bild (repräsentiert als int[][]) und möchte hier eine Submatrix erstellen. Für die Methode über gebe ich das Zentrum der Submatrix. Sprich z.B. int x und int y. Ich habe ein gegebenes k (welches auch geändert werden kann), welches garantiert eine ungerade Zahl ist. Somit habe ich dann eine Ergebnis Matrix k x k. Ich verstehe noch nicht ganz wie ich abhängig vom k ermitteln, wie viele Zellen links und rechts oder oben und unten von meinem Punkt (x,y) liegen. 

Ich stehe gerade irgendwie auf dem Schlauch...xD


----------



## httpdigest (14. Dez 2020)

Das ist doch nun wirklich nicht so schwer. Wenn dein k also die Seitenlänge deiner Subregion/Submatrix angibt, und (x, y) das Zentrum der Submatrix (innerhalb des grossen Bildes/der grossen Matrix), dann:

```
minX = x - k/2; // <- integer Division!
maxX = x + k/2;
minY = y - k/2;
maxY = y + k/2;
```
Für k = 3 und (x, y) = (100, 200) ergibt sich also z.B.:

```
minX = 100 - 3/2 = 99; // <- integer Division!
maxX = 100 + 3/2 = 101;
minY = 200 - 3/2 = 199;
maxY = 200 + 3/2 = 201;
```


----------



## Kirby.exe (14. Dez 2020)

Och gott xD Das war nun wirklich nicht kompliziert xD


----------

