Python求兩個圓的交點坐標或三個圓的交點坐標方法
更新時間:2018年11月07日 16:06:28 作者:zsc201825
今天小編就為大家分享一篇Python求兩個圓的交點坐標或三個圓的交點坐標方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
計算兩個圓的交點
代碼如下:
# -*- coding: utf-8 -*-
import math
import numpy as np
def insec(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)
if d > (R+S) or d < (abs(R-S)):
print ("Two circles have no intersection")
return
elif d == 0 and R==S :
print ("Two circles have same center!")
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])
return c1,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]
計算三個圓的交點,首先要保證三個圓必須有共同的交點,然后調(diào)用兩次函數(shù),再求交集,即可算出三個圓的交點。
以上這篇Python求兩個圓的交點坐標或三個圓的交點坐標方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:

