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 = 45

    Nehmen wir an dein Blickfeld soll horizontal 70 und vertikal 45 Grad nach
    beiden Seiten jeweils einschließen. Dann ist die Pixelkooridnate von P

    x = (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


Anmelden zum Antworten