如何在 2d space 中找到点的旋转中心

how to find the center of rotation of a point in 2d space

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

如何仅根据点的不同位置计算出旋转中心?

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

将它们作为圆周上的点,就可以算出圆心了。

here or get formulas from 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)