[英]Mathematical Equation Conversion
我正在嘗試編寫一種確定球體上多邊形(復雜或簡單)面積的方法。 我有一篇由JPL的幾個人寫的論文,或多或少地為您提供了這些計算的方程式。
pdf文件可以在這里找到:
http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409
該方程式可以在第7頁的“球形情況-近似”下找到:
我也在Word中鍵入了等式:
Spherical_Case_Equation
在將該方程式轉換為標准形式時,我需要幫助(我認為這是正確的術語)。 我已經為刨床做了類似的事情:
private double calcArea(Point2D[] shape) {
int n = shape.length;
double sum = 0.0;
if (n < 3) return 0.0;
for (int i = 0; i < n-1 ; i++) {
sum += (shape[i].getX() * shape[i+1].getY()) - (shape[i+1].getX() * shape[i].getY());
}
System.out.println(0.5 * Math.abs(sum));
return 0.5 * Math.abs(sum);
}
我只需要在球形情況下進行類似操作的幫助即可。 任何幫助將不勝感激。
我尚未閱讀您引用的論文。 球形多邊形的面積與角度超出成正比。
面積=r²(ΣAᵢ-(n-2)π)
要計算轉角,您可以從點的3D坐標開始。 因此,在角i處,您有頂點p[i] = (x[i],y[i],z[i])
和相鄰的頂點p[i-1]
和p[i+1]
(resp p[(i+n-1)%n]
和p[(i+1)%n]
以獲得正確的循環性)。 然后交叉產品
v₁ = p[i] × p[i-1]
v₂ = p[i] × p[i+1]
將與入射邊緣和原點(即球的中心)所跨越的平面正交。 Noe空間中兩個向量之間的夾角為
Aᵢ = arccos(⟨v₁,v₂⟩ / (‖v₁‖ * ‖v₂‖))
其中⟨v₁,v⟩表示兩個矢量之間的點積 ,該積與角度的余弦成比例,而“v₁”表示第一個矢量的長度,第二個矢量也類似“ v2”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.