Javascript 围绕点旋转矩形

Javascript 围绕点旋转矩形,javascript,2d,trigonometry,Javascript,2d,Trigonometry,如何使4个点围绕指针旋转一定角度以形成矩形?我可以围绕一个点旋转一个点,但我不能偏移它以生成一个不扭曲的矩形。如果你可以围绕一个点旋转一个点,那么旋转一个矩形应该很容易——你只需旋转4个点 下面是一个js函数,用于围绕原点旋转点: function rotate_point(pointX, pointY, originX, originY, angle) { angle = angle * Math.PI / 180.0; return { x: Math.cos

如何使4个点围绕指针旋转一定角度以形成矩形?我可以围绕一个点旋转一个点,但我不能偏移它以生成一个不扭曲的矩形。

如果你可以围绕一个点旋转一个点,那么旋转一个矩形应该很容易——你只需旋转4个点

下面是一个js函数,用于围绕原点旋转点:

function rotate_point(pointX, pointY, originX, originY, angle) {
    angle = angle * Math.PI / 180.0;
    return {
        x: Math.cos(angle) * (pointX-originX) - Math.sin(angle) * (pointY-originY) + originX,
        y: Math.sin(angle) * (pointX-originX) + Math.cos(angle) * (pointY-originY) + originY
    };
}
然后你可以对每一点都这样做。 以下是一个例子:


更改角度并点击run查看结果…

到目前为止您是否尝试过这样做?一些代码?请将四个点平移,以便将指针视为中心,通过标准旋转矩阵方法进行旋转,然后将点平移回去。如果我明白,我会使用它,但我需要一个简单的英语或最好是JavaScript的解决方案。你能解释一下吗?jsfiddle.net/bjhc34xk/7这是否与圆周率的近似值有关,或者可能与浮点数学错误有关?将Felix的小提琴分叉,使其包含一个用于动态输入的滑块,以便更容易进行实验-@MaxMastalerz我相信您现在已经开始了,但您的小提琴可能没有按照您的想法进行操作。你正在改变你的端点的X坐标,在计算的中间,然后旋转y坐标从那个偏移点而不是中心。结果是一个很酷的金色螺旋,但我想你是有意这么做的: