ProEssentials教程2-极坐标图表例子

来源:互联网 发布:市场花园行动 知乎 编辑:程序博客网 时间:2024/05/08 09:51

废话少说, 直接上代码



    void CPEView::CreateSimpleSGraph()      {                //! Right button click to show popup menu. //           //! Double Click to show customization dialog. //           //! Left-Click and drag to draw zoom box. Use popup memu or 'z' to undo zoom. //                      // Simple example show the basics of a polar object. //           // 极坐标图既包含Y轴数据(弧长)也包含X轴数据(弧度). //                     RECT rect;          GetClientRect( &rect );                    // 构造对象,Polar_Graph //           m_hPE = PEcreate(PECONTROL_PGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001);                    PEnset(m_hPE, PEP_nSUBSETS, 2);//2个子集           PEnset(m_hPE, PEP_nPOINTS, 360);//每个子集360个点                     int p;          float f1, f2;          for (p=0; p<360; p++)          {              f1 = (float) p; //p°               f2 = (float) 150 * sin((double) p * 0.054F);//弧长=150*sin转化为弧度           //  f2= (float)300;//弧长               PEvsetcellEx(m_hPE, PEP_faXDATA, 0, p, &f1);//第1个子集第p个点               PEvsetcellEx(m_hPE, PEP_faYDATA, 0, p, &f2);          }                    for (p=0; p<360; p++)          {              f1 = (float) p;              f2 = (float) 150 * sin(((double) p * 0.044F)) * 2;//第2个子集第p个点               PEvsetcellEx(m_hPE, PEP_faXDATA, 1, p, &f1);              PEvsetcellEx(m_hPE, PEP_faYDATA, 1, p, &f2);          }                    PEnset(m_hPE, PEP_nPLOTTINGMETHOD, PEGPM_LINE);          PEnset(m_hPE, PEP_nALLOWZOOMING, 1);          PEszset(m_hPE, PEP_szMAINTITLE, TEXT("极坐标图表"));//主标题PEP_szMAINTITLE           PEszset(m_hPE, PEP_szSUBTITLE, TEXT("")); //无副标题           float ftmp = .9F;          PEvset(m_hPE, PEP_fFONTSIZELEGENDCNTL, &ftmp, 1 );          PEnset(m_hPE, PEP_bPREPAREIMAGES, TRUE);          PEnset(m_hPE, PEP_bCACHEBMP, TRUE);          PEnset(m_hPE, PEP_bFOCALRECT, FALSE);                    // 设置线型           int nTypes[] = { PELT_MEDIUMSOLID, PELT_MEDIUMSOLID };          PEvset(m_hPE, PEP_naSUBSETLINETYPES, nTypes, 2);                    // 设置点型           int nPTypes[] = { PEPT_DOTSOLID, PEPT_PLUS };          PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nTypes, 2);                    // 子集合颜色值           DWORD dwArray[2] = { PERGB(128, 198,0,0), PERGB(128, 0, 198, 0) };          PEvset( m_hPE, PEP_dwaSUBSETCOLORS, dwArray, 2);                    //子集合标签 labels           PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 0, TEXT("Signal #1" ));          PEvsetcell( m_hPE, PEP_szaSUBSETLABELS, 1, TEXT("Signal #2" ));                    double dnull = -99999.0F;          PEvset(m_hPE, PEP_fNULLDATAVALUEX, &dnull, 1);          PEvset(m_hPE, PEP_fNULLDATAVALUE, &dnull, 1);                    // Set Various other features //           PEnset(m_hPE, PEP_bFIXEDFONTS, TRUE);          PEnset(m_hPE, PEP_bBITMAPGRADIENTMODE, TRUE);          PEnset(m_hPE, PEP_nQUICKSTYLE, PEQS_MEDIUM_NO_BORDER);          PEnset(m_hPE, PEP_bSIMPLEPOINTLEGEND, TRUE);          PEnset(m_hPE, PEP_bSIMPLELINELEGEND, TRUE);          PEnset(m_hPE, PEP_nLEGENDSTYLE, PELS_1_LINE);          PEnset(m_hPE, PEP_nZOOMSTYLE, PEZS_RO2_NOT);          PEnset(m_hPE, PEP_nPOINTSIZE, PEPS_SMALL);                    PEnset(m_hPE, PEP_nTEXTSHADOWS, PETS_BOLD_TEXT);          PEnset(m_hPE, PEP_bMAINTITLEBOLD, TRUE);          PEnset(m_hPE, PEP_bSUBTITLEBOLD, TRUE);          PEnset(m_hPE, PEP_bLABELBOLD, TRUE);          PEnset(m_hPE, PEP_bLINESHADOWS, TRUE);          PEnset(m_hPE, PEP_nFONTSIZE, PEFS_MEDIUM);          PEnset(m_hPE, PEP_nGRADIENTBARS, 8);          PEnset(m_hPE, PEP_nDATASHADOWS, PEDS_SHADOWS);          float f = 1.2F;          PEvset(m_hPE, PEP_fFONTSIZEGNCNTL, &f, 1);          PEnset(m_hPE, PEP_nIMAGEADJUSTBOTTOM, 100);                    // Improves metafile export //           PEnset(m_hPE, PEP_nDPIX, 600);          PEnset(m_hPE, PEP_nDPIY, 600);                    // Set Demo's RenderEngine to Gdi Plus //        //  CMDIFrameWnd* pWnd = (CMDIFrameWnd*) AfxGetApp()->GetMainWnd();       //  pWnd->SendMessage(WM_CHANGE_METAFILE, PEPLAYMETAFILEGDIPLUS );                          }      /************************************************************************/      /* 函数名:GetRandom()                                                       * 参数    :      *  a [a,b]中a      *  b [a,b]中b      * 返回值      *  int [a,b]间的随机整数      *      * 作者    :Archie      * 时间    :2012年8月27日                                                */      /************************************************************************/      int CPEView::GetRandom(int a, int b)      {          int i = (rand()%(b-a+1))+a;          return i;      }  
0 0
原创粉丝点击