我在获得十六进制颜色的项目中遇到了小问题。我有简单的颜色变量:
var colors = {
"C":0x000000,
"H":0xffffff,
"O":0xff0000,
...
}
我想在下面的函数中按键获取我的颜色:(它是用打字稿写的)
getAtomColor(element: string) :number{
for (var key in colors) {
if (element == key) {
return colors[key];
}
}
}
问题是得到原子颜色(在参数 clr 下面),它是整数形式和函数在三.js三。MeshLambertMaterial({color:clr}) 具有未定义的参数。如何解决此问题?
您应该能够调整对象以保存十六进制字符串 - 这将保证您返回"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),
}