Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
水平二维矩阵变换(比例)-JAVASCRIPT_Javascript_Arrays_Math_Matrix_Scaling - Fatal编程技术网

水平二维矩阵变换(比例)-JAVASCRIPT

水平二维矩阵变换(比例)-JAVASCRIPT,javascript,arrays,math,matrix,scaling,Javascript,Arrays,Math,Matrix,Scaling,我有一个2d矩阵,如下例所示: 00000000000000000000000000000000000000000000000000 00110000011000111111000110000000110000001111100000 00110000011000110000000110000000110000010000010000 00110000011000110000000110000000110000010000010000 001111111110001111110001100000

我有一个2d矩阵,如下例所示:

00000000000000000000000000000000000000000000000000
00110000011000111111000110000000110000001111100000
00110000011000110000000110000000110000010000010000
00110000011000110000000110000000110000010000010000
00111111111000111111000110000000110000010000010000
00110000011000110000000110000000110000010000010000
00110000011000110000000110000000110000010000010000
00110000011000111111000111111000111111001111100000
00000000000000000000000000000000000000000000000000
我想通过用一个特定的因子水平缩放矩阵来变换这个矩阵(例如2.0或0.5,…),这样矩阵之后看起来像这样:

000000000000000000000000000000000000000000000000000000000000000000000000000000 ...
00111100000000000111100000011111111111111000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111111111111111111100000011111111111111000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011111111111111000000111111111111110000 ...
0000000000000000000000000000000000000000000000000000000000000000000000000000000 ...
var matrix = [
  '001000100001',
  '001111101100',
  '001111101100',
  '001000100001'
]


我的javascript“矩阵”-
数组
-如下所示:

000000000000000000000000000000000000000000000000000000000000000000000000000000 ...
00111100000000000111100000011111111111111000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111111111111111111100000011111111111111000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011110000000000000000111100000000000000 ...
00111100000000000111100000011111111111111000000111111111111110000 ...
0000000000000000000000000000000000000000000000000000000000000000000000000000000 ...
var matrix = [
  '001000100001',
  '001111101100',
  '001111101100',
  '001000100001'
]
var矩阵=[
'00000000000000000000000000000000000000000000000000',
'00110000011000111111000110000000110000001111100000',
'00110000011000110000000110000000110000010000010000',
'00110000011000110000000110000000110000010000010000',
'00111111111000111111000110000000110000010000010000',
'00110000011000110000000110000000110000010000010000',
'00110000011000110000000110000000110000010000010000',
'00110000011000111111000111111000111111001111100000',
'00000000000000000000000000000000000000000000000000']
Array.prototype.scale_水平=函数(系数){
var矩阵=此;
var new_matrix=new_matrix(matrix.length,矩阵[0]。长度*因子,0)

对于(var y=0;y您可以将其全部放在一个函数中:

function scaleHorizontal(matrix, factor) {
    var scaledMatrix = [];
    for(var i = 0; i < matrix.length; i++) {
        var row = '';
        for(var j = 0; j <= matrix[i].length - 1; j += (1 / factor)) {
            row += matrix[i][Math.round(j)];
        }
        scaledMatrix.push(row);
    }
    return scaledMatrix;
}

逻辑是“总是从两个00开始,然后将相同的数字块乘以因子”?非整数如何?错误?向上取整?向下取整?您总是从第一个2d矩阵开始,还是多个变换应该能够相互作用?