Sensor de orientación absoluta:
AbsoluteOrientationSensor es un sensor de fusión que mide la rotación de un dispositivo en relación con el sistema de coordenadas de la Tierra.
La rotación de dispositivos en coordenadas mundiales se basa en sensores reales de acelerómetro , giroscopio y magnetómetro .
AbsoluteOrientationSensor Constructor:
para describir la orientación física del dispositivo en relación con el sistema de coordenadas de referencia de la Tierra, el constructor crea un nuevo objeto AbsoluteOrientationSensor
Sintaxis:
var absoluteOrientationSensor = new AbsoluteOrientationSensor([options])
Parámetro:
Las opciones son las siguientes:
- frecuencia:
número de veces por segundo que se llama al sensor . la lectura se define como su frecuencia .
Se puede utilizar un número entero o un número decimal que siempre es menor que el valor solicitado. - marco de referencia:
ya sea ‘dispositivo’ o ‘pantalla’ .
El valor predeterminado es ‘dispositivo’ .
Propiedades:
Sin propiedades específicas; hereda métodos de sus ancestros OrientationSensor y Sensor .
Ejemplo básico:
esta demostración simple ilustra cómo se puede usar un sensor de orientación absoluta para modificar el cuaternión de rotación de un modelo 3D. El modelo es una instancia de la clase Three.js Object3D que tiene la propiedad de cuaternión.
El sensor genérico verifica si se trata de un sensor de orientación relativa o absoluta e inicia el sensor en consecuencia.
function initSensor() { const options = { frequency: 60, coordinateSystem }; console.log(JSON.stringify(options)); sensor = relative ? new RelativeOrientationSensor(options) : new AbsoluteOrientationSensor(options); sensor.onreading = () => model.quaternion.fromArray(sensor.quaternion).inverse(); sensor.onerror = (event) => { if (event.error.name == 'NotReadableError') { console.log("Sensor is not available."); } } sensor.start(); }
Producción:
Permisos Ejemplo:
Los sensores de orientación requieren la solicitud de permisos para múltiples sensores de dispositivos para su uso. Promise.all es una buena forma de solicitar permiso para todos los sensores necesarios.
const sensor = new AbsoluteOrientationSensor(); if (navigator.permissions) { Promise.all( [navigator.permissions.query({ name: "accelerometer" }), navigator.permissions.query({ name: "magnetometer" }), navigator.permissions.query({ name: "gyroscope" })]) .then(results => { if (results.every( result => result.state === "granted")) { initSensor(); } else { console.log("Permission to use sensor was denied."); } }).catch(err => { console.log("Integration with Permissions API is not enabled, still try to start app."); initSensor(); }); } else { console.log( "No Permissions API, still try to start app."); initSensor(); }
Producción:
Compatibilidad del navegador:
- AbsoluteOrientationSensor
Cromo 69 Borde <=79 Ópera 56 WebView Android 69 cromo android 69 Ópera Android 48 Samsung InternetAndroid 10.0 - AbsoluteOrientationSensor() Constructor
Cromo 69 Borde <=79 Ópera 56 WebView Android 69 cromo android 69 Ópera Android 48 Samsung InternetAndroid 10.0
Publicación traducida automáticamente
Artículo escrito por apoorv__maheshwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA