threejs中随机生成颜色

这里封装了两个方法:getRandomColor,random, 直接调用getRandomColor方法即可;

getRandomColor() {
      let c1 = this.random(0, 255);
      let c2 = this.random(0, 255);
      let c3 = this.random(0, 255);
      return new this.$three.Color("rgb(" + c1 + ", " + c2 + ", " + c3 + ")");
    },
  /**
   * 产生随机整数,包含下限值,但不包括上限值
   * @param {Number} lower 下限
   * @param {Number} upper 上限
   * @return {Number} 返回在下限到上限之间的一个随机整数
   */
  random(lower, upper) {
    return Math.floor(Math.random() * (upper - lower)) + lower;
  },

在页面中通过getObjectByName 获取Mesh后,通过一下方式可以设置材质的颜色:

let obj2 = obj.getObjectByName(this.radio1);
obj2.material.color = this.getRandomColor();

备注:this.$three 是将three.js直接挂载到了vue上,所以这里直接这样写了;

你可能感兴趣的:(前端)