Unendliche Matrix

daddz

Mitglied
Hi,
ich stehe vor einem Problem. Undzwar brauche ich quasi eine Matrix die man unendlich erweitern kann. Ich brauche das um einen Stadtplan in alle richtungen unendlich erweiterbar zu machen. Hab das hier jetz im Coders Talk gepostet weil ich nich wusste wo ich´s sonst rein tun soll.Ich brauchs halt zum programmieren und deshalb ist es hier!
Naja...um das ganze mal anschaulich zu machen hier mal mein Versuch mit einer 3x3 Matrix:
Code:
222    222    222    222    222
210    210    111    012    012
201    000    000    000    102

222    111    111    111    222
210    100    000    001    012
210    100    000    001    012

210    100    000    001    012                            234
210    100    000    001    012  ==> hier dann irgendwo    234
210    100    000    001    012                            234

210    100    000    001    012
210    100    000    001    012
222    111    111    111    222

201    000    000    000    102
210    210    111    012    012
222    222    222    222    222
Des is jetz nur mal so auf die schnelle. Die 0-Matrix in der Mitte ist das Zentrum. Nun will ich das so machen, dass man das immer so weitermachen kann bis ins unendliche, ohne dass eine Matrix zweimal vorkommt. So kann ich quasi aus der Matrix z.B.
Code:
234
234
234
den genauen Standpunkt feststellen. (zur 0-Matrix halt).
Ich hoffe ihr könnt mich ein bisschen verstehen. Vielleicht hab ich auch den total falschen Ansatz. Ich hoffe ihr könnt mir helfen!

greetz
daddz
 
Zuletzt bearbeitet:
Hmm...anscheinend weiß wohl niemand was ich meine. Ich mach mal ein Beispiel.

Beispiel Stadtplan:
Wenn ich die eine der Matrizen von oben der Reihe nach nach unten nehme und zusammenschreibe kommt z.B. ein Dateiname 222_210_201.jpg (oben links). Das Bild 000_000_000.jpg ist z.B. das Stadtzentrum. Jetz will ich diesen Stadtplan in alle Richtungen unendlich erweitern können. Aber mit meiner Idee funktioniert das glaube ich nicht so ganz!

Ich hoffe ihr versteht jetzt was ich meine!

greetz
daddz
 
Hi,

ich muss zugeben Deine Matrix nicht ganz verstanden zu haben... Ich würde wahrscheinlich so ansetzen:
Code:
---|---|---|---|---|---|---|
 2 | 2 | 2 | 2 | 2 | 2 | 2 |   
3 0|2 0|1 0|0 0|0 1|0 2|0 3|   
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
---|---|---|---|---|---|---|
 1 | 1 | 1 | 1 | 1 | 1 | 1 |   
3 0|2 0|1 0|0 0|0 1|0 2|0 3|   
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
---|---|---|---|---|---|---|
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
3 0|2 0|1 0|0 0|0 1|0 2|0 3|   
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
---|---|---|---|---|---|---|
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
3 0|2 0|1 0|0 0|0 1|0 2|0 3|   
 1 | 1 | 1 | 1 | 1 | 1 | 1 |   
---|---|---|---|---|---|---|
 0 | 0 | 0 | 0 | 0 | 0 | 0 |   
3 0|2 0|1 0|0 0|0 1|0 2|0 3|   
 2 | 2 | 2 | 2 | 2 | 2 | 2 |   
---|---|---|---|---|---|---|
Das ist zwar immer noch redundant, allerdings brauchst Du keine Negativen Zahlen. Die Ausdehnung ist dabei durch den Wertebereich des verwendeten Variablentypen (z.B. int) begrenzt. Ein Dateiname sähe z.B. so aus:
Code:
0_4_192_0.jpg
(4 nach rechts und 192 nach unten von der Mitte aus).

Prinzipiell würden 2 Koordinaten (714_-18.jpg) ausreichen.

Gruß
.
 
Zu dem von vorher: Du programmierst evtl effizienter wenn du eine vertikale und eine horizontale entfernung nimmst, und dann jeweils noch n "Richungs-Flag"...
Dann brauchst du insgesammt weniger Speicher je Feld...
 
@Datic deine Idee ist nicht schlecht. Müsste mir des mal weiterüberlegen.

Ansonsten...es müssen ja keine Matrizen sein. Des war ja nur so eine Idee. Bei Datics Idee muss ich halt nur noch schauen ob sich in seinem System dann ein Dateiname niemals wiederholt.

greetz
daddz
 
.. nein, tut er nicht (Du bekommst schlimmstenfalls lange Dateinamen, z.B. 19268_0_0_4096.jpg).

Nur: was spräche dagegen (wie webfreak sagte und ich schon andeutete), einfach 2-dimensionale Koordinaten mit Richtungsflag zu verwenden?

Gruß
.
 
Wie meint ihr das mit Richtungsflags?
für oben -> O
für unten -> U
für rechts -> R
für links -> L
oder wie?

greetz
daddz
 
na ja, ich hatte ja geschrieben
152_-312.jpg
- das "-" einfach als negatives Vorzeichen.

Es stellt sich wohl eher die Frage, wie Du dieses Feld intern verwaltest; Arrays mit negativen Indizes gibts natürlich nicht. ;) Vielleicht böte sich eine verkettete Liste an, mit Zeigern zu den jeweiligen Nachbarfeldern. - Oder Du nimmst einfach ein 1-dimensionales Array (bzw. etwas entsprechendes) aus Objekten und schreibst die Koordinaten in Membervariablen.

Gruß
.
 
Naja...ich machs jetz mit der Möglichkeit hier: "152_-312.jpg". Mal schauen wie gut das funktioniert!

greetz
daddz
 

Neue Beiträge

Zurück