找到已知纬度和经度指数的点的笛卡尔坐标

时间:2014-12-04 22:44:47

标签: opengl latitude-longitude cartesian-coordinates

对于我的项目,我需要找到一个位置以纬度和经度而闻名的点的笛卡尔坐标。

让我用一个例子解释一下。例如,我决定用30纬度和30经度代表我们的世界,我的世界半径是R.现在我试图编写一个以纬度和经度指数为参数并返回该点坐标的函数。原型将是:

cartesianCoordinates(int latitudeIndex, int longitudeIndex,int radius );

为了能够做到这一点,我编写了以下代码:

int latNum=30,lonNum=30;
vectorzfloat> worldVertexDataVector;
void cartesianCoordinates(int paralelIndex,int meridianIndex,float radius )
{
    float x,y,z;
    float firstAngle,secondAngle;
    float rProj;
    firstAngle=PI/2-(PI/(latNum-1)*paralelIndex); // firstAngle is the latitude angle

    secondAngle=0+2*PI/(2*lonNum) *meridianIndex; // second angle is the longitude angle

    y=radius*sin(firstAngle);
    rProj=radius*cos(firstAngle);


    z=rProj*sin(secondAngle);
    x=rProj*cos(secondAngle);




    worldVertexDataVector.push_back(x);
    worldVertexDataVector.push_back(y);
    worldVertexDataVector.push_back(z);

}

现在,通过使用worldVertexDataVector中的点,我试图渲染一个球体,但我失败了。在搜索了我的所有代码(除此之外)之后,我怀疑在计算这些坐标时我犯了一个错误。那么有没有人帮我检测我的错误?

0 个答案:

没有答案