相关疑难解决方法(0)

在three.js中更改立方体的颜色

我正在尝试根据变量更改多维数据集的颜色.我创建了两个立方体,我想根据它们之间的距离改变颜色.

立方体的创建方式如下:

geometry = new THREE.CubeGeometry( 50, 50, 50 );
material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
cube = new THREE.Mesh( geometry, material );
scene.add( cube );
Run Code Online (Sandbox Code Playgroud)

现在我尝试过这样的事情:

if(distance > 20)
{
cube.material.color = 0xffffff;
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我查看了示例,但找不到合适的内容.

colors three.js

25
推荐指数
3
解决办法
4万
查看次数

将立方体的面绘制为一个整体,而不是构成该面的三角形-three.js

尝试用不同的颜色绘制每个立方体面时,我发现了一个螺纹,提出了一种实现此目的的方法:

var geometry = new THREE.BoxGeometry(5, 5, 5);
for (var i = 0; i < geometry.faces.length; i++) {
    geometry.faces[i].color.setHex(Math.random() * 0xffffff);
}

var material = new THREE.MeshBasicMaterial({
    color: 0xffffff,
    vertexColors: THREE.FaceColors
});
Run Code Online (Sandbox Code Playgroud)

但是使用three.js r86,我得到以下结果:

LeCube画三角形

得到了组成每个面孔的三角形,分别绘制。

为了达到理想的效果,我对上面的代码进行了以下修改:

var geometry = new THREE.BoxGeometry(5, 5, 5);
for ( var i = 0; i < geometry.faces.length; i += 2 ) {
    var faceColor = Math.random() * 0xffffff;
    geometry.faces[i].color.setHex(faceColor);
    geometry.faces[i+1].color.setHex(faceColor);
}

var material = new THREE.MeshBasicMaterial({
    color: 0xffffff,
    vertexColors: THREE.FaceColors
});
Run Code Online (Sandbox Code Playgroud)

LeCube整体具有彩绘面孔

但这一切似乎有点奏效了!

javascript mesh three.js face

2
推荐指数
1
解决办法
845
查看次数

标签 统计

three.js ×2

colors ×1

face ×1

javascript ×1

mesh ×1