Domanda

Sto cercando l'espressione matematica che converte una coordinata 3D (x0, y0, z0) in una coordinata 2D (x1, y1) in una prospettiva curvilinea del raggio R dove i valori di x1 e y1 sono gli angoli di visualizza {-90 ° .. + 90 °} del punto originale.

 image
(fonte: ntua.gr )

(immagine via http://www.ntua.gr/arch/ geometria / mbk / histor.htm )

Grazie!

È stato utile?

Soluzione

Circa un anno dopo, la soluzione era davvero semplice. Per un punto con le coordinate:

(x1,y1,z1)

Quindi, per trasformare questo punto in un disegno curvilineo di raggio R :

dist=sqrt(x1^2 + y1^2 + z1^2)

x= R*(1+x/dist)
y= R*(1+y/dist)

Ora posso generare i miei disegni (immagine tramite Wikipedia) :-)

Disegno curvilineo.

Altri suggerimenti

Potrebbe essere necessario innanzitutto utilizzare una matrice di trasformazione per proiettare l'oggetto 3D su un piano 2D. http://en.wikipedia.org/wiki/Graphical_projection , scegli quello che si adatta meglio le tue esigenze.

Come secondo passo, vorrai quindi usare le conversioni generali per portare le coordinate nello spazio euclideo. http://en.wikipedia.org/wiki/Curvilinear_coordinates

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top