Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 22:03

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Matrizen.... ich würde....
BeitragVerfasst: Do Sep 22, 2005 18:00 
Offline
DGL Member

Registriert: Do Sep 22, 2005 17:49
Beiträge: 5
.... euch liebend gern um Hilfe bitten ^^

Aber Hallo erstmal... ^^

Nun, folgendes: Ich habe mir das EinsteigerTutorial von Phobeus (war das sein Name?) angeschaut und versucht umzusetzen.... das ging gründlich daneben da ich mit der WinAPI absolut nicht vertraut bin...

Nachdem ich mir das Template dazu gezogen habe, hab ichs einigermaßen kapiert.... und hab mit den nächsten Tutorials weiter gemacht.

Ich hänge derzeit bei der Sache mit dem Sonnensystem und den Dreiecken fest....

Also die Sache mit der Rotation ist mir ein Rätsel.

Eine einfache Rotation eines Objektes kriege ich hin. Soweit reicht mein Verständniss für die Matrizen noch aus.

Aber sobald ich eine zweite machen soll, z.b. das sich ein Dreieck um den Punkt 0,0,0 auf der Y-Achse dreht und dabei sich nochmal um seine eigene Achse, da schaltet sich meion Gehirn ab.... ^^

Ich hoffe ihr habt verstanden was mein Problem ist..... quasi das Verständniss von Matrizen....

Hat dazu vielleicht jemand nen passenden "Rat"?

PS: Ich hoffe ich habe jetzt nicht ne Frage gestellt die schon Zweihunderttausend mal vorgekommen is.... bin halt neu und würde gerne OpenGL lernen, wenn ihr so freundlich wärt mir zu helfen, weil alleine nur mit Tuts is das schwer....

MFG
Caine


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 22, 2005 18:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
Erstmal Willkommen

Lese dir den Artikel in unserm Wki mal durch :wink: :
http://wiki.delphigl.com/index.php/Matrix

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 22, 2005 18:56 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hatte damals ein Sonnensystem gebaut als ich das Tut geamcht hab und Phob geschickt....mal sehn obs bei mir noch rumliegt....

*kram*

Oh jeh...das sit noch Uraltcode... Das Template worauf das aufbaut darf glaub ich niemand sehen... Ich poste mal den neutralen Code... Lass dich vond er kamerabewegung nicht abschrecken...das sind glaub ich durch Try&Error entschadene Werte. 8)
@AlleAnderen: So würde ich meinen Code nichtmehr formatieren ;)

Code:
  1. var
  2.   Form1: TForm1;
  3.   angel: word = 0;
  4.   angel2:real = 0.0;
  5.  
  6. procedure render;
  7. begin
  8. glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); //Farb und Tiefenpuffer löschen
  9. glLoadIdentity;                                      // World Matrix zurücksetzen
  10. //ab hier kommen die Objekte hin
  11.  
  12. //Kamerabewegung
  13. gltranslatef(0,0,-15*sin(angel2)-18);
  14. glrotatef((sin(angel2)*45)+40,1,0,0);
  15.  
  16. //Sonne
  17. gltranslatef(0,0,-3);
  18. glrotatef(angel,0,1,0);
  19. glbegin(gl_triangles);
  20.   glColor3f( 1.0,0.5, 0.0);
  21.   //Boden
  22.   glVertex3f(-1.5,0,0);
  23.   glVertex3f(1.5,0,0);
  24.   glVertex3f(0,0,-1.5);
  25.  
  26.   glColor3f( 1.0,1.0, 0.0);
  27.   //Links
  28.   glVertex3f(-1.5,0,0);
  29.   glColor3f( 1.0,0.0, 0.0);
  30.   glVertex3f(0,1.5,-0.7);
  31.   glColor3f( 1.0,1.0, 0.0);
  32.   glVertex3f(0,0,-1.5);
  33.   //Rechts
  34.   glVertex3f(1.5,0,0);
  35.   glColor3f( 1.0,0.0, 0.0);
  36.   glVertex3f(0,1.5,-0.7);
  37.   glColor3f( 1.0,1.0, 0.0);
  38.   glVertex3f(0,0,-1.5);
  39.   //Vorn
  40.   glVertex3f(-1.5,0,0);
  41.   glVertex3f(1.5,0,0);
  42.   glColor3f( 1.0,0.0, 0.0);
  43.   glVertex3f(0,1.5,-0.7);
  44. glend();
  45. //Erde
  46. glrotatef(angel,0,1,0); //Drehung um die Sonne
  47. gltranslatef(5,0,0);
  48. glrotatef(angel,0,1,0); //Drehung um sich selbst
  49. gltranslatef(0,0,0);
  50. glrotatef(33,0,1,1);
  51.  
  52. glbegin(gl_triangles);
  53.   glColor3f( 0.0,0.0,0.5);
  54.   //Boden
  55.   glVertex3f(-1,0,0);
  56.   glVertex3f(1,0,0);
  57.   glVertex3f(0,0,-1);
  58.   //Links
  59.   glVertex3f(-1,0,0);
  60.   glVertex3f(0,0,-1);
  61.   glColor3f( 1.0,1.0, 1.0);
  62.   glVertex3f(0,1,-0.5);
  63.  
  64.   glColor3f( 0.0,0.0, 1.0);
  65.   //Rechts
  66.   glVertex3f(0,0,-1);
  67.   glVertex3f(1,0,0);
  68.   glColor3f( 1.0,1.0, 1.0);
  69.   glVertex3f(0,1,-0.5);
  70.  
  71.   glColor3f( 0.0,0.0, 1.0);
  72.   //Vorn
  73.   glVertex3f(-1,0,0);
  74.   glVertex3f(1,0,0);
  75.   glColor3f( 1.0,1.0, 1.0);
  76.   glVertex3f(0,1,-0.5);
  77. glend();
  78. //Mond
  79. glrotatef(angel,0,1,1);   //Drehung um die Erde auf einer geneigten Bahn
  80. gltranslatef(1.5,0.5,0);
  81. glrotatef(angel,0,1,0);   //Drehung um sich selbst
  82.  
  83. glbegin(gl_triangles);
  84.   glColor3f(0.5,0.5,0.5);
  85.   //Boden
  86.   glVertex3f(-0.5,0,0);
  87.   glVertex3f(0.5,0,0);
  88.   glVertex3f(0,0,-0.5);
  89.  
  90.   glColor3f( 1.0,1.0, 1.0);
  91.   //Links
  92.   glVertex3f(-0.5,0,0);
  93.   glVertex3f(0,0,-0.5);
  94.   glColor3f(0.5,0.5,0.5);
  95.   glVertex3f(0,0.5,-0.25);
  96.  
  97.   glColor3f( 1.0,1.0, 1.0);
  98.   //Rechts
  99.   glVertex3f(0.5,0,0);
  100.   glVertex3f(0,0,-0.5);
  101.   glColor3f(0.5,0.5,0.5);
  102.   glVertex3f(0,0.5,-0.25);
  103.  
  104.   glColor3f( 1.0,1.0, 1.0);
  105.   //Vorn
  106.   glVertex3f(-0.5,0,0);
  107.   glVertex3f(0.5,0,0);
  108.   glColor3f(0.5,0.5,0.5);
  109.   glVertex3f(0,0.5,-0.25);
  110. glend();
  111.  
  112. SwapBuffers(form1.myDC);                             //scene ausgeben
  113. end;
  114.  
  115. procedure TForm1.Timer1Timer(Sender: TObject);
  116. begin
  117. inc(angel);
  118. angel2:=angel2+0.006;
  119. render;


Im Anhang noch die gezippte Exe. Die hatte ich sogar noch...


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 22, 2005 19:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
Programmier einfach mal nen würfel und drhe den nacheinander um die x,y,z achse. Die winkel steuerst du durch drei trackbars oder so.
Dann guckste dir das ergebniss an und vertauscht mal die rotationsreihenfolge...

So bin ich dahinter gekommen! (ruhig mal ausprobieren, dürfte nicht alzu lange dauern)

Zensiert (Edit):

Im prinzip ist das problem, dass du bei der ersten rotation alle folgenden rotationsachsen nicht mitdrehst!
Die bleiben im absultuen koordinatensystem immer gleich.

Beispiel: wenn du etwas verschiest und dannd rehst, verdreht sich die gantze szene.
Wenn du erst drehst und dann schiebst, verschiebst du das gedrehte objekt ohne die Scene zu drehen

Also bleiben drehpunkt und drehachsen immer gleich, egal was du machts! und dass verwirrt anfangs etwas...


:oops:

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Zuletzt geändert von geo am Fr Sep 23, 2005 00:23, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 22, 2005 20:02 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
öhm...geo...bist du dir da so sicher...

Man dreht gerade die Achsen immer mit. Und wenn man erst dreht und dann in richtung Z verschiebt dann heißt das, dass sich das Objekt nicht auf einen zu bewegt, wie normal, sondern halt wo anders hin. Hab das gerade nochmal getestet und so sollte es stimmen. Die vorhergehende Rotation ändert das gesamte Weltskoordinatensystem. Das hat etwas für sich...so kann man Abhängige Rotationen bilden, wie z.B. mein Mond (siehe oben)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 22, 2005 20:37 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Würde jetzt spontan auch eher zu Flashs Einschätzung tendieren. Erscheint mir ein wenig logischer. Oder vielmehr... bekannter. ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 23, 2005 00:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 02, 2003 12:47
Beiträge: 300
Wohnort: Marburg
:oops: :oops: :oops:

Hm, ich habe mich damit am anfang mal n par tage rum geschlagen, dann habe ich alle rotationsprobleme in geometry units u.s.w. gelöst und seit dem nie wieder drüber nachgedacht!

Aber ihr habt natürlich recht, ich benutze das Prinzip ja auch gerade beim Schachspiel (erst Anstellwinkel der Kamera kippen, dann Schachbrett drehen)... Die Erklärung ist also richtig, nur halt genau falschrum :lol:

Aber wenn mann das mit nem Würfel einfach ausprobiert sieht man das wirklich gut! (sollte ich auch mal wieder machen / echt peinlich sowas)

*schlafen geh und ab*

_________________
Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 23, 2005 16:59 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Wieso peinlich? Sogar Sascha macht mal Fehler, die er selbst als peinlich einstuft. Es gibt Leute, die wären froh, überhaupt so weit zu sein ;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Sep 27, 2005 17:13 
Offline
DGL Member

Registriert: Do Sep 22, 2005 17:49
Beiträge: 5
Der Code von Flash sagt mir einigermaßen zu....

Er hilft mir vom Verständniss her auch weiter.... wie ich z.b. ne Rotation fortwährend machen kann.... durch die Variablen für die Drehung (hier mit Angle bezeichnet).

Der artikel über Matritzen in der Wiki hat mir auch weiter geholfen.

Zwar kann ich mein neues Wissen grad nich ausprobieren da Rechner schrott, aber ich versteht es wenigstens schonmal wesentlich besser wie das alles funktioniert ^^

Danke für eure Hilfen!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.018s | 15 Queries | GZIP : On ]