1

假设我有两个矩形,每个矩形都有一个指向某个方向的“连接器”。链接的变换(位置和角度)是相对于其父矩形的中心指定的。

在下面的示例中,矩形 A 的链接是 (x: 0, y: -0.5, rotation: 0) 而 B 的链接是 (x: 0.5, y: 0, rotation: 45)。

两个矩形可以通过旋转相互“插入”,使得它们的链接具有相同的坐标并面向相反的方向。

图表

我试图弄清楚如何计算矩形 B 在链接后相对于矩形 A 的变换。

在这种情况下,矩形 A 是 (0, 0, 0),A 的链接是 (0, 0.5, 0),B 的链接是 (0, 0.5, 180),B 是 (~0.3, ~-0.8, 135)。

有谁知道在上面的例子中如何计算 B 的最终位置?

4

1 回答 1

1

所以你有基点A0B0链接点ALBL

起初你移动和B0的差,所以ALBL

B0' = B0 + AL - BL

然后你必须旋转这个点AL来提供最终位置

B0''.X = AL.X + (B0.X - BL.X) * Cos(D) - (B0.Y - BL.Y) * Sin(D)
B0''.Y = AL.Y + (B0.X - BL.X) * Sin(D) + (B0.Y - BL.Y) * Cos(D)

D旋转角度在哪里

D = Pi - A_rotation - B_rotation
于 2019-01-28T11:08:41.940 回答