From 2dae2d2ff2ab0ef5c84cf0ff2bffc0da06c6fcc6 Mon Sep 17 00:00:00 2001 From: fukunee Date: Sat, 19 Sep 2026 14:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E8=B0=83=E5=8F=B3=E9=94=AE=E7=8E=AF?= =?UTF-8?q?=E8=A7=86=E4=B8=A4=E8=BD=B4=EF=BC=9A=E5=B7=A6=E5=8F=B3=3D?= =?UTF-8?q?=E7=BB=8F=E5=BA=A6=E6=96=B9=E5=90=91=EF=BC=8C=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=3D=E7=BA=AC=E5=BA=A6=E6=96=B9=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/scene/CesiumGlobe.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/scene/CesiumGlobe.js b/src/scene/CesiumGlobe.js index a6003f5..efb1777 100644 --- a/src/scene/CesiumGlobe.js +++ b/src/scene/CesiumGlobe.js @@ -396,7 +396,7 @@ export class CesiumGlobe { const sc = this._orbitScratch; const offset = Cesium.Cartesian3.subtract(camera.position, pivot, sc.offset); const upAxis = Cesium.Cartesian3.normalize(pivot, sc.upAxis); - const eastAxis = Cesium.Cartesian3.cross(Cesium.Cartesian3.UNIT_Z, pivot, sc.eastAxis); // 绕它转 = 左右拖动(纬度方向倾倒) + const eastAxis = Cesium.Cartesian3.cross(Cesium.Cartesian3.UNIT_Z, pivot, sc.eastAxis); // 绕它转 = 上下拖动(纬度方向倾倒) if (Cesium.Cartesian3.magnitudeSquared(eastAxis) < 1e-12) { eastAxis.x = 1; eastAxis.y = 0; @@ -405,7 +405,7 @@ export class CesiumGlobe { Cesium.Cartesian3.normalize(eastAxis, eastAxis); } const northAxis = Cesium.Cartesian3.normalize( - Cesium.Cartesian3.cross(upAxis, eastAxis, sc.northAxis), // 绕它转 = 上下拖动(经度方向倾倒) + Cesium.Cartesian3.cross(upAxis, eastAxis, sc.northAxis), // 绕它转 = 左右拖动(经度方向倾倒) sc.northAxis, ); this._lookState = { @@ -448,13 +448,13 @@ export class CesiumGlobe { this._lookHandler = handler; } - // 按累计角度(已限制)把相机绕点击点倾倒:左右 = 纬度方向(绕东西轴), - // 上下 = 经度方向(绕南北轴);up 始终强制北朝上。 + // 按累计角度(已限制)把相机绕点击点倾倒:左右 = 经度方向(绕南北轴), + // 上下 = 纬度方向(绕东西轴);up 始终强制北朝上。 _orbitCamera(s) { const camera = this.viewer.camera; const sc = this._orbitScratch; - Cesium.Quaternion.fromAxisAngle(s.eastAxis, s.azimuth, sc.qAz); - Cesium.Quaternion.fromAxisAngle(s.northAxis, s.elevation, sc.qEl); + Cesium.Quaternion.fromAxisAngle(s.northAxis, s.azimuth, sc.qAz); + Cesium.Quaternion.fromAxisAngle(s.eastAxis, s.elevation, sc.qEl); Cesium.Quaternion.multiply(sc.qEl, sc.qAz, sc.q); Cesium.Matrix3.fromQuaternion(sc.q, sc.rotMat); Cesium.Matrix3.multiplyByVector(sc.rotMat, s.startOffset, sc.newOffset);