cesium地形裁剪与模型裁剪的使用
首先需要建立裁剪面,裁剪面可以是面也可以是面构成的体。可以根据你要裁剪的形状,自己组合ClippingPlaneCollection。
其次将裁剪面作用到地形或者模型或者地球上,可以达到裁切模型,裁切地形,给地球挖洞,或者给地面的山体挖洞等。
let clippingPlanes = new Cesium.ClippingPlaneCollection({
modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(position),
planes: [
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.5, 0.0, 0.5), distance),
new Cesium.ClippingPlane(new Cesium.Cartesian3(-0.5, 0.0, 0.5), distance),
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 0.0, -1.0), distance)
],
unionClippingRegions: false
});
modelMatrix为该次裁剪选择一个中心点,设置其矩阵
planes为ClippingPlane的集合,
ClippingPlane的第一个参数为裁切面的法线方向,distance为法线方向上到原点的距离
unionClippingRegions 为true则裁剪planes区域外侧的,为false则裁剪区域内部的数据,如果是挖洞的话,则需要为false
如果想给地表挖个洞,需要先选一个点,然后在该点的前后左后四个方向上设置法线与距离,
然后把 unionClippingRegions: false 就可以把地表挖一个洞,挖洞是往外挖 原点在法线相反的方向所以 distance为负值
如果 distance为正值,unionClippingRegions: true 则地表就只剩这个洞了,外面的都被裁剪掉了。
第一种 地形的裁剪: 给某山体挖一个三角形洞
let thisBLH = {B:103,L:90,H:227};
let position = cesiumCommon.lonlat2Cartesian([thisBLH.L, thisBLH.B], thisBLH.H);
let distance = -1000;
let clippingPlanes = new Cesium.ClippingPlaneCollection({
modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(position),
planes: [
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.5, 0.0, 0.5), distance),
new Cesium.ClippingPlane(new Cesium.Cartesian3(-0.5, 0.0, 0.5), distance),
new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 0.0, -1.0), distance)
],
unionClippingRegions: false
});
this.viewer.scene.globe.clippingPlanes = clippingPlanes;
第二种 模型的裁剪:
var entity = viewer.entities.add({
position : position,
model : {
uri : '../../../../Apps/SampleData/models/CesiumAir/Cesium_Air.glb',
scale : 8,
minimumPixelSize : 100.0,
clippingPlanes : clippingPlanes // 设置模型的裁切平面
}
});
cesium地形裁剪与模型裁剪的使用相关推荐
- 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践
可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升.比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙. 而对移动平台来 ...
- 模型裁剪--Rethinking the Value of Network Pruning
Rethinking the Value of Network Pruning https://github.com/Eric-mingjie/rethinking-network-pruning 网 ...
- AI实战:深度学习模型压缩:模型裁剪——Pruning with Keras
前言 上一篇文章 AI实战:深度学习模型压缩:模型裁剪--Pruning with Tensorflow 介绍了使用Tensorflow裁剪模型的方法,本文继续介绍使用Keras裁剪模型的方法及源码分 ...
- ios 图片居中裁剪_IOS图片裁剪和小图看大图动画
IOS的UIImagePickerController可以让用户通过相机或者相册获取想要的图片,并且通过设置allowsEditing属性允许用户在选择了图片以后对图片进行裁剪.不过在某些时候会出现正 ...
- cesium加载 gltf模型
cesium加载 gltf模型 首先自己配置一个iis环境 :http://www.xitongcheng.com/jiaocheng/win10_article_60912.html,其他环境 比如 ...
- cesium加载批量模型
cesium加载批量模型 class CreateModel {constructor() { }// 添加单条数据addEntity(item) {// 删除实体// viewer.entities ...
- Android 针对华为手机调用裁剪出现圆形裁剪框的处理
Android 针对华为手机调用裁剪出现圆形裁剪框的处理 if (Build.MANUFACTURER.equals("HUAWEI")) {intent.putExtra(&qu ...
- Cesium中添加entitie模型,实现贴地。
1.Cesium中添加entitie模型,实现贴地. 2. 添加模型 const createModel = (url) => {const entity = viewer.entities.a ...
- VTK笔记-裁剪分割-几何裁剪-vtkClipPolyData
什么是裁剪分割 VTK加载二维数据和三维数据,我们通常观察到的是三视图图像,或者是vtkImageReslice获取到的转换矩阵对应的观察点三视图或者是斜平面图像,想要看到图像中间部分的渲染结果就 ...
最新文章
- Fedora Core 4配置本地yum源
- Springboot中mongodb的使用
- Django框架(1.Django框架的简介)
- 如何debug 右键菜单执行逻辑 - Test BSP Application page implementation
- 在centOS7.2里安装virtualenv和flask
- Nginx进程间通信机制
- The server of Apache (四)——配置防盗链和隐藏版本信息
- 博弈论(取石子专题)
- iPhoneiPad DFU及恢复模式刷机、降级教程
- PSCAD中的频变参数线路模型(Frequency-Dependent (Phase) Line Model)
- 石墨烯和富勒烯的区别?-供应石墨烯微片粉末/单层的多孔石墨烯前驱物/三维石墨烯网络结构复合材料块体定制
- js判断对象上是否含有某个属性
- 华为云notebook在线解压压缩包问题
- MATLAB基于形态学的目标检测(一)简单图形统计
- 华为p4支持鸿蒙功能吗_华为鸿蒙系统支持机型介绍
- 互联网产品经理的月薪是多少?治好奇!
- java 翻译 go语言_[翻译]Go语言1.4版本将支持面向Android开发
- WinRar去除弹窗广告的学习和研究
- 软件项目经理在面试的时候会问到哪些问题?
- FastDFS 系统架构和功能原理