一片冰心在玉壶

那时我们有梦,关于文学,关于爱情,关于穿越世界的旅行, 如今我们深夜饮酒,杯子碰到一起,都是梦破碎的声音. 交往都是初逢,爱情都在心里,往事都在梦中, 希望都带着注释,信仰都带着呻吟. 总有善意的光逃避现世的繁琐而寻找片刻的安宁, 也许,就是你凝视这里的眼睛

博客园 首页 联系 订阅 管理
struct  _frame_coordinates
{
    int X_Origins;//原点X坐标,原点在对话框中的位置 
    int Y_Origins;//原点Y坐标,原点在对话框中的位置 
    int X_W;// X宽度 ,坐标宽 
    int Y_W;// Y宽度 ,坐标宽 
    int X_Min;//X_Min转化坐标后原点坐标,一般情况下都为0
    int Y_Min;//Y_Min转化坐标后原点坐标,一般情况下都为0
    int X_Max;// X_Max 转化坐标后X轴要画的点数,光谱仪中为2048
    int Y_Max;// Y_Max  转化坐标后Y轴最高点的坐标,光谱仪中为6000
};
struct  _frame_coordinates myCoordinates;
void ShowLine(HDC neicun_hdc,struct _frame_coordinates c_Line, unsigned short yPix[])
{
    int i,j,X0,Y0,X1,Y1;
    char str[10],strShow[20];
    char str1[10],strShow1[20];
    double xPerPix,yPerPix;
    LOGFONT* mg_font,*mg_font1;
    sprintf(str,"%d",c_Line.Y_Max/3);
    sprintf(str1,"%d",c_Line.Y_Max*2/3);
    mg_font = CreateLogFont (NULL, "song""GB2312",
         FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_FLIP_NIL,
         FONT_OTHER_NIL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,
         120);
    SelectFont(neicun_hdc, mg_font);
    SetBkColor (neicun_hdc, COLOR_black);            
    SetTextColor(neicun_hdc,RGB2Pixel(neicun_hdc, 255255255));     
    SetBrushColor(neicun_hdc, RGB2Pixel(neicun_hdc, 0x00x00x0));//, 0x80));
     SetPenColor(neicun_hdc, RGB2Pixel(neicun_hdc, 0xff0xff0xff));//, 0xff)); 
     FillBox (neicun_hdc, 351314169); 
     LineEx (neicun_hdc, c_Line.X_Origins-10,c_Line.Y_Origins, 320, c_Line.Y_Origins);    //X坐标
     LineEx (neicun_hdc, c_Line.X_Origins, c_Line.Y_Origins-c_Line.Y_W, c_Line.X_Origins, c_Line.Y_Origins);//y坐标
     
    
//分割线
     SetPenType (neicun_hdc, PT_ON_OFF_DASH);
     SetPenDashes (neicun_hdc, 0"\1\1"2);
     TextOut(neicun_hdc, c_Line.X_Origins,c_Line.Y_Origins-c_Line.Y_W/3-15, str);
     LineEx (neicun_hdc, c_Line.X_Origins,c_Line.Y_Origins-c_Line.Y_W/3320, c_Line.Y_Origins-c_Line.Y_W/3);
    TextOut(neicun_hdc, c_Line.X_Origins,c_Line.Y_Origins-c_Line.Y_W*2/3-15, str1);
     LineEx (neicun_hdc, c_Line.X_Origins,c_Line.Y_Origins-c_Line.Y_W*2/3320, c_Line.Y_Origins-c_Line.Y_W*2/3);

     LineEx (neicun_hdc, c_Line.X_Origins+c_Line.X_W/4, c_Line.Y_Origins-c_Line.Y_W, c_Line.X_Origins+c_Line.X_W/4, c_Line.Y_Origins);
     LineEx (neicun_hdc, c_Line.X_Origins+c_Line.X_W*2/4, c_Line.Y_Origins-c_Line.Y_W, c_Line.X_Origins+c_Line.X_W*2/4, c_Line.Y_Origins);
    LineEx (neicun_hdc, c_Line.X_Origins+c_Line.X_W*3/4, c_Line.Y_Origins-c_Line.Y_W, c_Line.X_Origins+c_Line.X_W*3/4, c_Line.Y_Origins);
    X0=c_Line.X_Origins;
    Y0=c_Line.Y_Origins+(c_Line.Y_W/c_Line.Y_Max)*yPix[0];//初如化第一个点的坐标
    xPerPix=(double)c_Line.X_W/(double)c_Line.X_Max;
    yPerPix=(double)c_Line.Y_W/(double)c_Line.Y_Max;
    for(i=1;i<c_Line.X_Max;i++)
    {            
        X1=c_Line.X_Origins+xPerPix*i;//变换坐标
        Y1=c_Line.Y_Origins-yPerPix*yPix[i];//变换坐标
        LineEx (neicun_hdc, X0, Y0, X1, Y1);
        X0=X1;
        Y0=Y1;
    }
}

使用如下:

 

        myCoordinates.X_Origins=1;
        myCoordinates.Y_Origins=218;
        myCoordinates.X_W=315;
        myCoordinates.Y_W=165;
        myCoordinates.X_Max=2048;
        myCoordinates.Y_Max=6000;

 

posted on 2011-12-21 15:45  Sankye  阅读(743)  评论(0编辑  收藏  举报