我正在使用three.js的最后一个版本,并且获得了带有渐变颜色的2D网格的场景。颜色取决于分配给每个顶点的值。我想通过点击鼠标点击它(通过获取颜色,并为我的值计算一些数字)来获得我渐变中每个点的值。使用three.js获取点击网格上的像素的颜色值
我试图使用这样的系统,因为它在这里工作:http://jsbin.com/wepuca/2/edit?html,js,output
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
function echoColor(e){
var imgData = ctx.getImageData(e.pageX, e.pageX, 1, 1);
red = imgData.data[0];
green = imgData.data[1];
blue = imgData.data[2];
alpha = imgData.data[3];
console.log(red + " " + green + " " + blue + " " + alpha);
}
我的问题是,这种技术被用于从画布,显示图像的时候,而不是一个网格中获取数据。当我试图在我的网格上使用它时,出现了以下错误:
“TypeError:ctx为null”或“imageData不是函数”(取决于我如何声明画布和上下文)。
因为我如果这种方法可以与网格使用没找到,我在这里问,如果有可能与否,不是如何去做更多。
在此先感谢
相似问题:http://stackoverflow.com/questions/33433305/threejs-how-to-pick-the-intersection-point-color-of-an-object – Brakebein