欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c++ 已知到三点的距离,求当前点坐标

程序员文章站 2022-04-04 08:31:44
...

QQ:609162385

QPoint  MainWindow::calcPhonePosition(double x1, double y1, double d1,
                                      double x2, double y2, double d2,
                                      double x3, double y3, double d3) {
    QPoint d;
    double a11 = 2 * (x1 - x3);
    double a12 = 2 * (y1 - y3);
    double b1 = pow(x1, 2) - pow(x3, 2)
            + pow(y1, 2) - pow(y3, 2)
            + pow(d3, 2) - pow(d1, 2);
    double a21 = 2 * (x2 - x3);
    double a22 = 2 * (y2 - y3);
    double b2 = pow(x2, 2) - pow(x3, 2)
            + pow(y2, 2) - pow(y3, 2)
            + pow(d3, 2) - pow(d2, 2);
    d.setX((b1 * a22 - a12 * b2) / (a11 * a22 - a12 * a21));
    d.setY((a11 * b2 - b1 * a21) / (a11 * a22 - a12 * a21));

    return d;
}