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

网站导航设计技巧网页模板源代码

网站导航设计技巧,网页模板源代码,各省网站备案条件,徐州智能建站怎么做先看效果: 在cesium中,我们有时需要倾斜相机视角去观察物体,如相机俯视45观察物体。 cesium的api提供了倾斜相机视角的配置,但是直接使用cesium的api不能达到我们想要的效果。 函数如下: function flyToBox() {let l…

先看效果:
在这里插入图片描述
在cesium中,我们有时需要倾斜相机视角去观察物体,如相机俯视45观察物体。
cesium的api提供了倾斜相机视角的配置,但是直接使用cesium的api不能达到我们想要的效果。
函数如下:

function flyToBox() {let longitude = -114;let latitude = 40;let pitch = -45;let height = 4000;// 创建一个蓝色盒子const blueBox = viewer.entities.add({name: "Blue box",position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height / 2),box: {dimensions: new Cesium.Cartesian3(1000.0, 1000.0, 1000.0),material: Cesium.Color.BLUE,},});let center = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 相机飞行到指定位置viewer.camera.flyTo({destination: center,orientation: {// 定义相机朝向(方向,俯仰角,横滚角)heading: Cesium.Math.toRadians(360),pitch: Cesium.Math.toRadians(pitch),roll: Cesium.Math.toRadians(0),},duration: 2,});
}

效果如下在这里插入图片描述
可以看到物体已经不在视口范围内了。
why?
原因很简单,我们看到了视野都是相机的视野。
cesium相机默认的角度(picth=-90)如下:
在这里插入图片描述
在这里插入图片描述

当配置了orientation,将相机偏移了-45度,因此物体超出了相机的视野,我们也就看不到物体了。
在这里插入图片描述

想要看到物体也很简单,将相机平移x距离即可。回忆一下高中的知识,在直角三角形中,已知了一个角α和边h,可以求x。即:

x = tanα * h

接下来又是另一个难题。我们算出来需要平移x距离,x单位是米(因为h单位是米),而相机的位置的以经纬度确认的,因此需要做米到经纬度的转换,这里不必赘述,请看我之前的博客。完整代码如下:

function flyToBox() {let longitude = -114;let latitude = 40;let pitch = -45;let height = 4000;// 创建一个蓝色盒子const blueBox = viewer.entities.add({name: "Blue box",position: Cesium.Cartesian3.fromDegrees(longitude, latitude, 0),box: {dimensions: new Cesium.Cartesian3(1000.0, 1000.0, 1000.0),material: Cesium.Color.BLUE,},});// 计算相机的偏移量let offset = tan(90 + pitch) * height * 1;// 向南偏移,计算新的经纬度let { latitude: newLat, longitude: newLon } = offsetToLatLon(latitude,longitude,0,offset);let center = Cesium.Cartesian3.fromDegrees(newLon, newLat, height);//   let center = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 相机飞行到指定位置viewer.camera.flyTo({destination: center,orientation: {// 定义相机朝向(方向,俯仰角,横滚角)heading: Cesium.Math.toRadians(360),pitch: Cesium.Math.toRadians(pitch),roll: Cesium.Math.toRadians(0),},duration: 2,});
}/*** 计算给定角度的正切值* * @param {number} degrees 输入的角度值* @returns {number} 返回计算得到的正切值*/
function tan(degrees) {// 将角度转换为弧度const angleInRadians = degrees * (Math.PI / 180);return Math.tan(angleInRadians);
}
http://www.dinnco.com/news/72375.html

相关文章:

  • 有哪些网站建设公司上线网站优化系统
  • 做房产抵押网站需要什么手续费竞价推广的企业
  • 网站设计实例快照关键词优化
  • 免费网站建设翻译百度一下你就知道官网网址
  • 织梦开发小说网站教程亚马逊seo推广
  • 一个公司设计网站怎么做渠道推广费用咨询
  • 永久空间网站成都网络推广公司
  • 做洁具最好的网站淘宝怎么设置关键词搜索
  • 上海做外贸网站设计深圳seo网络推广
  • 合肥网站建设方案托管自媒体营销推广方案
  • 工程建设公司起名大全集免费专业搜索引擎seo服务
  • 建设网站com西安专业网络推广公司
  • 广告牌制作培训学校铁力seo
  • 安装网站到服务器内容营销策略有哪些
  • wordpress半次元主题seo网站制作优化
  • 台州椒江网站建设公司搜狗站长
  • 成都解放号网站建设品牌广告
  • 公安局 网站备案查询站长之家网站介绍
  • 成都短视频制作培训班优化合作平台
  • 做网站不挣钱精准信息300099
  • 网站卖东西怎么做的搜索引擎的网址有哪些
  • 网站后台无ftp销售新手怎么找客源
  • 代码网站模板怎么做关键词排名怎么查
  • 厦门做网站公司有哪些不花钱网站推广
  • 阿里巴巴网站的功能营销方案案例
  • 仿牌网站优化河南网站推广
  • 单页设计网站肇庆网站推广排名
  • .net网站与php网站网络舆情监控系统
  • 设计网站的一般过程网站优化公司大家好
  • 有多少网站可以推广业务深圳seo培训