【问题标题】:How can I get hex color in hexadecimal to three.js lambertmaterial function如何将十六进制的十六进制颜色转换为three.js lambertmaterial函数
【发布时间】:2013-11-15 22:28:54
【问题描述】:

我的项目中有一个小问题,即获取十六进制颜色。我有简单的颜色变量:

var colors = {
    "C":0x000000,
    "H":0xffffff,
    "O":0xff0000,
    ...
}

我想在下面的函数中按键获取我的颜色:(它是用打字稿写的)

getAtomColor(element: string) :number{
    for (var key in colors) {
        if (element == key) {
            return colors[key];
        }
    }
}

问题在于得到原子颜色(在参数 clr 下方),它是整数形式,并且在 three.js 中的函数 THREE.MeshLambertMaterial({color:clr}) 具有未定义的参数。我该如何解决这个问题?

【问题讨论】:

    标签: three.js typescript


    【解决方案1】:

    您应该能够调整您的对象以保存十六进制字符串 - 这将保证您返回 '0x000000' 而不是 0

    var colors = {
        'C': '0x000000',
        'H': '0xffffff',
        'O': '0xff0000',
    }
    

    否则,您可以将它们存储为 THREE.color 对象...

    var colors = {
        'C': new THREE.Color(0x000000),
        'H': new THREE.Color(0xffffff),
        'O': new THREE.Color(0xff0000),
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2012-05-01
      • 2017-10-30
      • 2012-07-25
      相关资源
      最近更新 更多