3d objekt in ebene projezieren
-
hallo
ich habe die koordinaten der eckpunkte eines würfels. nun würde ich diesen gerne auf dem computerbildschirm darstellen. - also in eine ebene projeziren. wie kann ich mir aus den 3d koordinaten der punkte nun die 2d koordinaten des bildschirms berechnen?
vielen dank für die hilfe.
andi
-
Ich denke mit der Projektion auf eine Ebene, wirst du schlechte Karten haben.
Du brauchst einen Punkt wo sich die Kamera befindet und legst eine Gerade durch
diesen Punkt und den Eckpunkt. Der Winkel zwischen Blickvektor und dem
Richtungsvektor gibt dann die Pixelkoordinaten.Ist das das was du machen willst?
-
also prinzipiell geht es mir darum ein objekt im raum drehen zu lassen und immer am bildschirm anzeigen.
kannst du deine angaben mal an einem beispiel erklären. kann dir nicht ganz folgen.
danke
andi
-
Punkt P(0.5, 0.5, 0.5) willst du quasi anschauen.
Dein Auge/Kamera/Linse/.. befindet sich bei E(0, 0, 0).
Dein Blick v richtet sich nach v = (0 1 0)^T.Eine Gerade durch P und E (Stützvektor gleich 0 und Richtungsvektor P-E):
(x y z)^T = t * (0.5 0.5 0.5)^T
a = (0.5 0.5 0.5)^T
Jetzt geht dein Blick geradeaus. Das Objekt P liegt aber rechts oben. Also
berechnest du den Winkel, der horizontal (eps) und vertikal (phi) zwischen
diesen beiden Vektoren v und a liegt.eps = 45
phi = 45Nehmen wir an dein Blickfeld soll horizontal 70 und vertikal 45 Grad nach
beiden Seiten jeweils einschließen. Dann ist die Pixelkooridnate von Px = (eps / 70) * Auflösungsbreite
y = (phi / 45) * Auflösungshöhe( ^T heißt transponiert, und sry für ein paar mathematische Ungenauigkeiten)
-
hab in prinzip alles verstanden.
danke