Cesium中entity材料纹理类封装

1.随机颜色

2.固定颜色

3.图片纹理 

4.棋盘纹理

5.条纹纹理

6.网格纹理

7.边缘发光纹理

8.轮廓线条纹理

import * as Cesium from "cesium";
/**
 * entity材料纹理类
 */
class Material {
  /**
   * cesium颜色对象
   */
  static newColor = Cesium.Color;
  /**
   *获取随机颜色
   * @param {Number} value -透明度(0-1)
   * @return {Cesium.Color} -返回随机颜色
   */
  randomColor(value) {
    return Cesium.Color.fromRandom().withAlpha(value);
  }
  /**
   *获取固定颜色
   * @param {Cesium.Color} color -指定的颜色
   * @param {Number} value -透明度(0-1)
   * @return {Cesium.Color} -返回指定颜色
   */
  defineColor(color, value) {
    return color.withAlpha(value);
  }
  /**
   *获取图片纹理
   * @param {String} img -图片路径
   * @param {Cesium.Color} bgColor -指定的背景颜色
   * @param {Array} array -横竖图片排列重复次数
   * @return {Cesium.ImageMaterialProperty} -返回图片纹理
   */
  imageMaterial(img, bgColor, array) {
    return new Cesium.ImageMaterialProperty({
      image: img,
      color: bgColor,
      repeat: new Cesium.Cartesian2(...array),
    });
  }
  /**
   *获取棋盘纹理
   * @param {Cesium.Color} evenColor -颜色1
   * @param {Cesium.Color} oddColor -颜色2
   * @param {Array} array -横竖棋盘排列重复次数
   * @return {Cesium.CheckerboardMaterialProperty} -返回棋盘纹理
   */
  checkerBoardMaterial(evenColor, oddColor, array) {
    return new Cesium.CheckerboardMaterialProperty({
      evenColor,
      oddColor,
      repeat: new Cesium.Cartesian2(...array),
    });
  }
  /**
   *获取条纹纹理
   * @param {Cesium.Color} evenColor -条纹颜色1
   * @param {Cesium.Color} oddColor -条纹颜色2
   * @param {Number} repeat -条纹重复次数
   * @param {Number} offset -偏移量
   * @param {Boolean} orientation -条纹放置方向,true:水平,false:垂直,默认水平放置
   * @return {Cesium.StripeMaterialProperty} -返回条纹纹理
   */
  StripeMaterial(evenColor, oddColor, repeat, offset, orientation = true) {
    let ori;
    if (orientation) {
      ori = Cesium.StripeOrientation.VERTICAL;
    } else {
      ori = Cesium.StripeOrientation.HORIZONTAL;
    }
    return new Cesium.StripeMaterialProperty({
      evenColor,
      oddColor,
      repeat,
      offset,
      orientation: ori,
    });
  }
  /**
   *获取网格纹理
   * @param {Cesium.Color} color - 网格颜色
   * @param {Number} cellAlpha -单元格透明度(0-1)
   * @param {Array} lineCount -行列重复个数
   * @param {Array} lineThickness -横线竖线宽度大小
   * @param {Number} ineOffset -网格线偏移量
   * @return {Cesium.GridMaterialProperty} -返回网格纹理
   */
  GridMaterial(color, cellAlpha, lineCount, lineThickness, ineOffset) {
    return new Cesium.GridMaterialProperty({
      color,
      cellAlpha,
      lineCount: new Cesium.Cartesian2(...lineCount),
      lineThickness: new Cesium.Cartesian2(...lineThickness),
      ineOffset,
    });
  }
  /**
   *边缘发光线条
   * @param {Cesium.Color} color - 线条边缘颜色
   * @param {Number} glowPower -发光强度,以总线宽的百分比表示
   * @return {Cesium.PolylineGlowMaterialProperty} -返回边缘发光线条
   */
  polylineGlow(color, glowPower) {
    return new Cesium.PolylineGlowMaterialProperty({
      glowPower,
      color,
    });
  }
  /**
   * 轮廓线条
   * @param {Cesium.Color} color - 线条颜色
   * @param {Cesium.Color} outlineColor - 线条轮廓颜色
   * @param {Number} outlineWidth -轮廓宽度,单位:像素
   * @return {Cesium.PolylineOutlineMaterialProperty} -返回轮廓线条
   */
  polylineOutline(color, outlineColor, outlineWidth) {
    return new Cesium.PolylineOutlineMaterialProperty({
      color,
      outlineWidth,
      outlineColor,
    });
  }
}
export default Material;

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不要随地大便

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

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

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

打赏作者

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

抵扣说明:

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

余额充值