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

Aktuelle Zeit: Fr Aug 01, 2025 21:00

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



Ein neues Thema erstellen Auf das Thema antworten  [ 46 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 14:52 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Variablen werden nieeeemals automatisch zurückgesetzt. Bei Klassen macht das der Constructor aber auch nur dann, wenn per "inherited;" aufruf eine verbindung mit dem Constructor von TObject besteht.

Unter dem gesichtspunkt solltest du mal alle deine Codes angucken. 8)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 15:08 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
ich hab so gut wie keine codes, wo irgendwo object.create aufgerufen wird. Aber ich will diesen code zum Laufen bringen!


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 15:13 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 02, 2002 18:06
Beiträge: 299
Wohnort: Dresden
Hab jetzt keine Zeit mir alles durchzulesen, aber vielleicht liegts ja nicht an der Funktion, sondern an der Zeichenfunktion. Das würde das ständige auswerfen von exceptions erklären. Ich würde mir das mal angeukcen, denn viel kann man an dem Code da oben nicht falsch machen.

_________________
"Ich würde ja gern die Welt verändern, aber Gott gibt mir den Quelltext nicht"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 15:24 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Der Aufruf von inherited in einer Klasse die direkt von TObject abgeleitet ist bewirkt nichts, weil der Konstruktor von TObject leer ist.
Die Variablen werden bereits vorher in TObject.InitInstance auf 0 gesetzt.
Vor der ersten Zeile eines Konstruktors wird ein Aufruf von classcreate eingefügt. Die Funktionen werden dann in folgender Reihenfolge aufgerufen: ClassCreate -> NewInstance -> InstanceSize -> GetMem -> InitInstance--> normaler Constructor Code -> AfterConstruction , falls das Objekt noch nicht erstellt wurde.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 15:29 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Haut mich, wenn ich was falsches sage:
aber meiner Meinung nach
hat eine integer variable nach der deklaration den wert 0(in worten: null)

Hier ist noch der Code meiner Zeichenfunktion:

Code:
  1.  
  2. gltranslatef(hor,0,zoom);
  3. for i:=0 to tricount do
  4. begin
  5.  glBegin(GL_TRIANGLES);
  6.  glcolor3f(1,1,0);
  7.   glVertex3f(verts[i,0,0],verts[i,0,1],verts[i,0,2]);
  8.  glcolor3f(1,0,0);
  9.   glVertex3f(verts[i,1,0],verts[i,1,1],verts[i,1,2]);
  10.  glcolor3f(0,0,1);
  11.   glVertex3f(verts[i,2,0],verts[i,2,1],verts[i,2,2]);
  12.  glEnd();
  13. end;
  14.  


Tut mir leid, dass ich meine ganze Fehlersuche auf euch abwälze, aber ich find einfach nichts. Wie löst ihr denn das Problem, wo man die ganzen Objekte/Dreiecke speichert, wenn nicht in einem array?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 21, 2004 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Code:
  1. setlength(verts, tricount, ...)

Bedeutet das dein Array von 0 bis tricount-1 geht.

Code:
  1. for i:=0 to tricount do

greift im letzten Schleifenaufruf auf das Element Vertex[TriCount] zu, das es natürlich nicht gibt, denn dein Array geht ja nur von 0.. tricount-1.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 23, 2004 16:56 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Danke! Werd ich gleich probieren!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 24, 2004 14:54 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Eine Integervariable hat meines wissens nach NICHT den Wert 0 wenn ich sie erstelle. (Hat ich das nicht schon mal erwähnt?) Wenn meine Aussage kein Gewicht hat, dann könnte ja mal eine Respektierte Instanz dieses Boards meine Aussage zementieren oder wiederlegen. :twisted:

Klassen haben wie Lars es oben beschrieben hat, allerdings diese Eigenschaft.

@Lars: Beudeutet das, dass jede(!) Klasse (egal ob über inherited mit TObject verbunden) nach dem Erstellen auf 0,nil,'', false zurückgesetzt wurde?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 24, 2004 15:01 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
soweit ich weiß werden globale Variablenmit 0 initialisiert, lokale aber nicht...
ich würde trotzdem immer sichergehen und es nochmal von HAnd tun *misstrauisch ist*

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 24, 2004 15:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
Wenn Sie eine globale Variable nicht explizit initialisieren, wird sie vom Compiler zunächst auf 0 gesetzt. Lokale Variablen können bei der Deklaration nicht initialisiert werden. Sie sind nicht definiert, solange ihnen kein Wert zugewiesen wird.


Die Delphihilfe ist doch was Wunderbares, zumal man in der Suche nur "Globale Variablen" eingeben muss...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 24, 2004 15:36 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Ja klar, aber wir sind halt so an Winzigweich gewöhnt :evil: .

Jetzt geht alles und ich will ein bisschen Drehung mit einbauen. Aber der Compiler sagt zu mir: "Undefinierter Bezeichner glrotate". Darf der das? Ich habe natürlich dglopengl eingebunden, und sonst geht auch alles.


(Und: Wenn ich ein dreieck gezeichnet habe, dann glrotate aufrufe und das selbe Dreieck noch einmal zeichne, hat das neue Dreieck dann andere Koordinaten als das alte?)
EDIT: es geht schon, mit glrotatef. Aber dann hat Phobeus in seinem Tutorial(Eine Welt des Grauens) einen Fehler gemacht!!

THXIA, luke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 24, 2004 16:00 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
versuchs mal mit glRotate3f.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 14, 2004 15:10 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Das geht jetz alles wunderbar. wenn ich die kamera drehen will, dann muss sich ja alles um mich rum auf einer Kreisbahn bewegen. Wie berechnet man das? Ich blick in dem Sonnensystemtutorial von Phobeus irgendwie nicht durch.(Für mich unvorstellbar, dass es so viele anscheinend gute opengl-programmierer gibt)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 14, 2004 15:16 
Offline
Fels i.d. Brandung
Benutzeravatar

Registriert: Sa Mai 04, 2002 19:48
Beiträge: 3830
Wohnort: Tespe (nahe Hamburg)
Vielleicht erklärst Du mal genau, was Du nicht verstehst. Ich denke mit einm wenig rumbasteln des Source Codes und dem Text dazu sollte man recht schnell dahinter steigen. Generell gilt bei Matrizen A*B <> B*A. Das heißt es macht einen unterschied aus, ob Du ein Objekt transformierst und dann rotierst oder ob du es zuerst rotierst und dann transformierst. Wirklich berechnen muss man dabei nichts, selbst Cos & Sinus sind (für diesen Fall) nicht notwendig. Schnappe Dir mal den dazugehörigen Code und schau dir an in welcher Reihen folge rotiert und transformiert wird und dann vertausche das einmal um die Unterschiede zu sehen.

_________________
"Light travels faster than sound. This is why some people appear bright, before you can hear them speak..."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 14, 2004 15:25 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Danke. Ich habe jetzt den Code:

Code:
  1.  
  2. in applicationidle:
  3. ...
  4. GLrotatef(rotatevert/100,1,rotatehor,0);
  5. gltranslatef(hor,0,zoom);
  6. ...
  7. end;
  8.  
  9. procedure TGLForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  10.   Y: Integer);
  11. begin
  12. if init=false then
  13. begin
  14.  oldmouse.x:=X;
  15.  oldmouse.y:=Y;
  16.  init:=true;
  17. end;
  18.  
  19. if (init=true) and (ssright in shift) then
  20.  begin
  21.   rotatehor:=rotatehor+(X-oldmouse.x);
  22.   rotatevert:=rotatevert+(Y-oldmouse.y);
  23.  end;
  24.  
  25. end;


Das bewirkt, dass sich mein Dreieck, wenn ich die maus bei gedrückter maustaste bewege, einfach nach rechts verschiebt, egal in welche Richtung ich die Maus schiebe. Wo ist also der Fehler?[/code]


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 46 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4  Nächste
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

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


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.011s | 13 Queries | GZIP : On ]