cesium添加灯光扫描

var viewer=ysc.createNormalCesium("cesiumContainer",{
    globalImagery:"天地图"//天地图影像
});

var data={
     circle:[0.003,117,35,30]// 第一个参数 0.003表示半径,第二个第三个分别表示底座圆心的坐标,第四个表示切割成多少个点。组成多少个面。越多会越卡 尽量实际项目不影响效果,越少越好。
    ,observer:[117.01,35.01,500]//观察点,也就是光源点
    ,positionList:[ //我们这里就不加高度了。不然太麻烦了 //以圆心为参考做偏移值获取,圆心坐标 [117,35],简单点画个正方形吧 如果画圆的画,也可以多取点
        [117,35],//初始位置
        [117.01,35], //下一个点
        [117.01,35.01],
        [117,35.01],
        [117,35],//回来
    ]
    ,material:Cesium.Color.RED.withAlpha(0.5)//光的材质
    ,number:100//数字越小速度越快
};
var entityCList= ysc.createLightScan(viewer,data); //返回的是所有面的数组 如果需要清除的画,就通过此清除

//清除
// for(var i=0;i< entityCList.length;i++){
//     viewer.entities.remove(entityCList[i]);
// }

//**** 下面是额外的 可加可不加***//
//立方体柱子 表示站台
viewer.entities.add({
    position : Cesium.Cartesian3.fromDegrees(data.observer[0],data.observer[1],data.observer[2]/2),
    name:"",
    box : {
        dimensions : new Cesium.Cartesian3(100.0, 100.0,data.observer[2]),
        outline : true,
        outlineColor : Cesium.Color.WHITE,
        outlineWidth : 2,
        material : Cesium.Color.fromRandom({alpha : 0.5})
    }
});
//发蓝光的线
var glowingLine = viewer.entities.add({
    name : 'Glowing blue line on the surface',
    polyline : {
        positions : Cesium.Cartesian3.fromDegreesArray(
            [
                data.positionList[0][0],data.positionList[0][1],
                data.positionList[1][0],data.positionList[1][1],
                data.positionList[2][0],data.positionList[2][1],
                data.positionList[3][0],data.positionList[3][1],
                data.positionList[4][0],data.positionList[4][1],
            ]),
        width : 10,
        material : new Cesium.PolylineGlowMaterialProperty({ //发光线
            glowPower : 0.2,
            color : Cesium.Color.BLUE
        })
    }
});
viewer.zoomTo(viewer.entities)

跃焱邵隼

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Cesium是一个开源的JavaScript库,用于创建3D地球和地球上的场景。可以使用Cesium绘制立体扫描,具体步骤如下: 1. 安装Cesium库并创建一个Cesium场景。 2. 使用Cesium的Entity API创建一个立方体来表示扫描区域。 3. 使用Cesium的Polyline API创建一条线表示扫描路径。 4. 将立方体和线添加到场景中。 5. 使用Cesium的Animation API和SampledPositionProperty API在指定时间内将立方体沿着路径移动,以模拟扫描过程。 示例代码如下: ```javascript // 创建Cesium场景 var viewer = new Cesium.Viewer('cesiumContainer'); // 创建立方体 var cube = viewer.entities.add({ name: 'Cube', position: Cesium.Cartesian3.fromDegrees(-74.0707383, 40.7117244, 0), box: { dimensions: new Cesium.Cartesian3(1000.0, 1000.0, 1000.0), material: Cesium.Color.RED.withAlpha(0.5) } }); // 创建路径 var path = viewer.entities.add({ name: 'Path', polyline: { positions: Cesium.Cartesian3.fromDegreesArray([ -74.0707383, 40.7117244, -74.0711283, 40.7120244, -74.0715283, 40.7123244, -74.0719283, 40.7126244, -74.0723283, 40.7129244 ]), width: 5, material: Cesium.Color.BLUE } }); // 创建SampledPositionProperty,表示立方体的位置随时间变化的属性 var position = new Cesium.SampledPositionProperty(); position.addSample(Cesium.JulianDate.now(), cube.position.getValue()); position.addSample(Cesium.JulianDate.addSeconds(Cesium.JulianDate.now(), 5, new Cesium.JulianDate()), Cesium.Cartesian3.fromDegrees(-74.0723283, 40.7129244, 0)); // 使用Animation API,在5秒内将立方体沿着路径移动 viewer.clock.onTick.addEventListener(function(clock) { position.getValue(clock.currentTime, cube.position); }); viewer.clock.startTime = Cesium.JulianDate.now(); viewer.clock.stopTime = Cesium.JulianDate.addSeconds(viewer.clock.startTime, 5, new Cesium.JulianDate()); viewer.clock.currentTime = viewer.clock.startTime; viewer.clock.multiplier = 1; viewer.clock.shouldAnimate = true; ``` 这段代码将在场景中创建一个立方体和一条路径,并在5秒内将立方体沿着路径移动。可以根据需要调整立方体和路径的位置、大小和样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

跃焱邵隼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值