轉(zhuǎn)帖|其它|編輯:郝浩|2010-10-14 11:19:18.000|閱讀 4386 次
概述:TeeChart Pro是一款提供上百種2D和3D圖形風格、40種數(shù)學和統(tǒng)計功能、加上無限制的軸和22種調(diào)色板組件供選擇。提供上百種2D和3D圖形風格、40種數(shù)學和統(tǒng)計功能、加上無限制的軸和22種調(diào)色板組件供您選擇。本文將介紹TeeChart在VC中實時曲線繪制的應用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
一:TeeChart介紹
TeeChart Pro是一款提供上百種2D和3D圖形風格、40種數(shù)學和統(tǒng)計功能、加上無限制的軸和22種調(diào)色板組件供選擇。提供上百種2D和3D圖形風格、40種數(shù)學和統(tǒng)計功能、加上無限制的軸和22種調(diào)色板組件供您選擇。提供上百種2D和3D圖形風格、40種數(shù)學和統(tǒng)計功能、加上無限制的軸和22種調(diào)色板組件供選擇,TeeChart還包括一個強大的、完整的編輯對話框,幾乎可用于每個組件和子組件,允許你快速的設計復雜圖表應用程序。圖表編輯器通過TeeCommander組件進一步得到增強,它提供一次點擊訪問圖表編輯器和共同特征。
二:主要特性
●是32位ActiveX控件,可以在VB、Delphi、MS Office等多種編程環(huán)境下使用;
●可以直接存取ODBC數(shù)據(jù)源;
●具有11種標準的和9種擴展的Series類型;
●提供16種統(tǒng)計函數(shù);
●支持2D和3D效果,支持縮放和滾動;
●可以將圖表輸出為Bitmap、Metafile、JPEG 或者Native Chart 格式;
●支持用戶繪圖和打印;
●是集成化的設計工具;
●提供例子和在線幫助。
三:TeeChart類的屬性和方法
TeeChart的主類是TChart。TChart中使用了眾多的屬性方法和事件,隨著版本的升級將越來越豐富。這使得TChart具有非常強大的功能。本文僅簡單地介紹其中一些重要類的屬性和方法。
●TChart.Height:圖表的高度(像素);
●TChart.Width:圖表的寬度(像素);
●TChart.Header:圖表的題頭(Ititles類);
●TChart.Series:序列(Series類的數(shù)組);
●TChart.Axes:坐標軸(Iaxes類);
●TChart.Legend:圖例(Legend類);
●TChart.Panel:面板(Ipanel類);
●TChart.Canvas:畫布(Canvas類)。
Series是要顯示的數(shù)據(jù)的主體。在一個圖表中可以有一個或多個序列,每個序列可以有不同的顯示類型,如Line、Bar、Pie等等。
Axes控制圖表坐標軸的屬性,在缺省的情況下,坐標軸可以自動地根據(jù)不同的數(shù)據(jù)設置好標度范圍和間隔,當然也可以手工調(diào)整。
Legend控制圖表的圖例顯示。Legend是圖表中的一個長方形的用來顯示圖例標注的區(qū)域。可以標注Series的名稱或者Series中的項目和數(shù)值。
Panel可以設置圖表的背景。可以使用漸變的顏色或者圖像文件作為整個圖表的背景
Canvas可以讓設計者繪制自己的圖形。使用方法和Delphi中的Canvas一樣。有TextOut、LineTo、Arc等各種畫圖的方法可以調(diào)用。
TChart的一些屬性實際上是其他類的變量,這些類又具有自己的屬性和方法。如Ititles類又具有Text、Color、Font等屬性,我們可以用這些屬性來設置題頭的文本、顏色和字體。
TeeChart和其他的圖表控件相比,有一個非常重要的特點是TeeChart可以把圖表保存為一個JPEG格式的圖形文件。調(diào)用格式如下:
TChart.Export.SaveToJPEGFile (FileName,Gray,Performance,Quality,Width,Height)
其中FileName是JPEG文件的保存路徑和文件名,路徑應該是操作系統(tǒng)中的絕對路徑,而不是IIS中的相對路徑,IIS對相應的保存目錄應該具有寫權限。Gray指明是否保存為黑白圖像。Performance指明JPEG是生成質(zhì)量優(yōu)先還是速度優(yōu)先。Quality是一個0到100的整數(shù),100時JPEG質(zhì)量最好,但文件最大;Quality越小則生成的文件越小,但圖像質(zhì)量也隨之下降。
四:VC
對于Visual C++就不做多的介紹了,因為發(fā)現(xiàn)也沒有什么特別的語言去介紹該語言的功能。這里采用Visual C++6,TeeChart版本為5來實現(xiàn)。
五:實現(xiàn)辦法
一)導入vc中
1) 將TeeChart5進行系統(tǒng)注冊。
2) 在VC中選擇 Project / Add to Project / Components And Controls/下選擇Registered ActiveX Controls,然后找到TeeChart Pro Activex control v5。選擇確定即可,這樣在我們的項目中出現(xiàn)很多的類,同時在控件區(qū)域會出現(xiàn)
二)屬性設置
單擊右鍵,選擇Edit
當然,也可以根據(jù)要求,在語言里面進行處理。但是也必須包含以下的頭文件
#include "tchart.h"
#include "series.h"
#include "valuelist.h"
#include "axes.h"
#include "axis.h"
#include "pen.h"
#include "axislabels.h"
#include "teefont.h"
#include "axistitle.h"
#include "aspect.h"
#include "fastlineseries.h"
#include "titles.h"
#include "fastlineseries.h"
#include "panel.h"
#include "legend.h"
#include "tools.h"
#include "toollist.h"
#include "annotationtool.h"
設定信息如下(該CHART控件名稱為:m_Chart)
//清空chart
m_Chart.ClearChart();
m_Chart.RemoveAllSeries();
//CHART框架
m_Chart.GetFrame().SetVisible(true);
m_Chart.GetFrame().SetColor(RGB(255,255,255));
/*根據(jù)自定義背景色來設置,我這里設定背景色為白色,所以也設定為邊框為白色,這樣就看不到的,如果不加入,該顏色就默認為黑色的
//重要,否則出現(xiàn)邊框為默認黑色的.如果要改變背景顏色,那么對應的此處顏色要進行更改的
*/
m_Chart.GetPanel().SetColor(RGB(255,255,255));
m_Chart.GetLegend().SetVisible(false);
// 添加3條曲線
m_Chart.AddSeries(0);
m_Chart.AddSeries(0);
m_Chart.AddSeries(0);
// 設置3條曲線的坐標軸
m_Chart.Series(0).SetVerticalAxis(0);
m_Chart.Series(1).SetVerticalAxis(0);
m_Chart.Series(2).SetVerticalAxis(0);
m_Chart.Series(0).SetHorizontalAxis(1);
m_Chart.Series(1).SetHorizontalAxis(1);
m_Chart.Series(2).SetHorizontalAxis(1);
m_Chart.Series(0).GetXValues().SetDateTime(true);
m_Chart.Series(1).GetXValues().SetDateTime(true);
m_Chart.Series(2).GetXValues().SetDateTime(true);
// 設置3條曲線的顏色
m_Chart.Series(0).SetColor(RGB(255,0,0));
m_Chart.Series(1).SetColor(RGB(0,255,0));
m_Chart.Series(2).SetColor(RGB(0,0,255));
// 設置3條曲線的名稱
m_Chart.Series(0).SetName("ZongFengGuan");
m_Chart.Series(1).SetName("LieCheGuan");
m_Chart.Series(2).SetName("ZhiDongGang");
//-----設定最大最小值
m_Chart.GetAxis().GetBottom().SetMinMax(minStar,minEnd);
// minStar,minEnd要求自己去添加,這里用的是時間的范圍
//一般為起始時間和結(jié)束時間的范圍的
// 連接數(shù)據(jù)庫
CXDatabasedb;
_RecordsetPtrpRs;
CStringstrSql;
if(!db.Connect("ACCESS","",GetRootDir()+"\\db1.mdb","",""))
{
AfxMessageBox("連接數(shù)據(jù)庫失敗!");
return;
}
strSql.Format("select * from %s where RunTime>=#%s# and RunTime<=#%s#",m_strTableName,strMinTime,strMaxTime);
pRs = db.ExecuteSql(strSql);
while(pRs!=NULL && !pRs->adoEOF)
{
// 添加數(shù)據(jù)點
double dTime = oletime2chttime(COleDateTime(pRs->GetCollect("RunTime")));
double dZFGPress = var2dbl(pRs->GetCollect("ZFGPress"));
double dLCGPress = var2dbl(pRs->GetCollect("LCGPress"));
double dZDGPress = var2dbl(pRs->GetCollect("ZDGPress"));
m_Chart.Series(0).AddXY(dTime,dZFGPress,NULL,RGB(255,0,0));
m_Chart.Series(1).AddXY(dTime,dLCGPress,NULL,RGB(0,255,0));
m_Chart.Series(2).AddXY(dTime,dZDGPress,NULL,RGB(0,0,255));
pRs->MoveNext();
}
// 斷開數(shù)據(jù)庫連接
db.Disconnect();
后記
其實,TeeChart的功能非常強大。我們可以在此建立豐富的圖形表示。下面是在一個工程當中從串口中獲取數(shù)據(jù)分析得到的電流和能耗的實現(xiàn)的實時曲線繪制。實現(xiàn)兩軸控制顯示!
慧都2010促銷季開幕,TeeChart for .NET 8折促銷!詳情咨詢:400-700-1020或023-66090381活動詳情://ke049m.cn/zh-CN/Products_cn/TeeChart_chinese.html
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:網(wǎng)絡轉(zhuǎn)載