原創(chuàng)|使用教程|編輯:郝浩|2013-04-07 14:44:20.000|閱讀 980 次
概述:本文用工控圖表控件ProEssentials介紹如何創(chuàng)建一個簡單的極坐標圖表。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
極坐標圖表是一種圓形極線圖,上面的數(shù)據(jù)點使用角度和到中心點的距離來表示。 X軸位于圓圈的邊界上,Y 軸連接圓心與 X 軸,圖表上的每一個數(shù)據(jù)點對應(yīng)一對X,Y值。下面我用工控圖表控件ProEssentials介紹如何創(chuàng)建一個簡單的極坐標圖表。
void CPEView::CreateSimplePolar() { //! 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. // // Polar Graph's contain both YData and XData. // RECT rect; GetClientRect( &rect ); // Construct Object // m_hPE = PEcreate(PECONTROL_PGRAPH, WS_VISIBLE, &rect, m_hWnd, 1001); PEnset(m_hPE, PEP_nSUBSETS, 2); PEnset(m_hPE, PEP_nPOINTS, 360); int p; float f1, f2; for (p=0; p<360; p++) { f1 = (float) p; f2 = (float) 150 * sin((double) p * 0.054F); PEvsetcellEx(m_hPE, PEP_faXDATA, 0, p, &f1); 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; 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("Polar Chart")); PEszset(m_hPE, PEP_szSUBTITLE, TEXT("")); // no subtitle 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); // Set line types int nTypes[] = { PELT_MEDIUMSOLID, PELT_MEDIUMSOLID }; PEvset(m_hPE, PEP_naSUBSETLINETYPES, nTypes, 2); // Set point types int nPTypes[] = { PEPT_DOTSOLID, PEPT_PLUS }; PEvset(m_hPE, PEP_naSUBSETPOINTTYPES, nTypes, 2); // subset colors DWORD dwArray[2] = { PERGB(128, 198,0,0), PERGB(128, 0, 198, 0) }; PEvset( m_hPE, PEP_dwaSUBSETCOLORS, dwArray, 2); // subset 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 ); } //***************************************************************************
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件