javascript - 基于旋转填充二维数组(矩阵)

标签 javascript arrays matrix rotation

我有一个二维矩阵 我必须对 Angular 填充它,就像液体一样。

-45 到 45 度之间任意旋转。 (例如 32 度)

部分案例:

0度

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1

-45度

0 0 0 0 0 0
1 0 0 0 0 0
1 1 0 0 0 0
1 1 1 1 0 0
1 1 1 1 1 0
1 1 1 1 1 1

45度

0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 1
0 0 1 1 1 1
0 1 1 1 1 1
1 1 1 1 1 1

最佳答案

这对于发布的示例来说并不十分完美,但已经非常接近了。我将阵列做得更大一些,以获得更好的倾斜分辨率。只需使用 sizedeg 变量即可获得所需的输出。

var arr = [];
var size = 10;
var deg = -45;

for(var i = 0; i < size; i++){
    arr.push([]);
    for(var j = 0; j < size; j++){
        arr[i].push(0);
    }
}

var leftFill = .5 - (deg / 90);
var rightFill = .5 + (deg / 90);
var distanceToCover = rightFill - leftFill;

for(var i = 0; i < arr.length; i++){
    for(var j = 0; j < arr[i].length; j++){
        var xHeight = (leftFill + ((j / (arr[i].length - 1)) * distanceToCover));
        var xPos = (arr.length - i) / size;
        if(xPos <= xHeight) arr[i][j] = 1; 
    }
}

for(var i = 0; i < arr.length; i++){
    var logStr = i + ': ';
    for(var j = 0; j < arr[i].length; j++){
        logStr += (arr[i][j] + ' ');
    }
    console.log(logStr);    
}

关于javascript - 基于旋转填充二维数组(矩阵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34732201/

相关文章:

php - 实时了解用户在我的站点中

arrays - 搜索哈希数组以查看给定哈希中的特定元素是否与 Ruby 中另一个数组中的任何字符串匹配

Python 获取矩阵中具有 na 值的邻居的平均值

arrays - 使用 R 将多个文件加载到矩阵中

javascript - 帮助理解 jQuery 按钮启用/禁用代码

javascript - 如何以文本形式在para或div中显示ajax响应?

javascript - 为什么 javascript 同时具有 null 和 undefined ?

javascript - 获取数组的值并为每个值创建数组以进一步存储数据javascript

php - count(array)返回1,但数组为空

python - 如何在numpy中创建数组矩阵?