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应用,并在性能,精度,渲染质量以 ...
随机推荐
- nginx recv() failed (104: Connection reset by peer) while reading response header from upstream解决方法
首先说下 先看 按照ab 每秒请求的结果 看看 都有每秒能请求几个 如果并发量超出你请求的个数 会这样 所以一般图片和代码服务器最好分开 还有看看io瓶ding 和有没有延迟的PHP代码执行 0 先修 ...
- vue使用一些外部插件及样式的配置
一.配置全局css及js样式 1.首先将事先写好的css文件及js文件放在src文件目录下的assets文件下 2.在main.js文件输上图右边两个红色框的代码 二.配置全局jQuery及boots ...
- Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形
Zabbix-(三)监控主机CPU.磁盘.内存并创建监控图形 一.前言 前文中已经讲述了两种方式对Zabbix的搭建,本文将讲述如何在zaibbx上添加需要监控的主机,以及使用Zabbix自带模板和自 ...
- nyoj 69-数的长度 (log10(),计算数的位数)
69-数的长度 内存限制:64MB 时间限制:3000ms 特判: No 通过数:10 提交数:13 难度:1 题目描述: N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)····· ...
- nyoj 463-九九乘法表
463-九九乘法表 内存限制:64MB 时间限制:1000ms 特判: No 通过数:16 提交数:41 难度:1 题目描述: 小时候学过的九九乘法表也许将会扎根于我们一生的记忆,现在让我们重温那些温 ...
- 领扣(LeetCode)删除链表中的节点 个人题解
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 - ...
- SpringBoot学习(二)—— springboot快速整合spring security组件
Spring Security 简介 spring security的核心功能为认证(Authentication),授权(Authorization),即认证用户是否能访问该系统,和授权用户可以在系 ...
- Flex带Checkbox的Tree
想把Flex自带的Tree控件改成带有checkbox的样式. 原本以为同DataGrid一样,添加一个ItemRenderer就行,结果发现行不通. 进Tree控件的源码看了一下,发现Tree在自己 ...
- 程序员需要掌握的七种 Python 代码更易维护的武器
检查你的代码风格 PEP 8 是 Python 代码风格规范,它规定了类似行长度.缩进.多行表达式.变量命名约定等内容.尽管你的团队自身可能也会有稍微不同于 PEP 8 的代码风格规范,但任何代码风格 ...
- Linux(CentOS65)
首先下载VMware,然后下载CentOS镜像文件,VM的版本尽量高一点,因为软件一般都有向下兼容性,如果版本太低,可能匹配不了CentOS. 安装VMTools工具 主要用于虚拟主机显示优化与调整, ...