首页 > 解决方案 > 如何在二维空间中找到点的旋转中心

问题描述

我有一个 2d 点,它围绕原点以外的某个旋转中心旋转。

仅给定点的不同位置,如何计算旋转中心?

标签: mathgeometry2d

解决方案


要获得想要的结果,您需要三分。

将它们作为圆周上的点,您可以计算圆心。

这里或从wiki获取公式

D = |x1  y1  1|
    |x2  y2  1|
    |x3  y3  1|

Dx = |x1^2 + y1^2  y1  1|
     |x2^2 + y2^2  y2  1|
     |x3^2 + y3^2  y3  1|

Dy = |x1^2 + y1^2  x1  1|
     |x2^2 + y2^2  x2  1|
     |x3^2 + y3^2  x3  1|


D = x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)
Dx = (x1^2 + y1^2) * (y2 - y3) + (x2^2 + y2^2) * (y3 - y1) + (x3^2 + y3^2) * (y1 - y2)
Dy = (x1^2 + y1^2) * (x2 - x3) + (x2^2 + y2^2) * (x3 - x1) + (x3^2 + y3^2) * (x1 - x2)

中心坐标

Cx =  Dx / (2*D)
Cy =  - Dy / (2*D)

推荐阅读