返回介绍

3D Tiles 模型旋转

发布于 2021-01-09 13:34:15 字数 1155 浏览 1864 评论 0 收藏 0

上一节介绍了3D Tiles模型的位置移动,和贴地的操作,这一节来聊一聊模型的旋转。

参考《WebGl编程指南》的第四章

假设在X轴和Y轴构成的平面上,要让物体旋转角度为β,那么公式如下:

由此思路就出来了:

    1. 根据要旋转的角度,构建一个三阶旋转矩阵
    2. 获取3D tiles 的旋转矩阵modelMatrix,然后与旋转矩阵运算,
    3. 最后将计算结果再赋值给modelMatrix,完成。

参考代码:

var m = tileset.modelMatrix;
//RotateX为旋转角度,转为弧度再参与运算
var m1 = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(RotateX));

//矩阵计算
Cesium.Matrix4.multiplyByMatrix3(m,m1,m);

//赋值
tileset.modelMatrix = m;

点击查看动画

lesson03源码参考

1.52下旋转就飞了(库里面判断,旋转是根据地球中心旋转的,比如模型在坐标为100,40的位置,绕x旋转1度就到了经度 101,40 的位置),1.40里面是可用的。1.40示例:
https://hqcode.gitee.io/cesium-test/lesson03/ 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文