Projektions Matrix um Dreieck auf 2D Ebene zu projezieren
-
Hallo,
kann mir jemand sagen wie man eine Projektions Matrix erzeugt, bzw. wie eine solche aussehen muss, um ein Dreieck auf eine 2D Ebene zu projezieren?
Da ich nur die Koordinaten des Dreiecks/ der Dreiecke habe und nicht dessen/ deren Rotation, benötige ich, meines Wissens, eine spezielle Projektions Matrix.Danke schonmal
-
Hrmmm, aus irgendeinem Grund habe ich die Wertematrix im Netz jetzt nicht gefunden (Wäre nicht Planarprojektion das Stichwort?).
Die grundlegende Idee ist es aber natürlich, alle Punkte so entlang der Ebenennormalen zu verschieben, dass deren Abstand zur Ebene 0 wird.
Sagen wir du hast eine Ebene gegeben durch p und n, wobei p ein Punkt auf der Ebene ist und n der Einheitsnormalenvektor, d soll der Abstand des Punktes von der Ebene sein.
Jetzt gilt für den vorzeichenbehafteten Abstand d:d = (x-p)*n
Damit ist x' = x - (x-p)*n*n, weil man den Punkt ja genau um den vorzeichenbehafteten Abstand in Richtung Ebene verschieben muss. Das muss man jetzt nur noch ausmultiplizieren und zusammenfassen und schon kann man die Matrix ablesen.
Ich kam da eben auf (ohne Gewähr):x'1 = x1(1-n1²) - x2n2n1 - x3n3n1 + n1*p*n
x'2 = -x1n1n2 + x2(1-n2²) - x3n3n2 + n2*p*n
x'3 = -x1n1n3 - x2n2n3 - x3(1-n3²) + n3*p*n
-
Hi,
berechne eine Transformationsmatrix, sodass die Projektionsebene und dein Dreieck ins gleiche Koordinatensystem überführt werden. Aber was meinst du mit
LukasBanana schrieb:
Da ich nur die Koordinaten des Dreiecks/ der Dreiecke habe und nicht dessen/ deren Rotation ...
Möchtest du vielleicht, dass die Projektionsebene durch das Dreieck definiert ist? Dann müsstest du eine Rotation berechnen, welche die Normale beispielsweise in die z-Achse überführt. ..
-
Danke schonmal an euch beide
Also eigenltich möchte ich die Dreiecke nur soweit 'drehen' bis sie flach sind, sodass alle Z-Werte der Punkte eines jeden Dreiecks 0 ist. Dann habe ich die Koordinaten X und Y als 2D Koordinaten. Später muss ich sie allerdings auch wieder zurück 'drehen'. Wobei ich sie nicht zwingend drehen will, hauptsache sie liegen flach und die Länge der drei Kanten eines jeden Dreiecks darf sich natürlich dabei nicht verändern.
Ja, "Planarprojektion" scheint das zusein was ich brauche. Das Bild und die Beschreibung in Wikipedia zu "Planar Projection" sieht schonmal vielversprechend aus ^^
-
Meinst du die "sichtbaren" Kantenlängen (Nach der Projektion auf die Bildschirmfläche) oder die Kantenlängen im R3?
Edit: Links oder rechts? [img=http://img216.imageshack.us/img216/8627/testhw8.th.png]
-
dein beitrag klingt so, als suchest du die matrix der projektion in eine vorgegebene ebene. was du aber wirklich suchst ist ein isomorphismus einer vorgegebenen ebene in den R^2.
-
Nein, nicht sichtbaren, sondern die Längen im 3 dimensionalen Raum.
Normaler Weise kann ich ja mittels einer 4x4 Matrix 3D Koordinaten im Raum positionieren, rotieren und skalieren. Wie aber muss ich die 3D Koordinaten so transformieren, dass die Z-Koordiante 0 wird und die Kantenlängen der Dreiecke, bzw. die Entfernung der 3D Punkte zum Ursprung, gleich bleiben?!
Das ist es was ich wissen will.
-
Achso, also da musst du noch mehr Einschränkungen machen. Parallel zur z=0-Ebene bekommst du durch Rotation mit einer Matrix nur Dreiecke, die vorher schon parallel zueinander waren. Dann musst du noch festlegen um welchen Punkt diese Dreiecke gedreht werden sollen, weil das Auswirkungen auf die Lage der Projektion anschließend hat. Abschließend musst du noch festlegen, was bei den Dreiecken anschließend "oben" sein soll, weil du ja beliebig um die z-Achse rotieren kannst ohne deine Bedingung (liegt auf z=0) zu verletzen.
-
du suchst eine projektionsmatrix?
-
nein, er sucht eine isometrie von einer beliebigen durch ein dreieck gegebenen ebene nach R^2 x {0}.
-
ich finde das wird aus seiner beschreibung nicht ganz klar. er koennte auch zwei achsen des dreiecks und die normale als basis fuer eine matrix nehmen, dann die dreieckspunkte mit der inversen davon transformieren und haette auch alls z auf 0.
-
Fehlt da nicht noch der Entscheidende Schritt z auf 0 zu setzen anschließend?
Aber mal im Ernst, ich glaube, er weiß eigentlich noch gar nicht so recht, was er genau sucht. Ich fänd ja mal eine Zeichnung hilfreich.
-
Decimad schrieb:
Aber mal im Ernst, ich glaube, er weiß eigentlich noch gar nicht so recht, was er genau sucht.
und falls, dann kann der es nicht richtig erfragen
Ich fänd ja mal eine Zeichnung hilfreich.
Decimad for president, ich stimme dir zu