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

Aktuelle Zeit: Do Jul 10, 2025 15:51

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 34 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: So Feb 18, 2007 18:22 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Hier haetten wir den Code:
Code:
  1. // Rotieren um die X-Achse => Drehen in Y-Z-Richtung
  2. procedure TSE_Camera.RotateX (NAngle: Single);
  3. var NewRot: TMatrix44;
  4. begin
  5.   NewRot := CreateIdentityMatrix;
  6.  
  7.   NewRot[5] :=  Cos(NAngle*DEG2RAD);
  8.   NewRot[6] :=  Sin(NAngle*DEG2RAD);
  9.   NewRot[9] := -Sin(NAngle*DEG2RAD);
  10.   NewRot[10]:=  Cos(NAngle*DEG2RAD);
  11.  
  12.   fRotation := MatrixDotMatrix(fRotation,NewRot);
  13.  
  14.   fTransformation := MatrixDotMatrix(fRotation,fTranslation);
  15. end;

Code:
  1. // Rotieren um die Y-Achse => Drehen in X-Z-Richtung
  2. procedure TSE_Camera.RotateY (NAngle: Single);
  3. var NewRot: TMatrix44;
  4. begin
  5.   NewRot := CreateIdentityMatrix;
  6.  
  7.   NewRot[0] :=  Cos(NAngle*DEG2RAD);
  8.   NewRot[2] := -Sin(NAngle*DEG2RAD);
  9.   NewRot[8] :=  Sin(NAngle*DEG2RAD);
  10.   NewRot[10]:=  Cos(NAngle*DEG2RAD);
  11.  
  12.   fRotation := MatrixDotMatrix(fRotation,NewRot);
  13.  
  14.   fTransformation := MatrixDotMatrix(fRotation,fTranslation);
  15. end;

Code:
  1. procedure TSE_Camera.OnKeyDown (Key: Word);
  2. begin
  3.   case Key of
  4.     SDLK_UP:    fTranslation[13] := fTranslation[13]+0.05;
  5.     SDLK_DOWN:  fTranslation[13] := fTranslation[13]-0.05;
  6.     SDLK_RIGHT: fTranslation[14] := fTranslation[14]+0.05;
  7.     SDLK_LEFT:  fTranslation[14] := fTranslation[14]-0.05;
  8.   end;
  9.   fTransformation := MatrixDotMatrix(fRotation,fTranslation);
  10. end;


Am ende wird nur fTransformation geladen und alles funkt.
Allerdings bewegt man sich so immer entlang der Koordinatenachsen, also nicht entlang des Blickvektors, darum kümmer ich mich jetzt noch


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Feb 19, 2007 23:07 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
So nachdem nun auch die Bewegung im Raum geht, habe ich noch eine Frage betreffs Theoretischer Umsetzung:

Wenn ich meine Camera über bestimmte Bewegungsabläufe bewegen will:
- sie zb auf ein Objekt zubewegen will
- oder um Ein Objekt herum
- oder einem Objekt folgen lassen will

Dann sind das ja alles Prozesse, die parallel zum Rendern ausgefuehrt werden muessen.

Da denke ich mir, wäre es doch am sinnvollsten, mit einer Scriptsprache diese Bewegungsabläufe festzulegen, dann von einer Funktion der Camera einlesen zu lassen und diese dann ausführen zu lassen.
Wäre das sinnvoll? Oder wie realisiert ihr so eine Camerabewegung?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 20, 2007 21:02 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Also ich habe es jetz erstma anders versucht zu realisieren, allerdings scheint das wirklich nur über dieses Script oder wie auch immer zu funken.
Sodass ich praktisch bei jedem Rendern eine Prozedur AdvanceCamera aufrufe und diese Procedure checkt anhand der momentanen Programmzeit (oder wie auch immer) welche Bewegung grad durchgeführt werden muss. Diese Bewegungsablaeufe muessten dann entsprechend in der Datei festgehalten werden.


Geht das nur so ueber die Datei? Geht das ueberhaupt so?
Wenn ja, haettet ihr einen groben Ueberblick? Wenn nein, the same :) ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 25, 2007 12:21 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Okay ich habe ma noch ein Prob, dass sich hoffentlich etwas leichter lösen laesst:
http://shaddow89.sh.funpic.de/error.rar

Die Rotation und Bewegung gehen per pfeiltasten und Maus. Es funkt eigentlich aber irgendwie geht die bewegung etwas komisch ^^ wenn ihr mal ein paar drehungen macht, werdet ihr sehen, was ich meine.
Hat wer ne idee, woran das liegt?


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 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.007s | 14 Queries | GZIP : On ]