Cesium 绕点旋转

72 篇文章 14 订阅 ¥159.90 ¥299.90
本文介绍如何在 Cesium 中实现绕点旋转效果。利用 Vue 框架,通过修改 camera 对象的 heading 属性,可以达到绕指定位置旋转的目的。
摘要由CSDN通过智能技术生成

实现效果

实现原理

实际是通过修改 camera 对象 heading 属性值来实现对指定位置的绕点旋转

开发背景

  • 使用 vue 前端框架

代码实现

startRotate(viewer, options) {
   
		let {
    heading, pitch, rol
Cesium中,可以使用Transforms.eastNorthUpToFixedFrame方法将一个点从地球表面的东北向上坐标系转换为固定坐标系。然后,使用Matrix3.fromRotationZ方法创建一个绕z轴旋转旋转矩阵,并将其应用于转换后的点。最后,使用Matrix4.fromRotationTranslation方法将旋转变换与平移变换结合起来,得到绕顶点旋转的变换矩阵。以下是一个示例代码: ``` var viewer = new Cesium.Viewer('cesiumContainer'); var cone = viewer.entities.add({ name : 'Cone', position : Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883), cylinder : { length : 20000.0, topRadius : 0.0, bottomRadius : 20000.0, material : Cesium.Color.RED.withAlpha(0.5) } }); viewer.clock.onTick.addEventListener(function(clock) { var rotation = Cesium.Matrix3.fromRotationZ(clock.currentTime.secondsOfDay); var transform = Cesium.Transforms.eastNorthUpToFixedFrame(cone.position); var matrix = Cesium.Matrix4.fromRotationTranslation(rotation, Cesium.Cartesian3.ZERO); matrix = Cesium.Matrix4.multiply(transform, matrix, matrix); cone.modelMatrix = matrix; }); ``` 在这个代码中,我们创建了一个圆锥体,并在每一帧中绕顶点旋转。具体来说,我们使用Cesium的Clock对象来获取当前时间,并将其转换为绕z轴旋转的角度。然后,我们使用Transforms.eastNorthUpToFixedFrame方法将锥体当前位置转换为固定坐标系,并使用Matrix3.fromRotationZ方法创建绕z轴旋转旋转矩阵。最后,我们使用Matrix4.fromRotationTranslation方法将旋转变换与平移变换结合起来,得到绕顶点旋转的变换矩阵,并将其应用于圆锥体的modelMatrix属性上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

seelingzheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值