javascript - 如何围绕 mxn 矩阵旋转一组坐标?
问题描述
我有一个坐标,比如说{ x: 1, y: 2 }
和一个矩阵大小{ x: 5, y: 6 }
。我想将单个坐标围绕网格旋转 90 度(顺时针)。我可以通过运行旋转整个网格:
function rotate90(a){
// transpose from http://www.codesuck.com/2012/02/transpose-javascript-array-in-one-line.html
a = Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
// row reverse
for (i in a){
a[i] = a[i].reverse();
}
return a;
}
从以下位置获取网格:
[1][2][3][4]
[5][6][7][8]
[9][0][1][2]
[3][4][5][6]
至
[3][9][5][1]
[4][0][6][2]
[5][1][7][3]
[6][2][8][4]
我怎样才能对单个坐标做同样的事情?4 x 4 网格上的一些示例可能是:
0, 0 -> 0, 3
0, 3 -> 3, 3
3, 3 -> 3, 0
3, 0 -> 0, 0
1, 1 -> 1, 2
1, 2 -> 2, 2
2, 2 -> 2, 1
2, 1 -> 1, 1
解决方案
从 MxN 数组开始,(x,y) -> (y,Mx-1)
推荐阅读
- httpurlconnection - Http rest 客户端总是失败并出现 400 错误
- regex - 如何从正则表达式中排除特定字符串?
- python - javaldx 失败!警告:无法从 javaldx 读取路径
- apache-spark - 在 Pyspark 中将时间戳从 UTC 更改为给定格式
- c# - 我可以使用在其 setter 方法中引用自身的公共字段吗?
- javascript - 添加到主屏幕 React PWA
- node.js - NodeJS 无法从 jsonwebtoken 获取错误消息
- python - 计算最高效时间的每次提交百分比
- python - 选择 Exploded Criteria Python Dataframe 的前 X 个
- django - 使用 docker 部署