Java 数学方程转换

Java 数学方程转换,java,math,polygon,area,Java,Math,Polygon,Area,我正在尝试编写一种方法,用于确定球体上多边形(复杂或简单)的面积。我有一篇论文,是由JPL的几个人写的,或多或少给你这些计算的方程式 可在以下位置找到pdf文件: 该方程可在第7页的“球形近似”下找到: 我还用Word输入了方程式: 球面方程 我需要帮助将这个等式转换成标准形式(我认为这是正确的术语)。我已经为Planer案例做了类似的工作: private double calcArea(Point2D[] shape) { int n = shape.length; do

我正在尝试编写一种方法,用于确定球体上多边形(复杂或简单)的面积。我有一篇论文,是由JPL的几个人写的,或多或少给你这些计算的方程式

可在以下位置找到pdf文件:

该方程可在第7页的“球形近似”下找到:

我还用Word输入了方程式:

球面方程

我需要帮助将这个等式转换成标准形式(我认为这是正确的术语)。我已经为Planer案例做了类似的工作:

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);
}
private双视距(Point2D[]形状){
int n=形状长度;
双和=0.0;
如果(n<3)返回0.0;
对于(int i=0;i

我只是需要帮助做一些类似的球形案例。任何帮助都将不胜感激

我还没有读你提到的那篇论文。球形多边形的面积与形状成正比

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

要计算角角度,可以从点的三维坐标开始。所以在拐角处,我有顶点
p[i]=(x[i],y[i],z[i])
和相邻顶点
p[i-1]
p[i+1]
(分别是
p[(i+n-1)%n]
p[(i+1)%n]
,以获得循环正确的结果)。然后

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

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

在哪里⟨v₁,v₂⟩ 表示这两个向量之间的距离,该距离与角度的余弦成正比,且‖v₁‖ 表示第一个向量的长度,同样为‖v₂‖ 第二篇。

我还没有读你提到的那篇论文。球形多边形的面积与形状成正比

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

要计算角角度,可以从点的三维坐标开始。所以在拐角处,我有顶点
p[i]=(x[i],y[i],z[i])
和相邻顶点
p[i-1]
p[i+1]
(分别是
p[(i+n-1)%n]
p[(i+1)%n]
,以获得循环正确的结果)。然后

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

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

在哪里⟨v₁,v₂⟩ 表示这两个向量之间的距离,该距离与角度的余弦成正比,且‖v₁‖ 表示第一个向量的长度,同样为‖v₂‖ 对于第二种情况。

我认为需要更多的信息将您使用的变量映射到方程。我不确定这些是什么:shape[I].getX()*shape[I+1].getY()。我在代码中也没有看到R变量,没有看到sin(teta),我认为需要更多的信息来将您使用的变量映射到方程。我不确定这些是什么:shape[I].getX()*shape[I+1].getY()。我在代码中也没有看到R变量,没有看到sin(teta)