@@ -205,15 +205,31 @@ <h1>Assistert <em>sikting</em></h1>
205205 if ( typeof e . webkitCompassHeading === 'number' ) { az = e . webkitCompassHeading ; }
206206 else if ( e . alpha != null ) { az = 360 - e . alpha ; } // alpha øker mot klokka
207207 else return ;
208- // beta: forover/bakover-vipp (-180..180). Når du sikter langs tuben i landskaps-
209- // /portrettmodus brukes beta som «høyde» grovt. Vi tar 90 - |beta| justering enkelt:
210- var alt = ( e . beta != null ) ? ( e . beta - 0 ) : 0 ;
211- // normaliser alt til -90..90 (telefon flatt = 0 vipp ≈ peker mot horisonten når reist)
212- if ( alt > 90 ) alt = 180 - alt ; if ( alt < - 90 ) alt = - 180 - alt ;
208+ // Høyde fra vipp. Telefonen ligger flatt på tuben (skjerm opp, toppkant mot
209+ // der tuben peker): flatt = horisont (0°), reist mot senit = 90°.
210+ // Portrett bruker beta; i landskap/opp-ned er det gamma/− beta som er pitch
211+ // langs samme akse. Standard skjermorienterings-konvensjon (uendret i portrett):
212+ var alt = devicePitch ( e ) ;
213213 rawAz = ( ( az % 360 ) + 360 ) % 360 ;
214214 rawAlt = alt ;
215215 sensorOK = true ;
216216 }
217+ // Pitch (høyde) langs telefonens toppkant, uavhengig av skjermrotasjon.
218+ function devicePitch ( e ) {
219+ var beta = ( e . beta != null ) ? e . beta : 0 ;
220+ var gamma = ( e . gamma != null ) ? e . gamma : 0 ;
221+ var so = 0 ;
222+ if ( window . screen && screen . orientation && typeof screen . orientation . angle === 'number' ) so = screen . orientation . angle ;
223+ else if ( typeof window . orientation === 'number' ) so = ( window . orientation + 360 ) % 360 ;
224+ var alt ;
225+ if ( so === 90 ) alt = - gamma ; // landskap (rotert mot klokka)
226+ else if ( so === 270 ) alt = gamma ; // landskap (rotert med klokka)
227+ else if ( so === 180 ) alt = - beta ; // portrett opp-ned
228+ else alt = beta ; // portrett (uendret oppførsel)
229+ // fold til −90..90
230+ if ( alt > 90 ) alt = 180 - alt ; if ( alt < - 90 ) alt = - 180 - alt ;
231+ return alt ;
232+ }
217233
218234 // ---- Kalibreringsstatus ----
219235 function renderCalStatus ( ) {
0 commit comments