编辑代码

#include <stdio.h>
#include <math.h>
#include <stdint.h>

#define MAP_UINT (0.000021457672119)
typedef struct
{
    int x;
    int y;
} point_t;

int main () {

// c -118.09577465 36.57831430

// a -118.09568882 36.57829285
// b -118.09598923 36.57792807 


    point_t a = {-118.09568882/MAP_UINT, 36.57829285/MAP_UINT};
    point_t b = {-118.09598923/MAP_UINT, 36.57792807/MAP_UINT};
    point_t c = {-118.09577465/MAP_UINT,  36.57831430/MAP_UINT};
   // bool is_in_middle = false; //每次检查区域都要初始化为假
    //bool res = false;
    point_t cc;
    int x_ba, y_ba, x_ca, y_ca;
    uint32_t len;
    x_ba = b.x - a.x;
    y_ba = b.y - a.y;
    x_ca = c.x - a.x;
    y_ca = c.y - a.y;
    double gamma = 1.0f * (x_ba * x_ca + y_ba * y_ca) / (pow(x_ba, 2) + pow(y_ba, 2));
    if (gamma > 1)
    {
        cc = b;
    }
    else if (gamma < 0)
    {
        cc = a;
    }
    else
    {
        cc.x = (int)(gamma * x_ba + (double)a.x);
        cc.y = (int)(gamma * y_ba + (double)a.y);
        //is_in_middle = true;
        //*(check_param->p_projection_pot) = cc;

        printf("cc %d %d %f %f\n", cc.x, cc.y, cc.x*MAP_UINT, cc.y*MAP_UINT);
    }


    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 

    //float f = 100.0;
    //double d = 1.0e2;
    //long double ld = 1.0e2;
    
    //printf("float: %f.\n", f);

    


    //printf("Hello world!     - c.jsrun.net.");
    printf("%f %f,",1071878 * 0.000021457672119, 1025274 * 0.000021457672119);
    printf("%f %f\n",5266182 * 0.000021457672119 , 5312785 * 0.000021457672119);
    printf("%f %f\n",5310452 * 0.000021457672119 ,1051884 * 0.000021457672119);
    //int rgb[] = {1,254,237};
    //int rgb[] = {2,0,206};
    //int rgb[] = {2,2,91};
    //int rgb[] = {2,128,148};
    //int rgb[] = {2,0,143};

    //printf("%f", (rgb[0]*256*256 + rgb[1]*256 + rgb[2])*0.1 - 10000);



    int32_t cur_longitude = 1138803560;
    int32_t cur_latitude = 225596907;
    int32_t last_longitude = 1138804004;
    int32_t last_latitude = 225596161;

       

    //logs_i("get_cur_prj_to_seg_start_pnt: %d %d %d %d\n", cur_longitude, cur_latitude, last_longitude, last_latitude);
    if (!(cur_longitude == last_longitude && cur_latitude == last_latitude) &&
        !(cur_longitude == 0 && cur_latitude == 0) && !(cur_longitude == -1 && cur_latitude == -1) &&
        !(last_longitude == 0 && last_latitude == 0) && !(last_longitude == -1 && last_latitude == -1))
    {

        //printf("binggo");

    }



 
    


    //5310454 1051883 5310440 1051893 5310452 1051884

 

    return 0;
}