如何在 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)
我有一个 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)