水平二维矩阵变换(比例)-JAVASCRIPT
我有一个2d矩阵,如下例所示:水平二维矩阵变换(比例)-JAVASCRIPT,javascript,arrays,math,matrix,scaling,Javascript,Arrays,Math,Matrix,Scaling,我有一个2d矩阵,如下例所示: 00000000000000000000000000000000000000000000000000 00110000011000111111000110000000110000001111100000 00110000011000110000000110000000110000010000010000 00110000011000110000000110000000110000010000010000 001111111110001111110001100000
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矩阵开始,还是多个变换应该能够相互作用?