{}
run-icon
main.js
function RollPitchYawToMachine(roll, pitch, yaw) { var _A = roll * Math.PI / 180; var _B = pitch * Math.PI / 180; var _C = yaw * Math.PI / 180; var _sB = Math.sin(_B), _cB = Math.cos(_B); var _sA = Math.sin(_A), _cA = Math.cos(_A); var _sC = Math.sin(_C), _cC = Math.cos(_C); var I = _sB * _cC; var J = _sA * _cB * _cC + _cA * _sC; var K = _cA * _cB * _cC - _sA * _sC; var _cosA = 2 * K - 1; if (_cosA < -1) { _cosA = -1; } if (_cosA > 1) { _cosA = 1; } var A = Math.acos(_cosA) * 180.0 / Math.PI; var _sinA = Math.sqrt(1 - _cosA * _cosA); if (J > 0) { A = -1 * A; _sinA = -1 * _sinA; } var _cX = (1 - _cosA) / 2; var _cY = _sinA / Math.sqrt(2); var dumb = _cX * _cX + _cY * _cY; if (dumb < 0.000001) { var C = 0; } else { var _c1 = I * _cY + J * _cX; var _c2 = I * _cX - J * _cY; var C = Math.atan2(_c1, _c2) * 180.0 / Math.PI; } A = -1 * parseFloat(A.toFixed(3)); C = -1 * parseFloat(C.toFixed(3)); return "A=" + A + " C=" + C; } console.log(RollPitchYawToMachine(0,90,0)); console.log(RollPitchYawToMachine(0,-90,0)); console.log(RollPitchYawToMachine(90,0,0)); console.log(RollPitchYawToMachine(-90,0,0)); console.log(RollPitchYawToMachine(45,0,0)); console.log(RollPitchYawToMachine(-45,0,0)); console.log(RollPitchYawToMachine(0,45,0)); console.log(RollPitchYawToMachine(0,-45,0));
Output