2015-10-15 17 views
0

爲了簡單起見,我在單位球面上有一組點,並且爲了簡單起見,相應的一組值相等,因此我正在構造一組上的特徵函數領域。通常,我有幾個這樣的組合,它們構成了球體的一個分區。圖中給出了一個例子。在Paraview中重建邊界並計算長度

enter image description here

我想知道如果paraview包可以找到在小區之間的邊界,並且計算的長度和邊界的曲率。

我在一篇論文中讀到,使用梯度重建的人們設法找到這些輪廓的曲率。我想如果可以找到曲率,那麼長度應該稍微簡單一些。如果對上述問題的回答是肯定的,那麼我應該在哪裏查找相應的文檔?

+0

mmm ...我猜想球體曲線的曲率是1/R。如果曲線中心在(0,0,0)處,單位球面曲率爲1.對於非同心曲線,建立弦平面並找到它的中心和半徑,1/r將爲曲率 –

+0

對於點座標有什麼影響?角? –

+0

對於點座標,我有實際的x,y,z值。關於你的第一條評論,這些分區是由一個程序生成的,儘管懷疑它們是圓弧,但我希望能夠通過找到曲線並計算它們的曲率來驗證這一點。 –

回答

1

對於球體上的點,如果它們是基於大圓距離原理構建的,則意味着所有連接點的連線都是最短距離,並且平面穿過球體中心。在這種情況下,角度可以被計算爲標量積的arccos。

R = 1; 
angle = arccos(x1*x2 + y1*y2 + z1*z2); 
length = R*angle; 

從p1到p2的參數線可以使用slerp插值建立。

slerp(t) = sin((1.0-t)*angle)/sin(angle)*p1 + sin(t*angle)/sin(angle)*p2; 

其中t是[0 ... 1]的範圍內

在這種情況下的曲率是所有大圓線1/R。這將是我會嘗試的第一件事 - 嘗試將實際邊界與大圓圈方法的邊界匹配。如果它們匹配,這就是答案

鏈接

https://en.wikipedia.org/wiki/Great_circle https://en.wikipedia.org/wiki/Great-circle_distance https://en.wikipedia.org/wiki/Slerp

UPDATE

在非大弧線我會提出以下修改的情況。建立穿過球體中心和與表面相交處的大弧面,在各點之間產生很大的弧度。將軸固定爲通過這兩點的線。沿着上述軸開始旋轉大圓弧面,直到得到連接兩點的圓弧。在這一刻你可以得到旋轉角度,計算你的圓平面位置和半徑r,曲率爲1/r

+0

謝謝你的回答,但這不是我所追求的。我知道連接點的曲線是圓弧,但它們不是測地線(大圓弧)。 –

+0

好的,這就是我認爲的可能。查看更新 –