Ich versuche, vrDisplays Drehung (kommt in Quaternionen) zu Breite und Länge zu konvertieren, da eine API, die ich benutze, die aktuelle Rotation der Head Mounted Anzeige in lat und lon Werten benötigt.THREE.js - Quaternion zu lat, lon
lordofducts beantworten in unity3d Foren (https://forum.unity3d.com/threads/quaternions-and-euler-angles-to-longitude-latitude.154392/)
gab mir gute Hoffnung, dass dies tatsächlich möglich ist, aber ich bin ein bisschen stecken, als THREE.Quaternion nicht zu haben ToAxisAngle scheint() -Methode, und ich bin nicht so gut mit 3D-Geometrie.
also hat jemand eine Idee, wie ich das erreichen kann, damit ich sowas tun kann?
var quat = THREE.Quaternion();
quat.fromArray(vrDisplay.getPose().orientation);
var lat = //do sth with quat
var lon = //do seth with quat
api.rotateCamera({
lat: lat,
lon: lon
});
// Ich bemerkte, dass ich bereits in meinem Code eine Umwandlung von Euler müssen lat lon-Winkel. Also konvertiere ich das Quaternion nur in Euler-Winkel und wandle es dann in lat lon-Werte um. Dennoch muss es eine ausgeklügeltere Methode geben ...
(1) Zu Ihrer Information gibt es 'Vector4.setAxisAngleFromQuaternion (Quaternion)'. (2) Versuchen Sie stattdessen 'v = new THREE.Vector3(); // wiederhole es! v.set (0, 0, 1) .applyQuaternion (quaternion); 'Das sollte dir die Richtung geben. – WestLangley