Javascript 这个矩阵不工作吗?
当我记录我的this.kernel时,值不会改变。但我认为他们应该。 按照文件规定,它应该有效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.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);