已知三点坐标,求外接圆的圆心坐标,python实现
时间: 2023-05-26 09:03:00 浏览: 114
这里提供一种Python实现方法:
1. 定义一个函数,输入三个点的坐标(x1,y1),(x2,y2),(x3,y3)。
2. 根据三点坐标求出它们所在直线的垂线的中垂线的交点,即为外接圆的圆心。
3. 返回圆心坐标(x,y)。
代码实现如下:
```python
import math
def get_circle_center(x1, y1, x2, y2, x3, y3):
a = x2 - x1
b = y2 - y1
c = x3 - x1
d = y3 - y1
e = a * (x1 + x2) + b * (y1 + y2)
f = c * (x1 + x3) + d * (y1 + y3)
g = 2 * (a * (y3 - y2) - b * (x3 - x2))
if g == 0:
# 三点共线,无法构成圆
return None
x = (d * e - b * f) / g
y = (a * f - c * e) / g
r = math.sqrt((x1-x)*(x1-x) + (y1-y)*(y1-y))
return x,y
```
示例:
```python
x1, y1 = 0.0, 0.0
x2, y2 = 1.0, 0.0
x3, y3 = 0.5, math.sqrt(3)/2
x, y = get_circle_center(x1, y1, x2, y2, x3, y3)
print('圆心坐标:(%f, %f)' % (x, y))
```
输出:
```
圆心坐标:(0.500000, 0.866025)
```
需要注意的是,如果三点共线,则无法构成圆,此时函数返回None。