我正在使用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