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

Aktuelle Zeit: Do Jul 17, 2025 09:01

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



Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Berechnen des Besten Zooms
BeitragVerfasst: Do Nov 25, 2004 12:42 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wie kann ich ausrechnen, wieweit ich meine Kamera nach hinten verschieben muss, um alle Elemente der Szene zu sehen?

Ich dachte dabei an den Strahlensatz aber so richtig weiter komm ich da auch net.

(PS: die Frage is natürlich nur sinnvoll, wenn man ein relativ abgegrenztes Modell (Bei mir Atomstrukturen) komplett sehen will. Mit Außenlevel funktioniert das natürlich net.)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 14:26 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
Du brauchst wohl die äußerste linke Grenze deiner Objekte als Koordinate, die äußerste rechte und deinen FOV.
dann kannst du über Tangens(??) oder einfach Pythagoras die entfernung berechnen. Die Abbildung zeigt von oben deine szene, der kreis ist die kamera, das schwarze deine objekte.

Bild

_________________
Bild

"User Error. Replace User and hit Continue."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 20:41 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Danke...werd ich mir mal zu gemüte führen.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 20:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ist - b - dann net falsch?
Denn dann fehlt doch ne Ecke von dem (hier oberem) Objekt.
Oder net?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 20:53 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Stimmt...da muss ich den nächsten höchsten Punkt und den nächsten Tiefsten Punkt nehmen...

Obwohl...schätze da sind nochpaar tricky sachen drin...aber das werd ich schon noch merken...

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 21:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sowas in der Richtung habe ich auch mal gemacht (Terroricde, Schiffdatenbank). Das geht allerdings einfacher : Du veränderst nichts an deiner Position, sondern skalierst dein Modell passend. Wenn du weisst dass in deiner momentanen Ansicht ein Objekt das von x=-1..1 / y=-1..1 reicht genau ins Bild passt, musst du nur die Extremen des anderen Objektes nehmen und dann 1/Extreme skalieren.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 21:13 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das is durchaus auch ne schöne Idee.

Bei eigentlich Lautet meine Idee so (für mein Atommodell Viewer):

Blickvector beibehaten und Translation auf dem Vector feststellen um das Ganze Modell zu erfassen.

Der Betrachter kann bei aufruf von "CalcBestView()" ja auch im Modell stehen. Außerdem kann der User auch mehrmals (DAU) auf den Button drücken und sollte trotzdem sein Modell nicht schrumpfen.

Außerdem ist mein modell ja unregelmäßig. Wenn ich wüsste, dass alle Atome auf einer Ebene liegen wurden, könnte ich auf der Ebene den Vergleichswert berechnen (wie machst du das eigentlich?). Tun sie aber nicht... :?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 21:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hab mir gerade ne schön komplexe Lösung ausgedacht :wink: :

1. Man nehme sich eine Beliebige Ebene die senkrecht zur Blickrichtung steht.
2. Man Projeziere alle Punkte auf diese Ebene (Strahlen von Blickpunkt über Punkt ins unendliche. Dort wo strahl ebene schnedet ist Höhen- Seitenwert nehmen(Betrag) bezüglich Blickvector).
3. Sichtfeld auf Ebene Projezieren
4. Per Strahlensatz die minimal nötige Entfernung bestimmen.

Einzigstes Problem: Es muss ausgeschlossen werden, dass Punkte hinter der Kamera liegen. (Ereichbar indem man eine Drehungsmatrix auf die Positionen aller Punkte anwendet, die den Blickvector zur X-Achse rotiert. Alle Punkte die danach im 2 o. 3 Quadranten liegen, liegen hinter der Cam. Man muss dann die Cam erstmal soweit zurückfahren, dass sie auch im 1./4. Quadranten liegen.)

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Nov 25, 2004 21:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Warum denn so kompliziert? Du brauchst doch nur die Extremen auf X- und Y-Achse (evtl. noch mit der aktuellen Rotationsmatrix multipliziert) und schon kannst du errechnen wie du das Modell skalieren musst. Warum willst du denn da die Punkte auf eine Ebene projezieren?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Nov 26, 2004 18:06 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Weil die Extremwerte ansich nix aussagen. Ein 20m hoher Punkt in 100m Entfernung ist noch im Bild wärend ein 3m hoher Punkt in 10cm entfernung schon nicht mehr gesehen wird. Wenn du allerdings beide Punkte auf ne gemeinsame Ebene Projezierst siehst du welcher von beiden wirklichd er extreme ist und aus dem Blickfeld ragt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Nov 28, 2004 13:03 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Hast du/ihrnoch andere Ideen, Is meine vielleicht wirklich zu heavy oder wirds dabei bleiben?

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 29, 2004 09:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 28, 2002 19:27
Beiträge: 568
Wohnort: Chemnitz / Sachsen
wo is denn das problem an saschas sache??? du hast ja sicherlich sowas wie kameraeinstellungen(also x,y,z-koords), so und bei calcbestview schiebst du deine kamera halt auf die koordinaten die du für dich festlegst (bsp 100,0,0, irgendwas, hauptsache die bedingung von sascha passt). nun führst du noch nen scale-faktor ein und berechnest den. wenn de willst kannste auch ein flag einführen um zu wissen, das de in der "bestview" bist, brauchste aber ne unbedingt.

wieso manchmal so kompliziert min jong ???

_________________
Aktuelles Projekt :
www.PicPlace.de


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


Wer ist online?

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