zoukankan      html  css  js  c++  java
  • 【GIS】Cesium-特殊形状

    var viewer = new Cesium.Viewer("cesiumContainer");
    
    function computeCircle(radius) {
      var positions = [];
      for (var i = 0; i < 360; i++) {
        var radians = Cesium.Math.toRadians(i);
        positions.push(
          new Cesium.Cartesian2(
            radius * Math.cos(radians),
            radius * Math.sin(radians)
          )
        );
      }
      return positions;
    }
    
    function computeStar(arms, rOuter, rInner) {
      var angle = Math.PI / arms;
      var length = 2 * arms;
      var positions = new Array(length);
      for (var i = 0; i < length; i++) {
        var r = i % 2 === 0 ? rOuter : rInner;
        positions[i] = new Cesium.Cartesian2(
          Math.cos(i * angle) * r,
          Math.sin(i * angle) * r
        );
      }
      return positions;
    }
    
    var redTube = viewer.entities.add({
      name: "Red tube with rounded corners",
      polylineVolume: {
        positions: Cesium.Cartesian3.fromDegreesArray([
          -85.0,
          32.0,
          -85.0,
          36.0,
          -89.0,
          36.0,
        ]),
        shape: computeCircle(60000.0),
        material: Cesium.Color.RED,
      },
    });
    
    var greenBox = viewer.entities.add({
      name: "Green box with beveled corners and outline",
      polylineVolume: {
        positions: Cesium.Cartesian3.fromDegreesArrayHeights([
          -90.0,
          32.0,
          0.0,
          -90.0,
          36.0,
          100000.0,
          -94.0,
          36.0,
          0.0,
        ]),
        shape: [
          new Cesium.Cartesian2(-50000, -50000),
          new Cesium.Cartesian2(50000, -50000),
          new Cesium.Cartesian2(50000, 50000),
          new Cesium.Cartesian2(-50000, 50000),
        ],
        cornerType: Cesium.CornerType.BEVELED,
        material: Cesium.Color.GREEN.withAlpha(0.5),
        outline: true,
        outlineColor: Cesium.Color.BLACK,
      },
    });
    
    var blueStar = viewer.entities.add({
      name: "Blue star with mitered corners and outline",
      polylineVolume: {
        positions: Cesium.Cartesian3.fromDegreesArrayHeights([
          -95.0,
          32.0,
          0.0,
          -95.0,
          36.0,
          100000.0,
          -99.0,
          36.0,
          200000.0,
        ]),
        shape: computeStar(7, 70000, 50000),
        cornerType: Cesium.CornerType.MITERED,
        material: Cesium.Color.BLUE,
      },
    });
    
    viewer.zoomTo(viewer.entities);
  • 相关阅读:
    jni ndk 入门
    Activity 四种启动模式
    广播接收者 BroadcastReceiver
    android 焦点 ListView 点击事件获取失败
    android 动画效果
    JAVA 配置
    python 1:列表和字典
    poj1595 水题
    hdu 1181 深搜
    poj3264 划分树
  • 原文地址:https://www.cnblogs.com/defineconst/p/13537619.html
Copyright © 2011-2022 走看看