cesium 实现 3d-tiles 平移旋转贴地(附源码下载)
前言
cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材。
内容概览
1.基于cesium 实现 3d-tiles 平移旋转贴地
2.源代码 demo 下载
本篇实现 3d-tiles 平移旋转贴地,效果图如下:
实现思路:核心就是根据旋转、平移矩阵相乘来改变调整 3d-tiles 模型,利用 cesium 函数 Cesium.Matrix3.fromRotationX、Cesium.Matrix3.fromRotationY、Cesium.Matrix3.fromRotationZ、Cesium.Matrix4.fromRotationTranslation、Cesium.Matrix4.multiply等等
- 界面滑条动态调整模型位置:
- var buttonx1 = document.getElementById('buttonx-');
- var buttonx2 = document.getElementById('buttonx+');
- var buttonx3 = document.getElementById('buttony-');
- var buttonx4 = document.getElementById('buttony+');
- var sliderx = document.getElementById('slider-x');
- var sliderValuex = document.getElementById('slider-value-x');
- var slidery = document.getElementById('slider-y');
- var sliderValuey = document.getElementById('slider-value-y');
- var sliderHeight = document.getElementById('slider-Height');
- var sliderValueHeight = document.getElementById('slider-value-Height');
- var sliderRotateX = document.getElementById('slider-RotateX');
- var sliderValueRotateX = document.getElementById('slider-value-RotateX');
- var sliderRotateY = document.getElementById('slider-RotateY');
- var sliderValueRotateY = document.getElementById('slider-value-RotateY');
- var sliderRotateZ = document.getElementById('slider-RotateZ');
- var sliderValueRotateZ = document.getElementById('slider-value-RotateZ');
- window.onload = function (){
- buttonx1.addEventListener('click', function(e) {
- params.tx = params.tx - 0.0001;
- if (isNaN(params.tx)) {
- return;
- }
- sliderValuex.textContent = params.tx;
- update3dtilesMaxtrix(tileset);
- });
- buttonx2.addEventListener('click', function(e) {
- params.tx = params.tx + 0.0001;
- if (isNaN(params.tx)) {
- return;
- }
- sliderValuex.textContent = params.tx;
- update3dtilesMaxtrix(tileset);
- });
- sliderx.addEventListener('input', function(e) {
- sliderValuex.textContent = e.target.value;
- params.tx = Number(e.target.value);
- if (isNaN(params.tx)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- buttonx3.addEventListener('click', function(e) {
- params.ty = params.ty - 0.0001;
- if (isNaN(params.ty)) {
- return;
- }
- sliderValuey.textContent = params.ty;
- update3dtilesMaxtrix(tileset);
- });
- buttonx4.addEventListener('click', function(e) {
- params.ty = params.ty + 0.0001;
- if (isNaN(params.ty)) {
- return;
- }
- sliderValuey.textContent = params.ty;
- update3dtilesMaxtrix(tileset);
- });
- slidery.addEventListener('input', function(e) {
- sliderValuey.textContent = e.target.value;
- params.ty = Number(e.target.value);
- if (isNaN(params.ty)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- sliderHeight.addEventListener('input', function(e) {
- sliderValueHeight.textContent = e.target.value;
- params.tz = Number(e.target.value);
- if (isNaN(params.tz)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- sliderRotateX.addEventListener('input', function(e) {
- sliderValueRotateX.textContent = e.target.value;
- params.rx = Number(e.target.value);
- if (isNaN(params.rx)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- sliderRotateY.addEventListener('input', function(e) {
- sliderValueRotateY.textContent = e.target.value;
- params.ry = Number(e.target.value);
- if (isNaN(params.ry)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- sliderRotateZ.addEventListener('input', function(e) {
- sliderValueRotateZ.textContent = e.target.value;
- params.rz = Number(e.target.value);
- if (isNaN(params.rz)) {
- return;
- }
- update3dtilesMaxtrix(tileset);
- });
- }
- 核心函数:
更多详情见下面链接文章:
文章提供源码,对本专栏感兴趣的话,可以关注一波
cesium 实现 3d-tiles 平移旋转贴地(附源码下载)的更多相关文章
- Cesium专栏-空间分析之坡度分析(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- Cesium专栏-空间分析之地形等高线(附源码下载)
Cesium Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精 ...
- cesium 之地图切换展示效果篇(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- cesium 之加载地形图 Terrain 篇(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- 使用 CSS3 实现 3D 图片滑块效果【附源码下载】
使用 CSS3 的3D变换特性,我们可以通过让元素在三维空间中变换来实现一些新奇的效果. 这篇文章分享的这款 jQuery 立体图片滑块插件,利用了 3D transforms(变换)属性来实现多种不 ...
- Cesium专栏-雷达遮罩动态扫描(附源码下载)
Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...
- Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)
“任意多边形地形开挖” 是“地形开挖”的补充篇,在这节里,我们介绍关于如何使用任意多边形对地形进行开挖,同时,由于有不少小伙伴也咨询了关于“地形开挖”篇后序内容中的填充地形的效果,之前没放出来,是想让 ...
- cesium 实现风场图效果(附源码下载)
前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内 ...
- Cesium专栏-填挖方分析(附源码下载)
Cesium 是一款面向三维地球和地图的,世界级的JavaScript开源产品.它提供了基于JavaScript语言的开发包,方便用户快速搭建一款零插件的虚拟地球Web应用,并在性能,精度,渲染质量以 ...
随机推荐
- mysql select自增变量(包括读取当前第几行)
mysql select自增变量(包括读取当前第几行) SET @rownum =0;select id,@rownum := @rownum +1 as i from ceshi order by ...
- WPF CefSharp 爬虫
1.实际需求 EMS邮件的自动分拣,要分拣首先需要获取邮件的面单号和邮寄地址,现在我们的快递一般都有纸质面单的,如果是直接使用图像识别技术从纸质面单中获取信息,这个开发的成本和实时性 ...
- 网站搭建-2-本地网站搭建-安装Linux虚拟机/ 安装IIS Windows
搭建网站-1-域名申请参见公众号 生物信息系统(swxxxt) 首先,已经拥有了一个可以正常使用的域名. 之前买了两年的阿里的服务器,由于是Windows的,最后不了了之了(因为当时找的代码都是lin ...
- .NET单例模式快速学习应用
单例模式属于设计模式中最简单的一个模式,在实际应用中也非常广泛,但可能是受到各类教程的影响,看到很多实现方式仍然沿用Java的那一套,其实在.NET中可以用更简洁的实现方式. 一.知识点介绍 核心目标 ...
- Graphviz 画图的一些总结
Graphviz Graphviz 是一个自动排版的作图软件,可以生成 png pdf 等格式. 一切以官方文档为准,博客只是参考.这里做一个自己学习的记录. dot 语法介绍 部分图形属性介绍 示例 ...
- nyoj 457-大小写互换
457-大小写互换 内存限制:64MB 时间限制:1000ms 特判: No 通过数:18 提交数:21 难度:0 题目描述: 现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求 ...
- 力扣(LeetCode)平方数之和 个人题解
给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c. 示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2: 输入: 3 ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(10)- KBOOT特性(可靠升级)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT之可靠升级(Reliable Update)特性. 所谓可靠升级机制,即在更新Applica ...
- 在lldb调试中调用c++函数 - 如何使用QuartzCore里面的日志消息
承接上一篇,上一篇讲到可以在lldb调试中调用QuartzCore.framework里的CA::Render::Object::show方法来是观察CA::Render模块内的类的信息,但是在lld ...
- nginx支持wss配置
nginx证书 nginx.conf配置