gpt4 book ai didi

java - 数学方程转换

转载 作者:太空宇宙 更新时间:2023-11-04 13:11:53 25 4
gpt4 key购买 nike

我正在尝试编写一种方法来确定球体上多边形(复杂或简单)的面积。我有一篇由喷气推进实验室的几个人写的论文,或多或少地给出了这些计算的方程式。

可以在此处找到 pdf 文件:

http://trs-new.jpl.nasa.gov/dspace/handle/2014/40409

该方程可以在第 7 页的“球面情况 - 近似”下找到:

我还在 Word 中输入了方程式:

Spherical_Case_Equation

enter image description here

我需要帮助将此方程转换为标准形式(我认为这是正确的术语)。我已经为 Planer Case 做了类似的事情:

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);
}

我只需要帮助对球形情况做类似的事情。任何帮助将不胜感激。

最佳答案

我还没有读过你提到的论文。球面多边形的面积与 angle excess 成正比。 .

面积 = r²(Σ Aᵢ - (n - 2)π)

要计算角角度,您可以从点的 3D 坐标开始。因此,在角点 i 处,您有顶点 p[i] = (x[i],y[i],z[i]) 和相邻顶点 p[i-1]p[i+1](分别为 p[(i+n-1)%n]p[(i+1)%n] 以获得循环正确的结果)。然后cross products

v₁ = p[i] × p[i-1]
v₂ = p[i] × p[i+1]

将与入射边和球体中心原点所跨越的平面正交。空间中两个 vector 之间的角度由下式给出

Aᵢ = arccos(⟨v₁,v₂⟩ / (‖v₁‖ * ‖v₂‖))

其中 ⟨v₁,v2⟩ 表示 dot product这两个 vector 之间的值与角度的余弦成正比,“v₁”表示第一个 vector 的长度,同样“v2”表示第二个 vector 的长度。

关于java - 数学方程转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com