Orientamento 3D a monitor

willy_80
I miei problemi sono relativi alla rappresentazione 3D di un punto su un piano 2D di visualizzazione cioè il monitor.
Dovrei creare la routine che mi consenta di calcolare le coordinate x,y del monitor fornendo:
le coodrinate x,y,z del punto e i valori di A=angolo di orientamento attorno all'asse x, B=angolo di orientamento attorno all'asse y, C=angolo di orientamento attorno all'asse z.
Mi sapete indicare come fare?

Risposte
apatriarca
La tua è una richiesta un po' generica e poco chiara. Com'è disposto il piano sul quale si proiettano i punti? Qual'è la dimensione dello schermo? Che tipo di proiezione stai facendo?

willy_80
normalmente quando devo visualizzare un disegno in sfw cad in una form inserisco una picturebox nella quale carico una bmp nella quale ho precedentemente disegnato le linee e gli archi che mi servono.

1. Diciamo che la bmp è di 1000x1000 pxl.
2. In una variabile memorizzo il fattore di zoom.
3. In altre 2 variabili memorizzo i valori di offset (X,Y) dell'origine.
4. Quando devo ricavare le coordinate in pxl di un punto faccio così:
-Sommo algebricamente l'offset: X'=X+OffX Y'=Y+OffY
-Scalo il tutto: X'=X'*Zoom Y'=Y'*Zoom
-Sapendo che le bmp per quanto riguarda la Y hanno lo zero in alto e si sviluppano in positivo scendendo verso il basso: Y'=Hbmp-Y' (Hbmp=Altezza bmp)
-A questo punto ho trovato le coordinate del mio punto nella bmp (X,Y)=>(X';Y')

Questo sistema funziona benissimo quando disegno sul piano 2D, ora devo disegnare nel piano 3D quindi fra le mie variabili ora sono presenti molti più dati:
-Gli orientamenti angolari degli assi (A,B,C)
-L'offset è diventato tridimensionale (X,Y,Z)
-E' ovviamente presente lo Zoom

Spero di aver chiarito i dubbi presenti nel mio post precedente, sono comunque aperto a qualsiasi consiglio...

willy_80

apatriarca
3D projections. Qui trovi qualche informazione. Ma in quell'articolo ci sono alcune convenzioni non ben specificate (come quale sia esattamente il piano in cui viene proiettato il punto). Ti consiglio di proseguire la lettura con i link riportati nella pagina.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.