Koordinatensystem

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design

Koordinatensystem

Beitragvon Jack » 14.05.2016, 22:30

Hi,
ich habe eine kurze frage zu einem Array.
Wenn ich mir zb ein Array mit "int bspArray[a][b]" 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.
Jack
 
Beiträge: 15
Registriert: 29.02.2016, 13:20

Re: Koordinatensystem

Beitragvon dot » 14.05.2016, 23:39

Sorry, ich kapier leider nicht, was genau du erreichen willst...
Benutzeravatar
dot
Michael Kenzel
Establishment
 
Beiträge: 1647
Registriert: 06.03.2004, 19:10

Re: Koordinatensystem

Beitragvon Krishty » 14.05.2016, 23:58

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

Re: Koordinatensystem

Beitragvon Jack » 15.05.2016, 00:10

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.
Jack
 
Beiträge: 15
Registriert: 29.02.2016, 13:20

Re: Koordinatensystem

Beitragvon Krishty » 15.05.2016, 02:54

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

  int bspArray[n];
  bspArray[a] = x;
  bspArray[b] = y;
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
 
Beiträge: 6591
Registriert: 26.02.2009, 12:18
Benutzertext: state is the enemy

Re: Koordinatensystem

Beitragvon Jack » 15.05.2016, 15:38

Okay danke schon mal, x und y sollen aber zusammengehören wie Koordinaten eben.
Funktioniert das dann genau so?
Jack
 
Beiträge: 15
Registriert: 29.02.2016, 13:20

Re: Koordinatensystem

Beitragvon Krishty » 15.05.2016, 18:54

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

Re: Koordinatensystem

Beitragvon Jack » 15.05.2016, 19:50

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:)
Jack
 
Beiträge: 15
Registriert: 29.02.2016, 13:20

Re: Koordinatensystem

Beitragvon Alexander Kornrumpf » 15.05.2016, 20:04

Willst du Koordinaten in einem Array speichern oder Elemente in einem Array mit Koordinaten adressieren?
Alexander Kornrumpf
Moderator
 
Beiträge: 1630
Registriert: 25.02.2009, 14:37


Zurück zu Allgemeine Fragen der Spieleentwicklung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste