Ich frage mich gerade, wie ich den Blickpunkt meiner "Kamera" festlegen kann.
Wenn ich z.B. eine Linie vom Punkt 8.000001 zu 8.0000009 zeichne, wie muss dann mein Translatef aussehen, damit ich die Linie genau im Mittelpunkt des OpenGL Fensters habe?
Wie gehe ich bei mehreren gezeichneten Objekten vor? Wenn ich z.B. Linien wie die obige an verschiedenen Stellen gezeichnet habe? Ich möchte die Kamera dann so ausrichten, dass ich alle Linien im Blickfeld habe.
Vielleicht kann mir ja jemand auf die Sprünge helfen...
Vielen Dank schonmal vorab!
Zuletzt geändert von Michael am Do Feb 02, 2006 11:01, insgesamt 1-mal geändert.
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
Michael hat geschrieben:
z.B. eine Linie vom Punkt 8.000001 zu 8.0000009
in ogl eine linie mit 1dimensionalen coordinaten(der start/end punkte) zu zeichnen is schonmal nicht möglich, also erklär doch mal bitte genauer was du willst und wo es sein soll !?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Extrawurst: Du könntest es ja auch so sehen, dass diese Werte X sind und Y und Z 0 sind. Damit hätte man dann nur eine kleine Linie.
Michael: Könntest du das nächste Mal bitte einen sinnvollen und aussagekräftigen Titel wählen. So würde man sofort sehen worum es sich handelt. Du kannst deinen Beitrag auch nachträglich bearbeiten und den Titel anpassen.
Zu deiner Frage. Ich bin Guru was so etwas angeht aber ich denke mal es wird darauf hinaus laufen, dass du dir vorher erst einmal die Maße deines Objekts zusammen suchen musst. Also alle Punkte durchgehen und jeweils den kleinsten und größten Wert auf all deinen Achsen merken. Wenn du diesen hast kannst du den optischen Mittelpunkt des Objekts errechnen (die Hälte von den einzelnen Achsen). Und damit könntest du dein Objekt verschieben so, dass es im Mittelpunkt steht.
Wie große jetzt der Zoom werden muss kann ich dir nicht sagen. Aber ich befürchte, dass du dafür den Frustum Auslesen musst und dann Dinge berechnen musst. Aber dazu sollte noch mal jemand anderes was sagen. Das ist nicht so mein Ding.
Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
Jo, klar könnte man das annehmen, man könnte aber auch annehmen er will diese werte für Y nehmen und den rest auf 0 setzten, oder aber auf 1 ... ist halt schwer zu erraten.
Des weiteren, muss man nicht in jedem Kontext direkt eine BoundingBox per MinMax errechnen, flexibler ist es natürlich. Allerdings stand auch niregendwo (wie schon bemerkt) wie starkt das Objekt gezoomt sein soll. Soll es den kompletten Bildschirm füllen, reicht es einen Frustum zu finden der das Object überhaupt komplett zeigt ....
Erstmal möchte ich mich für den wirklich nicht gut überlegten Titel entschuldigen. Ich werde gleich mal versuchen ihn zu ändern!
@Extrawurst:
Ich dachte es wäre klar bei so einer Angabe, dass es sich bei den beiden Koordinaten nur um eine Achse handeln würde. Was ich meine ist das:
Code:
glBegin(GL_LINES);
glVertex3f(8.000001,0,0);
glVertex3f(8.000009,0,0);
glEnd;
@Lossy eX:
Der Hinweis mit den kleinsten und größten Werten der Objekte ist gut. So in etwa habe ich mir das auch gedacht...
Komplizierter wird es beim Zoom. Irgendwie muss ich doch meine Perspektive berücksichtigen. Wenn ich mal von
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Flash hat geschrieben:
Lossy eX hat geschrieben:
Zu deiner Frage. Ich bin Guru was so etwas angeht aber [...]
Jetzt wo du es mir noch mal so vor die Nase hältst. Irgendwie stinkt das ziemlich stark nach Eigenlob, was es eigentlich gar nicht sein sollte. Ich hab natürlich keine Ahnung von so was. Nur um das mal klar zu stellen. Meine Stärken liegen eindeutig wo anders. In der Rechtschreibung aber abscheinend auch nicht.
Zu deiner Frage. Ich bin Guru was so etwas angeht aber [...]
Jetzt wo du es mir noch mal so vor die Nase hältst. Irgendwie stinkt das ziemlich stark nach Eigenlob, was es eigentlich gar nicht sein sollte. Ich hab natürlich keine Ahnung von so was. Nur um das mal klar zu stellen. Meine Stärken liegen eindeutig wo anders. In der Rechtschreibung aber abscheinend auch nicht.
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
Ein Deutsch-Compiler wäre ab und an richtig klasse, oder!? (Hätte ich im Abi gut brauchen können )
Mir würde ja ein einfacher Syntax-Test genügen Der ist schneller und funktioniert genauso. Obwohl er ja streng genommen nu die Syntax und nicht die Bezeichner (Sprich: Nur die Grammatik *g*) prüfen müsste. Nichtsdestotrotz prüft Delphi bei der Syntax-Prüfung alles. Nicht nunr die Syntax
_________________ "Für kein Tier wird so viel gearbeitet wie für die Katz'."
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.