Mi piacerebbe disegnare un orizzonte artificiale. Il centro della vista rappresenterebbe una vista perfettamente orizzontale con il rullo che ruota la linea orizzontale e il pitch lo muove su o giù.Traduzione corretta dell'orizzonte artificiale
La domanda è: qual è il calcolo corretto per tradurre la linea dell'orizzonte in alto o in basso (altezza) dato l'angolo di inclinazione.
La mia ipotesi è che questo probabilmente dipenderà dall'angolo del FOV che si suppone per una telecamera presunta, quindi questo angolo dovrebbe essere un fattore dell'algoritmo ricercato. Idealmente, troverei questo angolo per la fotocamera dell'iPhone/iPad in modo che l'orizzonte artificiale si allinei all'orizzonte reale se si tiene il dispositivo di fronte a sé e si guarda verso l'orizzonte.
Fino ad ora ho indovinato l'offset, ma mi piacerebbe avere la formula esatta.
Prova 'horizon_offset/(screen_height/2) = tan (pitch)/tan (vertical_FOV/2)'. [Vedi] (http://zwibbler.com/shared/3120.png). –
Potresti scriverlo come risposta separata in modo che io possa accettarlo se risulta essere quello giusto? Forse anche elaborando come hai derivato la formula? – Cocoanetics
Una risposta esatta dipende dalla conoscenza di quanto l'utente è lontano dallo schermo e dall'angolo in cui viene trattenuto - se lo schermo non viene visualizzato esattamente a 90 gradi, l'angolo del dispositivo non si tradurrà nell'angolazione dell'orizzonte. Quindi sestanti e quadranti hanno più di una vista da allineare. Gli orizzonti artificiali sugli aerei mostrano invece una scala calibrata per l'altezza, quindi non richiedono tali informazioni. –