Javascript 这个矩阵不工作吗?

Javascript 这个矩阵不工作吗?,javascript,google-chrome,Javascript,Google Chrome,当我记录我的this.kernel时,值不会改变。但我认为他们应该。 按照文件规定,它应该有效 this.kernel=[]; this.kernelSize=16.0; var max=1.0; var min=-1.0; var a=Math.random(); for(var i=0;i

当我记录我的this.kernel时,值不会改变。但我认为他们应该。 按照文件规定,它应该有效

this.kernel=[];
this.kernelSize=16.0;
var max=1.0;
var min=-1.0;
var a=Math.random();
for(var i=0;i
只要检查一下API,您就面临着一个相当基本的问题,比如x=f(x)

normalize()返回输入内核的修改版本(见下文)

照办

this.kernel = vec3.normalize([this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 + 2]], [this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 +2]]);
this.kernel = vec3.multiply([this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 + 2]], a, 1.0);

将函数结果分配回这个.kernel?我想取最后三个创建的值(代表x、y、z),进行规格化,然后缩放它们。
333 /**
334  * Normalize a vec3
335  *
336  * @param {vec3} out the receiving vector
337  * @param {vec3} a vector to normalize
338  * @returns {vec3} out
339  */
340 vec3.normalize = function(out, a) {
341     var x = a[0],
342         y = a[1],
343         z = a[2];
344     var len = x*x + y*y + z*z;
345     if (len > 0) {
346         //TODO: evaluate use of glm_invsqrt here?
347         len = 1 / Math.sqrt(len);
348         out[0] = a[0] * len;
349         out[1] = a[1] * len;
350         out[2] = a[2] * len;
351     }
352     return out;
353 };
this.kernel = vec3.normalize([this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 + 2]], [this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 +2]]);
this.kernel = vec3.multiply([this.kernel[i * 3], this.kernel[i * 3 + 1], this.kernel[i * 3 + 2]], a, 1.0);