我的项目中有一个小问题,获得十六进制颜色。我有简单的颜色变量:
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})具有未定义的参数。我该如何解决这个问题?
答案 0 :(得分: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),
}