最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Cesium局部坐標計算方法

2022-12-10 17:18 作者:地理信息技術雜談  | 我要投稿

在cesium的開發(fā)中,有時會碰到局部的空間坐標計算,特別是在涉及到三維模型加載的場景中,例如,已知一個點的經(jīng)緯度坐標,計算附近與它相距x、y、z距離的一個新坐標位置,同樣需要換算成經(jīng)緯度坐標,有時還需要考慮水平旋轉(zhuǎn)和上下傾角。

cesium的Transforms里提供了根據(jù)當前點,建立一個局部坐標系的方法,通過矩陣進行坐標的轉(zhuǎn)換,局部坐標系的建立方式:

//_ca_coord為Cartesian3坐標,可以通過Cesium.Cartesian3.fromDegrees,由經(jīng)緯度坐標進行轉(zhuǎn)換;//eastNorthUp代表東、北、上,對應x\y\z

const?_localToWorld_Matrix =

Cesium.Transforms.eastNorthUpToFixedFrame(_ca_coord);

以上點作為局部坐標系的原點,距離它x、y、z的新坐標計算方式為:
//通過矩陣乘法進行實現(xiàn),結(jié)果為Cartesian3坐標,同樣可以轉(zhuǎn)換為經(jīng)緯度

const?_new_ca =

Cesium.Matrix4.multiplyByPoint(_localToWorld_Matrix, Cesium.Cartesian3.fromElements(x, y,?z),?new?Cesium.Cartesian3());

假如有偏北的旋轉(zhuǎn)角,需要在轉(zhuǎn)換矩陣上加上角度的轉(zhuǎn)換:
//偏北方向是繞Z軸進行旋轉(zhuǎn),弧度值,其他旋轉(zhuǎn)可以對應坐標軸

?let?rotz = Cesium.Matrix3.fromRotationZ(rad);

?let?rotationZ = Cesium.Matrix4.fromRotationTranslation(rotz);

? ? ? ? ? ? Cesium.Matrix4.multiply(_localToWorld_Matrix, rotationZ, _localToWorld_Matrix);

同樣,用新的矩陣,按照前邊的方式進行相乘,就能夠得出新的坐標了。

Cesium局部坐標計算方法的評論 (共 條)

分享到微博請遵守國家法律
邵阳县| 永年县| 武穴市| 普安县| 马龙县| 新乡市| 景谷| 城市| 新密市| 高平市| 佛教| 福建省| 东山县| 新龙县| 吉林省| 大新县| 乌海市| 鲁甸县| 松潘县| 西青区| 隆林| 尖扎县| 喀什市| 洪江市| 正阳县| 梁平县| 安丘市| 新宁县| 崇礼县| 南漳县| 新源县| 错那县| 桑日县| 平凉市| 兴安县| 阜阳市| 平阳县| 小金县| 昭苏县| 高邑县| 曲松县|