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

废话少说, 直接上代码



    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值