Proiezione 3d su schermo 2d
salve ragazzi.
devo risolvere matematicamente
questo problema.
Ho la mia Location(latitude,longitude,altitude), e delle altre location.
Inoltre ho l'orientamento della camera del dispositivo, l'angolo che forma l'orientamento della camera con una Location, la distanza tra le due ed altre informazioni varie.
Ora io dovrei proiettare questo punto sullo schermo del dispositivo.
Ho già svolto questo compito ma ho utilizzato solo seno e coseno dell'angolo per calcolare la posizione X,Y relativa alla location, dunque il calcolo viene abbastanza impreciso.
Esiste qualche altro modo per ottenere questi dati? Ho visto su Wikipedia delle formule per la 3d projection ma non riesco a comprenderle... Cercano 3 angoli, in realtà ne posseggo 2 soli, quello relativo al piano X,Y e quello relativo al piano Y,Z non credo ce ne siano altri.
devo risolvere matematicamente

Ho la mia Location(latitude,longitude,altitude), e delle altre location.
Inoltre ho l'orientamento della camera del dispositivo, l'angolo che forma l'orientamento della camera con una Location, la distanza tra le due ed altre informazioni varie.
Ora io dovrei proiettare questo punto sullo schermo del dispositivo.
Ho già svolto questo compito ma ho utilizzato solo seno e coseno dell'angolo per calcolare la posizione X,Y relativa alla location, dunque il calcolo viene abbastanza impreciso.
Esiste qualche altro modo per ottenere questi dati? Ho visto su Wikipedia delle formule per la 3d projection ma non riesco a comprenderle... Cercano 3 angoli, in realtà ne posseggo 2 soli, quello relativo al piano X,Y e quello relativo al piano Y,Z non credo ce ne siano altri.
Risposte
Potresti fornire maggiori informazioni su quello che stai effettivamente cercando di fare? Come mai stai usando le coordinate sferiche? Che cosa intendi con "l'angolo che forma l'orientamento della camera con una Location"? Di quale angolo stai parlando? Quale punto devi proiettare? Quello definito dalle tue coordinate sferiche?
Per quale ragione questo calcolo dovrebbe risultare impreciso? Se lavori con degli angoli l'uso delle funzioni trigonometriche è in qualche modo inevitabile (ragione per cui si preferisce spesso evitare di usare angoli in molte situazioni).
A me pare che di angoli tu ne stia introducendo 3. Hai infatti i due angoli delle coordinate sferiche (longitudine e latitudine) e l'angolo della camera che non ho compreso. Ma immagino siano molto diversi da quelli che trovi su wikipedia.
Ho già svolto questo compito ma ho utilizzato solo seno e coseno dell'angolo per calcolare la posizione X,Y relativa alla location, dunque il calcolo viene abbastanza impreciso.
Per quale ragione questo calcolo dovrebbe risultare impreciso? Se lavori con degli angoli l'uso delle funzioni trigonometriche è in qualche modo inevitabile (ragione per cui si preferisce spesso evitare di usare angoli in molte situazioni).
Cercano 3 angoli, in realtà ne posseggo 2 soli, quello relativo al piano X,Y e quello relativo al piano Y,Z non credo ce ne siano altri.
A me pare che di angoli tu ne stia introducendo 3. Hai infatti i due angoli delle coordinate sferiche (longitudine e latitudine) e l'angolo della camera che non ho compreso. Ma immagino siano molto diversi da quelli che trovi su wikipedia.
Hai mai sentito parlare di Realtà Aumentata?????????
ecco io sto cercando di creare, anzi ho già creato un'applicazione del genere.
Ricevo delle Location in formato latitudine e longitudine, e devo effettuare una loro proiezione sulllo schermo della fotocamera.
Ho a disposizione questi dati.
La Location della camera
La Location del punto
L'orientamento della camera Azimuth Pitch e Roll
L'angolo che forma la Location con la normale della camera
Ho solo due angoli perchè l'angolo Roll non mi serve. non devo trasporre la stampa su schermo.
Ho già implementato un metodo di proiezione ma risulta sfasato.
Spero tu abbia capito
ecco io sto cercando di creare, anzi ho già creato un'applicazione del genere.
Ricevo delle Location in formato latitudine e longitudine, e devo effettuare una loro proiezione sulllo schermo della fotocamera.
Ho a disposizione questi dati.
La Location della camera
La Location del punto
L'orientamento della camera Azimuth Pitch e Roll
L'angolo che forma la Location con la normale della camera
Ho solo due angoli perchè l'angolo Roll non mi serve. non devo trasporre la stampa su schermo.
Ho già implementato un metodo di proiezione ma risulta sfasato.
Spero tu abbia capito
La matrice di proiezione si costruisce normalmente come prodotto di due matrici. La prima trasformazione è una semplice isometria che sposta la camera in una posizione particolare nella scena (nell'origine e allineata in modo opportuno). Nel tuo caso, supponendo che la terra sia piatta (dubito che le location siano abbastanza lontane da notare l'effetto della curvatura della Terra), devi prima traslare tutto in modo che la camera sia nell'origine (sottrai la posizione della camera a quella del punto di interesse) e poi applicare la rotazione inversa della camera a tutta la scena. La seconda trasformazione opera la proiezione vera e propria e ci sono diversi modi per definirla. Nessuno dei parametri che ci servono (come il field of view - angolo di campo in italiano - della fotocamera) sono però stati inseriti nel tuo post. Hai informazioni sull'ottica della fotocamera?
Che metodo hai usato? In che senso risulta sfalsato? Immagino che la posizione della camera sia preso dal GPS. Hai considerato l'eventualità che lo sfasamento possa in parte essere dovuti ad errori nella ricostruzione della posizione? Se vuoi puoi provare a postare la parte del codice in cui viene implementata la proiezione.
Che metodo hai usato? In che senso risulta sfalsato? Immagino che la posizione della camera sia preso dal GPS. Hai considerato l'eventualità che lo sfasamento possa in parte essere dovuti ad errori nella ricostruzione della posizione? Se vuoi puoi provare a postare la parte del codice in cui viene implementata la proiezione.
ciao
si ho l'angolo di camera.
ma dimmi, cosa devo inserire in queste matrici di rotazione??? sono un pò tonto su queste cose
la posizione dei punti non è troppo lontana quindi si può considerare tranquillamente che la terra sia piatta.
Considererò che lo sfasamento sia dovuto al GPS dopo aver implementato le formule giuste, anche se i dati ricevuti arrivano con un'accuracy di 10 metri, quindi non dovrebbero sfasare tanto.
Per sfasati intendo che a 200 metri da un PDI(punto di interesse in gergo) il marker che sovrappongo alla realtà è disegnato distante dal reale posizionamento nella camera del punto.
Io matematicamente nel mio metodo ho
preso l'angolo che la camera forma con il punto ed effettuato seno e coseno di quell'angolo per sapere le coordinate di schermo su dove stampare il punto. per questo credo l'imperfezione dipendi dalla formula

ma dimmi, cosa devo inserire in queste matrici di rotazione??? sono un pò tonto su queste cose

la posizione dei punti non è troppo lontana quindi si può considerare tranquillamente che la terra sia piatta.
Considererò che lo sfasamento sia dovuto al GPS dopo aver implementato le formule giuste, anche se i dati ricevuti arrivano con un'accuracy di 10 metri, quindi non dovrebbero sfasare tanto.
Per sfasati intendo che a 200 metri da un PDI(punto di interesse in gergo) il marker che sovrappongo alla realtà è disegnato distante dal reale posizionamento nella camera del punto.
Io matematicamente nel mio metodo ho
preso l'angolo che la camera forma con il punto ed effettuato seno e coseno di quell'angolo per sapere le coordinate di schermo su dove stampare il punto. per questo credo l'imperfezione dipendi dalla formula
