2017-05-08 2 views
0

Ich habe ein 3D-Objekt, und möchte es in alle Richtungen exportieren.Schließen Ich habe zu Hause Bild und wenn ich es auf 2D-Ebene projizieren es nur zeigen mir etwas wie Quadrat, aber wenn ich Winkel ändern geben Sie mir andere Ansicht (kurz ich will unterschiedliche 2d Projektion des gleichen 3d Gegenstandes für bessere Sichtbarmachung). Ich suche nach python Bibliothek oder Algorithmus, der fähig ist, das zu tun. Bitte ref-Diagramm, um klare Idee zu bekommen, was ich will. enter image description hereProjizieren 3D-Modell auf 2D-Ebene

+0

Ich bin auf der Suche nach Python-Code. – Renu

+0

Willkommen! Es gibt viele Bibliotheken, die solche Sachen machen. Wie auch immer, deine Frage ist unklar und es fehlt jegliche Anstrengung. Dies wird wahrscheinlich stark nach unten gehen, wenn es in diesem traurigen Zustand bleibt. – Ash

+0

Eigentlich möchte ich 3D-Modell auf 2D-Ebene projizieren. Bitte beachten Sie Abb.1 dieses Papiers https://pdfs.semanticscholar.org/087d/87eb6fc37245b7867cde27235c2f23574949.pdf Sie erhalten eine Idee, wonach ich eigentlich suche. – Renu

Antwort

0

Dies kann mit der projektiven Transformation erfolgen. Dies sind eigentlich nur zwei Matrixmultiplikationen und eine Division. Könnte in einer Zeile von Python geschrieben werden. enter image description here

Der Vektor auf der rechten Seite ist einer Ihrer vielen 3D-Scheitelpunkte des 3D-Modells. Die Matrix [r_11 ... t_3] ist eine starre Transformation und repräsentiert den Ort und die Orientierung Ihres Flugzeugs (manche nennen es Kamerapose oder extrinsische Kameraparameter). Diese Matrix werden Sie für jede einzelne Projektion ändern. Die Matrix [f_x ... 1] definiert die Projektion selbst und bleibt in der Regel unverändert. Mit Ihrer Anwendung könnte es möglich sein, nur die Identitätsmatrix zu verwenden (Sie könnten sie also ignorieren). Der letzte Schritt besteht darin, den transformierten Vektor so zu skalieren, dass er auf der Bildebene in einem Abstand von z = 1 liegt. U_x und u_y sind Ihre entsprechenden 2D-Koordinaten.

+0

Vielen Dank für die Antwort, ich habe nur meine Frage für ein klares Verständnis bearbeitet.Sorry für Unannehmlichkeiten – Renu

+0

Es scheint wie perspektivische Projektion, aber ich möchte orthographische Projektion – Renu

+0

Die orthographische Projektion ist einfach zu berechnen. Sie brauchen nur die zwei rechten Komponenten der obigen Transformation. Des resultierenden Vektors von [r_11 ... t_3] * [A_x; A_y; A_z], setze einfach die z-Komponente auf Null. – eidelen

Verwandte Themen