模拟海船转度的算法该怎么办啊?

解决方案 »

  1.   

    int CGPS_CommDlg::ComputeShipPosition(Float depLat, Float depLong, Float speed, Float time, Float course, Float &arrLat, Float &arrLong)
    {
    Float deltaL,W,deltaFa,deltaLamta,deltaD;
    deltaL=speed*time*cos(course*M_PI/180.0);
    W=speed*time*sin(course*M_PI/180.0);
    deltaFa=1852.0/(1852.2-9.3*cos((2*depLat+deltaL/60)*M_PI/180.0))*deltaL/60.0;
    arrLat=depLat+deltaFa;
    deltaD=a/1000.0*(F_Mercator(arrLat)-F_Mercator(depLat));
    if(cos(course*M_PI/180.0)==0)
    {
    deltaLamta=0.99819*W/60.0/cos(depLat*M_PI/180.0)*sqrt(1-e*e*sin(depLat*M_PI/180.0)*sin(depLat*M_PI/180.0));
    }
    else
    {
    deltaLamta=deltaD*tan(course*M_PI/180.0)/1852.0/60.0;
    }
    arrLong=depLong+deltaLamta;
    return 1;
    }其余的是公司机密不能写了