Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点
代码如下:
#-*-coding:utf-8-*-
importmath
importnumpyasnp
definsec(p1,r1,p2,r2):
x=p1[0]
y=p1[1]
R=r1
a=p2[0]
b=p2[1]
S=r2
d=math.sqrt((abs(a-x))**2+(abs(b-y))**2)
ifd>(R+S)ord<(abs(R-S)):
print("Twocircleshavenointersection")
return
elifd==0andR==S:
print("Twocircleshavesamecenter!")
return
else:
A=(R**2-S**2+d**2)/(2*d)
h=math.sqrt(R**2-A**2)
x2=x+A*(a-x)/d
y2=y+A*(b-y)/d
x3=round(x2-h*(b-y)/d,2)
y3=round(y2+h*(a-x)/d,2)
x4=round(x2+h*(b-y)/d,2)
y4=round(y2-h*(a-x)/d,2)
print(x3,y3)
print(x4,y4)
c1=np.array([x3,y3])
c2=np.array([x4,y4])
returnc1,c2
P1=np.array([-5,0])
R1=10
P2=np.array([5,0])
R2=5
C=insec(P1,R1,P2,R2)
C1=C[0]
C2=C[1]
计算三个圆的交点,首先要保证三个圆必须有共同的交点,然后调用两次函数,再求交集,即可算出三个圆的交点。
以上这篇Python求两个圆的交点坐标或三个圆的交点坐标方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。