Python中離散點如何求曲率?

時間 2021-06-21 14:15:55

1樓:Scavenger

我也做模型正好碰到這個問題,覺得跟你的需求一樣,分享一下我的做法。

一系列離散點其實並沒有曲率,如果非得求,求得是某一點與其前一點和後一點共三點所確定的唯一乙個圓周的曲率。

按上圖的話三點順序是BAC,求A點曲率。

這樣的話,根本不用求幾階導,需要求的是A點的對邊BC,和A角角度。

from

scipy.spatial.distanceimport

pdist

fori

inrange

(len(x2

)-2):

x=(x2

[i]-

x2[i-

1],y2[

i]-y2

[i-1

])y=(

x2[i+

1]-x2

[i],y2[i

+1]-

y2[i])

d=1-

pdist([x

,y],'cosine'

)sin=np

.sqrt(1

-d**2

)dis=np

.sqrt

((x2[i

-1]-

x2[i+

1])**2

+(y2[

i-1]

-y2[i

+1])**2)

k=2*

sin/

disprint(k

)先餘弦定理求角度,再化成正弦,帶入公式。

輸出的k就是各個點的曲率。

python中如何把點的關係資料轉換為鄰接矩陣?

G nx.Graph path node node weight.txt word list with open path,r as f for line in f cols line.strip split t G.add nodes from cols 0 cols 1 G.add weight...

關於Python中iter 函式的一點疑問

王濤 for i in iter a 3 print i 這列印的是3個迭代器物件,引用型別,位址相同。for i in iter a 3 print list i 迭代器自身包含狀態,第一次列印後狀態已更新,故後面列印為空列表。可見Effectvie python中關於迭代器的描述。 曠修 這個問...

如何使用python中timedelta這個類實現月份的累加。

首先這個問題用timedelta沒有直接的實現方法,給你兩個造好的輪子,你看哪個爽用哪個 import datetime z datetime.datetime 2016,12,17 1.import dateutil z dateutil.relativedelta.relativedelta m...