javascript - JavaScript 中的三个 3d 对象从字符串转换为十六进制代码 (0x000000)?

标签 javascript three.js webgl

我正在尝试一次写入大量对象,并且希望颜色褪色。但是,在使用 .toString(16) 创建字符串后,它不会在代码中读取 new THREE.MeshBasicMaterial({ color: '0x' + color,wireframe :假,不透明度:0.5 });

这是当前的代码:

    for (var i = 0; i < 10; i++) {
        for (var j = 0; j < 10; j++) {
            for (var k = 0; k < 10; k++) {
                geometry = new THREE.CubeGeometry(50, 50, 50);
                colorr = 254 / 10 * k;
                colorr = Math.round(colorr);
                colorr = colorr.toString(16);
                colorg = 254 / 10 * k;
                colorg = Math.round(colorg);
                colorg = colorg.toString(16);
                colorb = 254 / 10 * k;
                colorb = Math.round(colorb);
                colorb = colorb.toString(16);
                color = '0x' + colorr + colorg + colorb;
                material[i] = new THREE.MeshBasicMaterial({ color: color, wireframe: false, opacity: 0.5 });


                mesh[i] = new THREE.Mesh(geometry, material[i]);
                mesh[i].position.x = -500 + (k * 100);
                mesh[i].position.y = -500 + (j * 100);
                mesh[i].position.z = -500 + (i * 100);
                scene.add(mesh[i]);
                objects.push(mesh[i]);

            }
        }
    }

但是,它只会产生灰黑色。

最佳答案

> 0xe5e5e5

15066597

> parseInt('0xe5e5e5', 16)

15066597

长话短说,“0x”只是一种以十六进制书写数字的便捷方式,以便它们看起来像 CSS 颜色,但 JavaScript 会将这种方式书写的数字视为普通(十进制)数字,Three.js 也是如此。给定适当的基数,parseInt() 函数将正确地将字符串从十六进制转换为十进制,因此您可以将颜色构造为十六进制字符串并将其转换为数字。

关于javascript - JavaScript 中的三个 3d 对象从字符串转换为十六进制代码 (0x000000)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326479/

相关文章:

javascript - 在 JavaScript/jQuery 中迭代网页元素的最佳方式

javascript - 未捕获的 ReferenceError : Type is not defined in sp. runtime.js

Javascript 移动图像

javascript - 三个J和处理碰撞

javascript - 抑制 Google Chrome 中的 "Rats! WebGL hit a snag."错误栏

javascript - Nodejs 抓取内容未正确解码(奇怪的问号字符)

javascript - three.js:从平面正交向量到平面旋转矩阵

javascript - 带有 threejs 的立方体凸起的球体

three.js - 在 3js 中为多维数据集添加单击事件监听器

arrays - WebGL:将统一数组传递给着色器