Koordinatensystem

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Jack
Beiträge: 15
Registriert: 29.02.2016, 12:20

Koordinatensystem

Beitrag von Jack »

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.
Benutzeravatar
dot
Establishment
Beiträge: 1734
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: Koordinatensystem

Beitrag von dot »

Sorry, ich kapier leider nicht, was genau du erreichen willst...
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Koordinatensystem

Beitrag von Krishty »

Meinst du, dass du das Array durch [x][y] adressieren möchtest? Wie sollte dann was aussehen?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Jack
Beiträge: 15
Registriert: 29.02.2016, 12:20

Re: Koordinatensystem

Beitrag von Jack »

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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Koordinatensystem

Beitrag von Krishty »

Dem Text nach willst du nur zwei Elemente eines Arrays setzen?

  int bspArray[n];
  bspArray[a] = x;
  bspArray = y;
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Jack
Beiträge: 15
Registriert: 29.02.2016, 12:20

Re: Koordinatensystem

Beitrag von Jack »

Okay danke schon mal, x und y sollen aber zusammengehören wie Koordinaten eben.
Funktioniert das dann genau so?
Benutzeravatar
Krishty
Establishment
Beiträge: 8227
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Koordinatensystem

Beitrag von Krishty »

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.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Jack
Beiträge: 15
Registriert: 29.02.2016, 12:20

Re: Koordinatensystem

Beitrag von Jack »

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:)
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Koordinatensystem

Beitrag von Alexander Kornrumpf »

Willst du Koordinaten in einem Array speichern oder Elemente in einem Array mit Koordinaten adressieren?
Antworten