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

佛山网站建设的公司在线logo制作生成免费网站

佛山网站建设的公司,在线logo制作生成免费网站,自己做下载网站,我要发布招聘信息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.w-s-a.com/news/270780/

相关文章:

  • 网站假设教程湖南微信管理系统
  • 网站备案属于公司哪一块哪个网站是专门做封面素材
  • 广州个人做网站内江建设局网站
  • 网站开发 360百科大连哪里有手机自适应网站建设维护
  • 如何查网站pv网站功防教程
  • 建设银行网站信息补充营销推广的作用
  • 网站见建设seo外链自动群发工具
  • 在境外做网站网站团购网站seo
  • 进网站后台加什么360推广 网站建设
  • 网站备案号码专做网站漏扫的工具
  • 罗店网站建设wordpress响应式
  • 网站怎么制作小程序wordpress实时获取qq资料
  • 网站的流量怎么赚钱经销做网站都有什么好处
  • 如何做好网站首页企术建站
  • 杭州网站建设咨询蓝韵网络聊城有制作网站的吗
  • 网站开发注意的事项深圳企业网站
  • 哈尔滨网站制作哪里专业网站建设维护有哪些内容
  • 花的网站建设规划书网络营销培训
  • 又拍云wordpress全站cdn无锡做网站品牌公司
  • 计算机网络工程网站建设黄石建设信息网站
  • 旅游网站开发毕业设计开题报告青岛网站建设服务公司
  • 人员调动在网站上怎么做网站开发课程意见和建议
  • 卓训网是个什么网站wordpress命令执行时间
  • 网站建设需要做哪些工作网片焊接
  • 网站优化方案dedecms win8风格网站模板
  • 企业如何制作网站管理系统慈溪住房和城乡建设部网站
  • 青岛网站建设有哪些公司区块链网站开发价格
  • 怎么设置网站的logo微信公众号的h5网站开发6
  • 粉色的网站绍兴市建设局网站
  • 个人网站的基本风格是wordpress 模板选择