C++空间三点的圆心
以下是计算三个点构成的圆心的C++代码:
#include <iostream>
#include <cmath>
using namespace std;
struct Point {
double x;
double y;
};
Point findCircleCenter(Point A, Point B, Point C) {
double a1 = B.x - A.x;
double b1 = B.y - A.y;
double c1 = (a1*a1 + b1*b1) / 2;
double a2 = C.x - A.x;
double b2 = C.y - A.y;
double c2 = (a2*a2 + b2*b2) / 2;
double d = a1*b2 - a2*b1;
double x = A.x + (c1*b2 - c2*b1) / d;
double y = A.y + (a1*c2 - a2*c1) / d;
return {x, y};
}
int main() {
Point A = {0, 0};
Point B = {3, 0};
Point C = {0, 4};
Point center = findCircleCenter(A, B, C);
cout << "Circle Center: (" << center.x << ", " << center.y << ")" << endl;
return 0;
}
输出结果为:
Circle Center: (1.5, 2)
其中,findCircleCenter函数实现了计算圆心的逻辑,三个参数分别为三个点的坐标,返回值为构成的圆心坐标。该函数的实现原理可以参考这篇文章。
在main函数中,我们定义了三个点A、B、C,并调用findCircleCenter函数计算出圆心坐标,并将其输出
原文地址: https://www.cveoy.top/t/topic/g6OL 著作权归作者所有。请勿转载和采集!