作者:李玉昆
链接:https://www.zhihu.com/question/40422123/answer/95637252
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
已知空间三个点,解算外接圆圆心坐标,C++编程实现
struct PT3
{
double x, y, z;
};
int solveCenterPointOfCircle(std::vector<PT3> pd, double centerpoint[])
{
double a1, b1, c1, d1;
double a2, b2, c2, d2;
double a3, b3, c3, d3;
double x1 = pd[0].x, y1 = pd[0].y, z1 = pd[0].z;
double x2 = pd[1].x, y2 = pd[1].y, z2 = pd[1].z;
double x3 = pd[2].x, y3 = pd[2].y, z3 = pd[2].z;
a1 = (y1*z2 - y2*z1 - y1*z3 + y3*z1 + y2*z3 - y3*z2);
b1 = -(x1*z2 - x2*z1 - x1*z3 + x3*z1 + x2*z3 - x3*z2);
c1 = (x1*y2 - x2*y1 - x1*y3 + x3*y1 + x2*y3 - x3*y2);
d1 = -(x1*y2*z3 - x1*y3*z2 - x2*y1*z3 + x2*y3*z1 + x3*y1*z2 - x3*y2*z1);
a2 = 2 * (x2 - x1);
b2 = 2 * (y2 - y1);
c2 = 2 * (z2 - z1);
d2 = x1 * x1 + y1 * y1 + z1 * z1 - x2 * x2 - y2 * y2 -
三点求圆弧中心
最新推荐文章于 2025-02-19 14:35:19 发布