double c1 = 0, c2 = 0, A = 0, B = 0, C = 0, y01 = 0, x01 = 0, x02 = 0, y02 = 0;
c1 = (Math.Pow(x2, 2) - Math.Pow(x1, 2) + Math.Pow(y2, 2) - Math.Pow(y11, 2)) / 2 / (x2 - x1);
c2 = (y2 - y11) / (x2 - x1);
A = 1.0 + Math.Pow(c2, 2);
B = 2 * (x1 - c1) * c2 - 2 * y11;
C = Math.Pow((x1 - c1), 2) + Math.Pow(y11, 2) - Math.Pow(R, 2);
y01 = (-B + Math.Sqrt(B * B - 4 * A * C)) / 2 / A;
x01 = c1 - c2 * y01;
y02 = (-B - Math.Sqrt(B * B - 4 * A * C)) / 2 / A;
x02 = c1 - c2 * y02;
C# 通过两个点及半径计算圆心坐标示例
最新推荐文章于 2024-06-27 16:35:56 发布