Koordinatensystem
Koordinatensystem
Hi,
ich habe eine kurze frage zu einem Array.
Wenn ich mir zb ein Array mit "int bspArray[a]" erstelle und ich in a und b jeweils x und y Koordinaten speichern möchte wie sollte das dann aussehen?
Also so das a immer x ist und b immer y.
ich habe eine kurze frage zu einem Array.
Wenn ich mir zb ein Array mit "int bspArray[a]" erstelle und ich in a und b jeweils x und y Koordinaten speichern möchte wie sollte das dann aussehen?
Also so das a immer x ist und b immer y.
- dot
- Establishment
- Beiträge: 1745
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: Koordinatensystem
Sorry, ich kapier leider nicht, was genau du erreichen willst...
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Koordinatensystem
Meinst du, dass du das Array durch [x][y] adressieren möchtest? Wie sollte dann was aussehen?
Re: Koordinatensystem
Ja das ich zb angeben kann das das Array an der stelle von a = x ist und an Stelle b = y, wollte gern wissen wie man das seperat machen kann.
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Koordinatensystem
Dem Text nach willst du nur zwei Elemente eines Arrays setzen?
int bspArray[n];
bspArray[a] = x;
bspArray = y;
int bspArray[n];
bspArray[a] = x;
bspArray = y;
Re: Koordinatensystem
Okay danke schon mal, x und y sollen aber zusammengehören wie Koordinaten eben.
Funktioniert das dann genau so?
Funktioniert das dann genau so?
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Koordinatensystem
Falls du sie wie 2D-Koordinaten nutzen willst, wird es ein Bisschen schwieriger. C++ bietet 2D-Arrays an, die sind aber nicht so intuitiv zu benutzen (z.B. wegen [y][x] statt [x][y] und ich kann mir nie merken, ob int[20][30] jetzt 20 breit oder 20 hoch ist). Ich würde alle 2D-Zugriffe auf 1D abrollen, also exemplarisch:
constexpr width = 30;
constexpr height = 20;
int array[width * height];
setValueAt(int x, int y, int value) {
array[y * width + x] = value;
}
Dann weißt du beim Speichern und Laden genau bescheid, in welcher Reihenfolge die Daten in der Datei liegen, und kannst es später bei Bedarf ändern (um z.B. die Caches besser durch Space Filling Curves auszunutzen).
Vielleicht bieten STL oder Boost dir schon Hilfsklassen dafür; da musst du die anderen hier fragen.
constexpr width = 30;
constexpr height = 20;
int array[width * height];
setValueAt(int x, int y, int value) {
array[y * width + x] = value;
}
Dann weißt du beim Speichern und Laden genau bescheid, in welcher Reihenfolge die Daten in der Datei liegen, und kannst es später bei Bedarf ändern (um z.B. die Caches besser durch Space Filling Curves auszunutzen).
Vielleicht bieten STL oder Boost dir schon Hilfsklassen dafür; da musst du die anderen hier fragen.
Re: Koordinatensystem
Sehr intuitiv sind die nun wirklich nicht das hast du recht.
Bin mittlerweile aber zu einer Lösung gekommen und in der STL habe ich <list> und <vector> gefunden was wohl eine praktischere Lösung zu sein scheint auch wenn ich noch nicht viel damit anfangen kann.
Werde aber erst mal deinen Vorschlag ausprobieren, danke dir:)
Bin mittlerweile aber zu einer Lösung gekommen und in der STL habe ich <list> und <vector> gefunden was wohl eine praktischere Lösung zu sein scheint auch wenn ich noch nicht viel damit anfangen kann.
Werde aber erst mal deinen Vorschlag ausprobieren, danke dir:)
-
- Moderator
- Beiträge: 2138
- Registriert: 25.02.2009, 13:37
Re: Koordinatensystem
Willst du Koordinaten in einem Array speichern oder Elemente in einem Array mit Koordinaten adressieren?