我有一个旋转的矩形(在本例中是45度),看起来像这样:
我知道X来自矩形的左上角(如果它没有旋转,在本例中是图片顶部的点)。Y也是从左上角开始。我有宽度、高度和边界框。我想找出这个矩形的其他点是什么。左上角(严格来说,本例中的X位置),右上角,右下角和左下角。我试图使用变换矩阵,但我似乎无法理解它。
如何找到这个矩形的其他点?从技术上讲,我使用的是JavaScript,但是任何语言都应该能够处理这个问题。
发布于 2019-06-27 07:27:38
为其他任何人寻找这个。下面是一个这样做的函数。
x、y、高度和宽度如下图所示。ang是x,y点和Y轴之间的角度。如果想要x,y点和X轴之间的值,只需在将其发送到函数之前执行以下操作:ang = 90 - ang
isDeg简单地说就是你是以弧度还是度来发送ang。
function getRectFourPoints(x,y, width, height, ang, isDeg = false) {
if(isDeg) ang = ang * (Math.PI / 180)
const points = {first: {x,y}}
const sinAng = Math.sin(ang)
const cosAng = Math.cos(ang)
let upDiff = sinAng * width
let sideDiff = cosAng * width
const sec = {x: x + sideDiff, y: y + upDiff}
points.sec = sec
upDiff = cosAng * height
sideDiff = sinAng * height
points.third = {x: x + sideDiff, y: y - upDiff}
const fourth = {x: sec.x + sideDiff, y: sec.y - upDiff}
points.fourth = fourth
return points
}
发布于 2016-07-10 23:32:35
旋转矩阵可以帮助基于其先前的位置计算其当前位置。如果顺时针旋转,则2D旋转矩阵如下所示:
这使得
https://stackoverflow.com/questions/38297082
复制相似问题