C++ 计算三角形外接圆圆心坐标
假设有三个点 A(x1, y1), B(x2, y2), C(x3, y3),它们构成了一个三角形。我们要求这个三角形的外接圆的圆心坐标。
三角形外接圆的圆心一定在三角形的垂直平分线的交点处。
首先,我们可以求出 AB,AC 的中垂线方程,分别为:
AB 的中垂线:x = (x1 + x2) / 2 y = (y1 + y2) / 2
AC 的中垂线:x = (x1 + x3) / 2 y = (y1 + y3) / 2
然后,我们可以求出这两条中垂线的交点,即为三角形外接圆的圆心。求交点的方法可以利用两条直线的交点公式:
x = (b1y2 - b2y1) / (a1b2 - a2b1) y = (a2x1 - a1x2) / (a1b2 - a2b1)
其中,a1、b1 和 a2、b2 分别是 AB 和 AC 的中垂线的斜率和截距。
完整代码如下:
#include <iostream>
using namespace std;
int main()
{
double x1, y1, x2, y2, x3, y3;
cout << '请输入三个点的坐标:' << endl;
cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;
// 求 AB 的中垂线
double a1 = (y2 - y1) / (x2 - x1);
double b1 = (y1 + y2) / 2 - a1 * (x1 + x2) / 2;
// 求 AC 的中垂线
double a2 = (y3 - y1) / (x3 - x1);
double b2 = (y1 + y3) / 2 - a2 * (x1 + x3) / 2;
// 求交点
double x = (b1 * y2 - b2 * y1) / (a1 * b2 - a2 * b1);
double y = (a2 * x1 - a1 * x2) / (a1 * b2 - a2 * b1);
cout << '三角形外接圆的圆心坐标为:' << '(' << x << ', ' << y << ')' << endl;
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oAYe 著作权归作者所有。请勿转载和采集!