计算相对于旋转 DIV 的点坐标

问题描述 投票:0回答:1

我在非旋转 DIV 中有一个旋转 DIV,并且我正在尝试计算外部 DIV 上相对于旋转 DIV 的光标位置。我想我需要这个位置,就好像坐标系已经旋转以匹配旋转的 div 的角度。

以下是我需要的示例:

rotated DIV within a DIV

我知道或很容易得到:

  • w1,外层DIV的宽度
  • h1,外层DIV的高度
  • w2,内部/旋转 DIV 的宽度
  • h2,内部/旋转 DIV 的高度
  • a,旋转后的DIV的角度
  • x1,点 P 的 x 坐标
  • y1,点 P 的 y 坐标

我不知道如何获得,但需要x2和y2。

javascript coordinates
1个回答
0
投票

我忽略了您是否可以使用内置工具访问该信息,因此这里有一个可能的答案,以问题的数学为中心。

您所做的基本上是仿射变换,特别是平移和旋转的组合:

Transformation equation.

其中旋转矩阵为:

Rotation matrix.

;平移向量为:

Translation vector.

所以,好吧,新系统中的坐标应该是:

let x2 = x1*Math.cos(a) + Math.sin(a) * (-y1 + w2*Math.sin(a));
let y2 = y1*Math.cos(a) + Math.sin(a) * (+x1 - w2*Math.cos(a));
© www.soinside.com 2019 - 2024. All rights reserved.