получение значения цвета пикселя из сцены. js - PullRequest
0 голосов
/ 01 мая 2020

поэтому я пытаюсь получить цвет изображения, которое я добавил как текстуру, и отобразить значение цвета, однако все коды, которые я использовал, выводят значения, которые не соответствуют тому, что я хочу, и я не знаю причину этого, последний код, который я попробовал, это тот, который загружен на мой mrdoob, он отображает цвет, но не то значение, которое я ожидаю здесь, это изображение моей веб-страницы с включенной сценой, я хотел бы получить значение цвета во главе робот

вот где я получил свой код https://github.com/mrdoob/three.js/issues/758

function colourSensorFunctionImage3() {
  var imagedata = getImageData( imgTexture.image );
  document.addEventListener("mousemove", onDocumentMouseMove, false);
  toScreenPosition(cube2, camera);
var x = pixelX.toFixed(); 
var y = pixelY.toFixed();
console.log( x ,y)
//var color = getPixel( imagedata, x, y);
var color = getPixel( imagedata, -1214,  299 );


//console.log ( pixelX.toFixed(), pixelY.toFixed())

document.getElementById("Colour").innerHTML = color.r + " " + color.g + " " + color.b;
}

function getImageData( image ) {

  var canvas = document.createElement( 'canvas' );
  canvas.width = image.width;
  canvas.height = image.height;

  var context = canvas.getContext( '2d' );
  context.drawImage( image, 0, 0 );

  return context.getImageData( 0, 0, image.width, image.height );

}

function getPixel( imagedata, x, y ) {

  var position = ( x + imagedata.width * y ) * 4, data = imagedata.data;
 // console.log(position, data, data[position], data[position+1], data[position+2])
  return { r: data[ position ], g: data[ position + 1 ], b: data[ position + 2 ], a: data[ position + 3 ] };

}

enter image description here

...