我有一个网格,我创建和颜色它根据用户的要求。我正在使用HTML5颜色选择器。我访问颜色选择器的颜色值如下: var colorChosen = $("#colorAgent").val() //它给出的值为:"#ff0080“;
当我使用下面的代码制作网格时,我正在删除#使它成为=> colorChosen = "0xff0080“的十六进制代码。
var材料新THREE.MeshBasicMaterial({颜色:色:color,wireframe_linewidth: 80,vertexColors:THREE.FaceColors,线框:假,不透明度: 0.8,透明:真,边: THREE.DoubleSide,可见:真});
它不应用颜色,但是如果我从colorChosen变量(即colorChosen = 0xff00)中删除引号,它就会应用颜色。
请告诉我如何删除引号,以便按所选择的颜色给我的网格着色。
谢谢
发布于 2013-07-04 12:00:45
看看Color.js
。有许多实用程序可以使用。
例如,在创建材料之后,可以将颜色重置如下:
material.color.setStyle( "#ff0080" );
您也可以在第一次使用此模式时正确设置颜色:
var color = new THREE.Color( "#ff0080" );
var hex = color.getHex();
var material = new THREE.MeshBasicMaterial( { color: hex } );
three.js r.58号
发布于 2013-07-05 09:06:09
它不带引号的原因是color
属性应该是整数,而不是字符串。完成十六进制代码后,可以将其传递给parseInt(),后者返回等效整数:
colorChosen = 0xff0080;
var material new THREE.MeshBasicMaterial({ color: parseInt(colorChosen) , wireframe_linewidth: 80,vertexColors:THREE.FaceColors, wireframe: false,opacity: 0.8,transparent: true, side: THREE.DoubleSide, visible: true });
发布于 2017-06-16 09:27:19
你也可以给出这样的网格颜色,
var material = new THREE.MeshLambertMaterial({color: 0xffffff, vertexColors: THREE.FaceColors, shading: THREE.FlatShading});
https://stackoverflow.com/questions/17463178
复制相似问题