Python是一種高級編程語言,它擁有許多強大而靈活的功能。其強大的繪圖庫,讓我們可以輕松地在Python中畫出相交圓,而這些圓也能為我們在科學、工程和計算機視覺等領域提供大量應用。
import matplotlib.pyplot as plt import numpy as np def draw_circle(xc, yc, r): # 計算圓上點的坐標 theta = np.linspace(0, 2 * np.pi, 100) x = r * np.cos(theta) + xc y = r * np.sin(theta) + yc return x, y # 輸入兩個圓的圓心和半徑 xc1, yc1, r1 = map(int, input("請輸入第1個圓的圓心和半徑(x y r): ").split()) xc2, yc2, r2 = map(int, input("請輸入第2個圓的圓心和半徑(x y r): ").split()) # 計算兩圓相交部分的圓上點的坐標 d = np.sqrt((xc1 - xc2)**2 + (yc1 - yc2)**2) if d<= r1 + r2: a = (r1**2 - r2**2 + d**2) / (2*d) h = np.sqrt(r1**2 - a**2) x1 = xc1 + a * (xc2 - xc1) / d x2 = x1 + h * (yc2 - yc1) / d y2 = yc1 - h * (xc2 - xc1) / d x3 = x1 - h * (yc2 - yc1) / d y3 = yc1 + h * (xc2 - xc1) / d x, y = draw_circle(x1, y2, r1) plt.plot(x, y, 'b') x, y = draw_circle(x3, y3, r1) plt.plot(x, y, 'b') # 畫兩個圓 x, y = draw_circle(xc1, yc1, r1) plt.plot(x, y, 'r') x, y = draw_circle(xc2, yc2, r2) plt.plot(x, y, 'g') # 設置圖形坐標軸范圍 plt.xlim(0, 20) plt.ylim(0, 20) # 顯示圖形 plt.show()
以上代碼實現了兩個圓相交的情況下,如何在Python中畫出兩個圓和其重合部分。通過輸入圓心和半徑,程序可以計算出兩圓的交點,然后畫出兩個相交的圓和它們的相交部分。
這是Python中一個簡單而強大的應用,使用這種方法可以輕松地畫出各種圓形圖案,這在科研和工程領域具有廣泛的應用。