基于python分享極坐標(biāo)下的幾類典型曲線
導(dǎo)言:
忽然發(fā)現(xiàn)數(shù)學(xué)家還是很擅長(zhǎng)發(fā)明新玩意構(gòu)造新東西的,如很早的歐幾里得幾何體系,后來(lái)的笛卡爾直角坐標(biāo)系,還有極坐標(biāo)系,埃爾朗根綱領(lǐng),一門(mén)學(xué)科的發(fā)展需要一代又一代的人前赴后繼為其添磚加瓦,筑成一座大廈,今天我們來(lái)簡(jiǎn)單介紹一下極坐標(biāo)系。
一、極坐標(biāo)
極坐標(biāo)系統(tǒng)是一套區(qū)別于笛卡爾直角坐標(biāo)系的二維坐標(biāo)系統(tǒng),它是指在平面內(nèi)取一個(gè)定點(diǎn)O,然后從O點(diǎn)引一條射線Ox,再選定一個(gè)長(zhǎng)度單位和角度的正方向(通常取逆時(shí)針?lè)较颍┒鴱埑傻囊粡埰矫娼欠Q為極坐標(biāo)系統(tǒng),簡(jiǎn)稱極坐標(biāo)。其中,點(diǎn)O叫極點(diǎn),射線Ox叫做極軸,對(duì)于平面內(nèi)任何一點(diǎn)M,用ρ表示線段OM的長(zhǎng)度,θ表示從Ox到OM的角度,那么,點(diǎn)M就可以用有序數(shù)對(duì) (ρ,θ)來(lái)表示,該有序數(shù)對(duì)就叫點(diǎn)M的極坐標(biāo),其中,ρ叫做點(diǎn)M的極徑,θ叫做點(diǎn)M的極角。
二、直角坐標(biāo)系與極坐標(biāo)互換
在笛卡爾直角坐標(biāo)系里,任何一點(diǎn)M都可以用一對(duì)有序數(shù)對(duì)(x,y)來(lái)表示,其中x叫做點(diǎn)M的橫坐標(biāo),y叫做點(diǎn)M的縱坐標(biāo),這與在極坐標(biāo)里任何一點(diǎn)可以用極徑和極角構(gòu)成的有序數(shù)對(duì) (ρ,θ)來(lái)表示類似,這是一種巧合還是一種必然呢?其實(shí)極坐標(biāo)和笛卡爾直角坐標(biāo)系是可以進(jìn)行坐標(biāo)轉(zhuǎn)換的,具體的
(i)極坐標(biāo)轉(zhuǎn)笛卡爾直角坐標(biāo)系
已知線段OM的長(zhǎng)度為ρ,從M點(diǎn)向x軸和y軸引垂線,設(shè)垂足分別是A,B,那么
這樣,點(diǎn)M在笛卡爾直角坐標(biāo)系就可以用有序數(shù)對(duì)(ρcosθ,ρsinθ)來(lái)表示。
(ii)笛卡爾直角坐標(biāo)系轉(zhuǎn)極坐標(biāo)
已知點(diǎn)M的坐標(biāo)為(x,y),那么可以求出OM與x軸的夾角
特別的,當(dāng)x=0時(shí),θ=90°或270°,這樣點(diǎn)M在極坐標(biāo)系就可以用有序數(shù)對(duì)
笛卡爾直角坐標(biāo)系與極坐標(biāo)系各有其優(yōu)點(diǎn),我們平時(shí)使用笛卡爾直角坐標(biāo)系更多些也會(huì)更習(xí)慣些,但是在有些時(shí)候使用極坐標(biāo)系會(huì)更簡(jiǎn)便些,如兩點(diǎn)間的關(guān)系用夾角和距離會(huì)更容易表示,一些曲線方程,極坐標(biāo)系下的方程的表達(dá)形式更簡(jiǎn)單些,如雙扭線,心形線等。
三、幾類典型的極坐標(biāo)方程
圓:
心形線:
玫瑰線:
阿基米德螺線:
雙扭線:
四、代碼繪制幾類典型極坐標(biāo)方程圖像
圓:
import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import math #導(dǎo)入數(shù)學(xué)模塊 thetas =[] #用來(lái)存放極角 rhos = [] #用來(lái)存放極徑 for i in range(0, 361): ? ? theta = math.pi/180*i #角度轉(zhuǎn)弧度 ? ? rho = 1 ? ? thetas.append(theta) ? ? rhos.append(rho) fig = plt.figure() #新建畫(huà)布 plt.polar(thetas, rhos, color = "red") #極坐標(biāo)畫(huà)圖 plt.show()
心形線:
import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import math #導(dǎo)入數(shù)學(xué)模塊 thetas =[] #用來(lái)存放極角 rhos = [] #用來(lái)存放極徑 for i in range(0, 361): ? ? theta = i*math.pi/180 #角度轉(zhuǎn)弧度 ? ? rho = 1- math.cos(theta) #極徑 ? ? thetas.append(theta) ? ? rhos.append(rho) fig = plt.figure() #新建畫(huà)布 plt.polar(thetas, rhos, color = "red") #極坐標(biāo)畫(huà)圖 plt.show()
玫瑰線:
import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import math #導(dǎo)入數(shù)學(xué)模塊 thetas =[] #用來(lái)存放極角 rhos = [] #用來(lái)存放極徑 for i in range(0, 361): ? ? theta = i*math.pi/180 #角度轉(zhuǎn)弧度,極角 ? ? rho = math.cos(6*theta) #極徑 ? ? thetas.append(theta) ? ? rhos.append(rho) fig = plt.figure() #新建畫(huà)布 plt.polar(thetas, rhos, color = "red") #極坐標(biāo)畫(huà)圖 plt.show()
阿基米德螺線:
import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import math #導(dǎo)入數(shù)學(xué)模塊 thetas =[] #用來(lái)存放極角 rhos = [] #用來(lái)存放極徑 for i in range(0, 721): ? ? theta = i*math.pi/180 ? ? rho = 0+2*theta ? ? thetas.append(theta) ? ? rhos.append(rho) fig = plt.figure() #新建畫(huà)布 plt.polar(thetas, rhos, color = "red") #極坐標(biāo)畫(huà)圖 plt.show()
雙扭線:
import matplotlib.pyplot as plt #導(dǎo)入繪圖模塊 import math #導(dǎo)入數(shù)學(xué)模塊 thetas =[] #用來(lái)存放極角 rhos = [] #用來(lái)存放極徑 for i in range(0, 361): ? ? theta = i*math.pi/180 ? ? rho = math.sqrt(2)*(math.cos(2*theta))**(1/2) ? ? thetas.append(theta) ? ? rhos.append(rho) fig = plt.figure() #新建畫(huà)布 plt.polar(thetas, rhos, color = "red") #極坐標(biāo)畫(huà)圖 plt.show()
到此這篇關(guān)于基于python分享極坐標(biāo)下的幾類典型曲線的文章就介紹到這了,更多相關(guān)極坐標(biāo)下的幾類典型曲線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python機(jī)器學(xué)習(xí)之決策樹(shù)分類詳解
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之決策樹(shù)分類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12Python的selenium模塊使用find_element_by_id無(wú)效解決方案
這篇文章主要介紹了Python的selenium模塊使用find_element_by_id無(wú)效解決方案,find_element_by_id無(wú)效可能是因?yàn)榘姹締?wèn)題,而4.5.0版本不支持頁(yè)面對(duì)象的定位find_element_by_id方法,以前版本支持這些進(jìn)行元素定位,需要的朋友可以參考下2023-12-12Python 實(shí)用技巧之利用Shell通配符做字符串匹配
這篇文章主要介紹了Python 實(shí)用技巧之利用Shell通配符做字符串匹配的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Django如何開(kāi)發(fā)簡(jiǎn)單的查詢接口詳解
這篇文章主要給大家介紹了使用Django如何開(kāi)發(fā)簡(jiǎn)單的查詢接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05django foreignkey(外鍵)的實(shí)現(xiàn)
這篇文章主要介紹了django foreignkey(外鍵)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python編程中NotImplementedError的使用方法
下面小編就為大家分享一篇Python編程中NotImplementedError的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Keras神經(jīng)網(wǎng)絡(luò)efficientnet模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)
這篇文章主要為大家介紹了Keras利用efficientnet系列模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05