Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

XP^

Treue Seele

  • »XP^« ist der Autor dieses Themas
  • Private Nachricht senden

11

29.12.2007, 22:22

Naja ok, thx ich werde mir das mal anschauen :p

aber ich hab doch noch einige Probleme das zu lesen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Str
{
    float x, y, z;
};

Str varray[7] ={
    // dreieck

   { 0.0f,  1.0f, 0.0f }, // DAS HIER

   { 1.0f, -1.0f, 0.0f }, // DAS HIER

   {-1.0f, -1.0f, 0.0f }, // DAS HIER

    // Quad.

   {-1.0f, -1.0f, 0.0f }, // DAS HIER

   {-1.0f,  1.0f, 0.0f }, // DAS HIER

   { 1.0f, -1.0f, 0.0f }, // DAS HIER

   { 1.0f,  1.0f, 0.0f } // DAS HIER

}; 


{ x, y, z }?

Wie kommt es denn da zum Quadrat?

Ne kleine Erklärung würd mir gut tun :p

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

29.12.2007, 22:41

sowas nennt man initialisierungsliste (achtung, es gibt auch bei konstruktoren initialisierungslisten, das is aber was andres...)

das tut nix andres als das array und die elemente darin mit den angegebenen werten zu initialisieren. funktioniert (zur zeit) nur mit POD typen.

XP^

Treue Seele

  • »XP^« ist der Autor dieses Themas
  • Private Nachricht senden

13

29.12.2007, 23:03

Zitat von »"dot"«

sowas nennt man initialisierungsliste (achtung, es gibt auch bei konstruktoren initialisierungslisten, das is aber was andres...)

das tut nix andres als das array und die elemente darin mit den angegebenen werten zu initialisieren. funktioniert (zur zeit) nur mit POD typen.



:roll: wenn du weiter unten geschaut hättest, würdest du wissen, was ich meine:

Zitat

{ x, y, z }?


Wie ist das aufgebaut?

also wie kommt es zB. hier zum Quadrat:

C-/C++-Quelltext

1
2
3
4
{-1.0f, -1.0f, 0.0f }, // DAS HIER 

   {-1.0f,  1.0f, 0.0f }, // DAS HIER 

   { 1.0f, -1.0f, 0.0f }, // DAS HIER 

   { 1.0f,  1.0f, 0.0f } // DAS HIER 


Edit:
ok das war gemein, immerhin wolltest du mir ja helfen .. sorry :(

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

29.12.2007, 23:28

^^ np ;)

Zitat von »"XP^"«

Wie ist das aufgebaut? [...]


sagte ich ja, das initialisiert die elemente im array.

C-/C++-Quelltext

1
{-1.0f, -1.0f, 0.0f }


das setzt die elemte x, y, z des struct auf die werte -1.0, -1.0, 0.0f

wenn du ein struct hast:

C-/C++-Quelltext

1
2
3
4
5
6
struct blub
{
  float a;
  const char* b;
  int x;
};


dann kannst du objekte davon z.b. so initialisieren:

C-/C++-Quelltext

1
blub foo = { 23.0f, "hallo welt", 42 };


das is genau was der code da oben auch tut, nur dass diese objekte eben in einem array sind, welches selbst wiederum mit einer solchen liste initiaisliert werden kann:

C-/C++-Quelltext

1
int something[] = { 1, 2, 3, 4, 5 };


wenn du ein array so initialisierst, musst du keine zahl in den [] angeben, die bekommt der compiler automatisch aus der anzahl der elemente in der initialisierungsliste.

wenn du jetzt kein int array, sondern ein blub array machst, kannst du das ganz analog initialisieren (und dabei wiederum die initialisierungstechnik für die structs oben einsetzen):

C-/C++-Quelltext

1
blub something_else[] = { { 1.0f, "hi!", -12 }, { 5.0f, "aaah!", 20 }, {13.0f, "zack!", 666} }

XP^

Treue Seele

  • »XP^« ist der Autor dieses Themas
  • Private Nachricht senden

15

29.12.2007, 23:39

Ok.. naja aber ich meinte eher wie man mit dieser definition auf ein Dreieck kommt :?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct Str 
{ 
    float x, y, z; 
}; 

Str varray[7] ={ 
    // dreieck 

   { x,  y, z },
    { x,  y, z },
    { x,  y, z },
    // Quad. 

    { x,  y, z },
   { x,  y, z },
   { x,  y, z },
    { x,  y, z },
}; 


Wie würde das nun zbsp. beim Dreieck aussehen? Wozu definiert man für das 3D Objekt 3x die X-Achse?

C-/C++-Quelltext

1
2
3
   { 0.0f,  1.0f, 0.0f }, 
   { 1.0f, -1.0f, 0.0f }, 
   {-1.0f, -1.0f, 0.0f },  


.. ok das Erste(die Erste Zeile) könnte so sein: 1 Rauf
.. zweite und dritte kapier ich net :?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

29.12.2007, 23:40

aso...das gibt ziemlich sicher die 3 eckpunkte des dreiecks an...

XP^

Treue Seele

  • »XP^« ist der Autor dieses Themas
  • Private Nachricht senden

17

29.12.2007, 23:41

Zitat von »"dot"«

aso...das gibt die 3 eckpunkte des dreiecks an...


ja, aber wozu bei den 3 Vertices nochmal X,Y und Z? Das ist der Punkt, worauf ich hinaus wollte :)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

29.12.2007, 23:42

hä? vertices sind eckpunkte. in 3d haben punkte nunmal 3 koordinaten!?

C-/C++-Quelltext

1
2
3
4
5
Str varray[] ={
   { 123.4f,  12.556f, 4.67f },
   { -5.3f, -32.6f, 12.4f },
   {11.03f, -2.3f, 5.3f }
};



das wär genauso ein dreieck, nur liegt das halt irgendwo irgendwie rum...

XP^

Treue Seele

  • »XP^« ist der Autor dieses Themas
  • Private Nachricht senden

19

29.12.2007, 23:49

Zitat von »"dot"«

hä? vertices sind eckpunkte.


Weiß ich :) Hab nur Vertices gesagt, weil ich dran gewöhnt bin ..

Zitat von »"dot"«

in 3d haben punkte nunmal 3 koordinaten!?

C-/C++-Quelltext

1
2
3
4
5
Str varray[] ={
   { 123.4f,  12.556f, 4.67f },
   { -5.3f, -32.6f, 12.4f },
   {11.03f, -2.3f, 5.3f }
};



das wär genauso ein dreieck, nur liegt das halt irgendwo irgendwie rum...


Das ist für mich schwer vorstellbar :( Könntest du mir vielleicht ne kleine Grafik zeigen? Ich check das noch immer net -.-

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

29.12.2007, 23:51

oO

du hast 3 punkte

wenn du alle 3 punkte verbindest bekommst du ein sog dreieck!?

Werbeanzeige