当前位置: 首页 > news >正文

电脑网站加速器住房和城乡建设岗位证书

电脑网站加速器,住房和城乡建设岗位证书,国内响应式网站建设,wordpress 代码在哪Cesium加载3Dtiles模型的平移和旋转_3dtiles先旋转再平移示例-CSDN博客 Cesium 平移cesiumlab生产的3Dtiles切片模型到目标经纬度-CSDN博客 【ArcGISCityEngine】自行制作Lod1城市大尺度白膜数据_cityengine 生成指定坐标集指定区域的白模-CSDN博客 以上次ArcGISCityEngine制… Cesium加载3Dtiles模型的平移和旋转_3dtiles先旋转再平移示例-CSDN博客 Cesium 平移cesiumlab生产的3Dtiles切片模型到目标经纬度-CSDN博客 【ArcGISCityEngine】自行制作Lod1城市大尺度白膜数据_cityengine 生成指定坐标集指定区域的白模-CSDN博客 以上次ArcGISCityEngine制作的白膜为例 导出至FBX/OBJ 然后在CesiumLab中转化为3D Tiles模型 但是发现模型位置不正确默认位置在北京天安门上空需要将模型调整至指定经纬度位置 起初以为只需做平移变化平移至指定经纬度 tileset.readyPromise.then(function() {// // 获取tileset的中心点坐标const boundingSphere tileset.boundingSphereconst center boundingSphere.center// 将中心点坐标转换为WGS84坐标系下的经纬度const cartographic Cesium.Cartographic.fromCartesian(center)console.log(cartographic)const longitude Cesium.Math.toDegrees(cartographic.longitude)const latitude Cesium.Math.toDegrees(cartographic.latitude)const height Cesium.Math.toDegrees(cartographic.height)// const startLon 116.391005;// const startLat 39.906623// 将经纬度调整为研究区域的经纬度const areaLongitude 118.792930// const areaLongitude 114.150301const areaLatitude 31.9707912// 计算tileset的平移量并将其应用到modelMatrix中const translation Cesium.Cartesian3.fromDegrees(areaLongitude, areaLatitude)const centerNew Cesium.Cartesian3.fromDegrees(longitude, latitude)const translationVector Cesium.Cartesian3.subtract(translation, centerNew, new Cesium.Cartesian3())const translationMatrix Cesium.Matrix4.fromTranslation(translationVector);console.log(translationMatrix)tileset.modelMatrix translationMatrixviewer.zoomTo(tileset)})但是平移的结果存在问题模型为倾斜的发生旋转了未贴地需要调整 why:  在Cesium中当你尝试在全局坐标系下直接平移3D Tiles数据时可能会遇到模型变得不平即模型的几何形状在视觉上扭曲或倾斜的问题。这通常是因为平移操作没有考虑到原始模型与地球表面之间的相对位置关系。 How:  使用地球表面的局部坐标系 尝试将平移操作转换为地球表面的局部坐标系中的移动。这通常涉及到计算目标位置与当前位置之间的地球表面距离并沿着地球表面移动模型。然而Cesium的API可能不直接支持这种操作因此你可能需要实现一些自定义的逻辑。 调整模型矩阵以考虑地球曲率 如果你直接在模型矩阵中设置平移你需要确保这个平移是沿着地球表面的切线方向进行的而不是简单地沿着全局坐标系的X、Y、Z轴。这可能需要你根据目标经纬度计算出一个合适的平移向量该向量应该考虑到地球表面的曲率 Solution: 将模型平移回世界坐标系原点地心 将局部坐标Z轴调整到与世界坐标Z轴重合 将局部坐标X,Y轴调整到与世界坐标X,Y轴重合 将目标位置的eastNorthUp局部坐标系平移回世界坐标系原点地心 旋转物体坐标系与目标坐标系重合 平移到目标位置即为最终变换矩阵 理论基础GAMES101 Lecture 04 Transformation Cont._哔哩哔哩_bilibili function moveModel(tileset,longitude,latitude,height) {//计算世界坐标系中的目标位置offsetvar cartographic new Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center);var offset Cesium.Cartesian3.fromDegrees(longitude,latitude,cartographic.heightheight);//将模型位移至地心const origin tileset.boundingSphere.center;const originMatrix tileset.modelMatrix;//模型的初始变换矩阵const backToEarthCenter new Cesium.Cartesian3(-origin.x,-origin.y,-origin.z);//初始位置到地心的位移向量let backToEarthCenterMatrix Cesium.Matrix4.fromTranslation(backToEarthCenter);//初始位置到地心的变换矩阵Cesium.Matrix4.multiply(backToEarthCenterMatrix, originMatrix, backToEarthCenterMatrix);//移动模型到地心的矩阵// 旋转模型使得Z轴与世界坐标Z轴重合let arrowX new Cesium.Cartesian3(1, 0, 0);let arrowZ new Cesium.Cartesian3(0, 0, 1);let angleToXZ Cesium.Cartesian3.angleBetween(arrowX, new Cesium.Cartesian3(origin.x, origin.y, 0));//局部Z轴在世界坐标系XY平面上投影到X轴角度即绕Z顺时针旋转这个角度可以到XZ平面上let angleToZ Cesium.Cartesian3.angleBetween(origin, arrowZ);//然后绕Y轴顺时针旋转此角度可使得Z轴与世界坐标系Z轴重合const rotationAngleToXZ Cesium.Matrix3.fromRotationZ((origin.y0?-1:1)*angleToXZ);//绕Z轴旋转的Matrix3矩阵正角度逆时针旋转const rotationAngleToZ Cesium.Matrix3.fromRotationY(-angleToZ);//绕Y轴旋转的Matrix3矩阵负角度顺时针旋转let rotationAngleToZMatrix Cesium.Matrix3.multiply(rotationAngleToZ, rotationAngleToXZ, new Cesium.Matrix3);//连续旋转的Matrix3矩阵即先绕Z轴旋转后绕Y旋转的矩阵。rotationAngleToZMatrix Cesium.Matrix4.fromRotationTranslation(rotationAngleToZMatrix);//连续旋转的Matrix4矩阵Cesium.Matrix4.multiply(rotationAngleToZMatrix, backToEarthCenterMatrix, rotationAngleToZMatrix);//将移动至地心模型旋转至Z轴重合的矩阵// 旋转模型使得XY轴与世界坐标XY轴重合const rotationZ Cesium.Matrix3.fromRotationZ(-Math.PI/2); // 绕Z轴旋转90°的Matrix3变换矩阵let rotationMatrix Cesium.Matrix4.fromRotationTranslation(rotationZ); // 绕Z轴旋转90°的Matrix4变换矩阵Cesium.Matrix4.multiply(rotationMatrix, rotationAngleToZMatrix, rotationMatrix);//将移动至地心模型的物体坐标系旋转到与世界坐标系重合的矩阵//在地心位置旋转物体坐标系和世界坐标系重合的模型使得与目标坐标系重合const offsetToWorldMatrix Cesium.Transforms.eastNorthUpToFixedFrame(offset);//获取到以目标位置为原点,的eastNorthUp局部坐标系的变换矩阵const backToEarthCenterOffset new Cesium.Cartesian3(-offset.x, -offset.y, -offset.z);//目标位置到地心的位移向量let backToEarthCenterMatrixOffset Cesium.Matrix4.fromTranslation(backToEarthCenterOffset);//目标位置到地心的变换矩阵Cesium.Matrix4.multiply(backToEarthCenterMatrixOffset, offsetToWorldMatrix, backToEarthCenterMatrixOffset);//获得从世界坐标系旋转至目标坐标系的旋转矩阵只有旋转没有位移Cesium.Matrix4.multiply(backToEarthCenterMatrixOffset, rotationMatrix, backToEarthCenterMatrixOffset);//将移动至地心模型的物体坐标系旋转到与目标坐标系重合的矩阵完成模型的最终旋转没有位移//移动到目标位置const backToOriginMatrix Cesium.Matrix4.fromTranslation(offset);//地心到目标位置位移向量const lastMatrix Cesium.Matrix4.multiply(backToOriginMatrix,backToEarthCenterMatrixOffset,new Cesium.Matrix4());//最终矩阵即将地心位置的模型移动到目标位置完成模型的最终旋转最终位移console.log(最终变换矩阵,lastMatrix);return lastMatrix //返回最终变换矩阵 } ------------------------------------------------------------------------------------------ let tileset viewer.scene.primitives.add(new Cesium.Cesium3DTileset({url: .../tileset.json,}));tileset.readyPromise.then(function (tileset) {window.tileset tilesetlet longitude 104.98680let latitude 32.20795let height 100let modelMatrix moveModel(tileset,longitude,latitude,height)tileset.modelMatrix modelMatrix;//移动模型// 创建圆形包围盒let boundingSphere new Cesium.BoundingSphere(tileset.boundingSphere.center,tileset.boundingSphere.radius);//飞向该包围盒viewer.camera.flyToBoundingSphere(boundingSphere);});
http://www.tj-hxxt.cn/news/130546.html

相关文章:

  • 网站开发常用字体谷歌seo新规则
  • 云速网站建设公司佛山市住房和城乡建设部网站
  • 用c 做一个小网站怎么做网站色彩搭配技巧
  • 做民宿要给网站多少合同钱怎么制作手机app及网站
  • 电商网站wordpress软文案例大全300字
  • 手机网站dedecms营销网站建设哪家快
  • 专题网站模板网站开发未来
  • 江西安福县建设局网站wordpress九宫格主题
  • 赣县网站制作wordpress水印图片插件
  • 网站基础建设英文翻译wordpress 板块
  • 在线代理网址网站优化文章
  • 简述电子商务网站建设流程seo优化招商
  • 网站产品展示单页模板做网站赚钱难
  • 好的网站怎么设计crm管理系统销售
  • 网站建设用什么系统好优秀广告设计案例作品欣赏
  • 做分销网站系统下载网站建设方法:
  • 查手表价格的网站现在的网站怎样做推广
  • 深圳网站建设好做家装的网站有什么区别
  • 超好看WordPress保定网站建设与seo
  • 毕节网站建设做公司网站可以抄别人的吗
  • 永嘉网站制作系统建设一个网站成本多少
  • html5公司网站欣赏南宁网络推广
  • 网站建设建设公司资质要求wordpress 支付
  • 彩票网站建设策划书网站开发设计费 怎么入账
  • 网站建站代理威海互联网推广
  • dede网站百度统计怎么做wordpress如何改成中文
  • WordPress 文章 iframe长沙网络seo公司助企业突破
  • 顺通建设集团有限公司 网站wordpress评论头像问题
  • 域名备案 网站名称网页视频下载到电脑
  • 怎么做网站vip并且收费WordPress购物车纯代码