這一課笨笨給大家介紹另一種具有分層功能的視圖,名為共享X軸視圖。
和上一課的分層視圖相比,共享X軸視圖的特點當然就是所有圖層只有一個X軸,也就是所有數據在X方向的比例尺是一樣的,實際問題中大多數情況都是這樣的,所以笨笨單獨設置了這麼一個視圖類型。
其實還有另外一個區別,就是共享X軸視圖的標題和圖例也是所有圖層共享的,而分層視圖則每個圖層單獨繪制。後面這一點使得分層視圖有時候顯得很詭異,呵呵,而共享X軸視圖就自然多了。
下面以一個實例來介紹共享X軸視圖。
用第一課的方法建立一個VC工程Lesson12。其中WM_CREATE的響應例程如下。
case WM_CREATE: chartWnd.Attach(hWnd, kTypeShareX); chartWnd.GetChart()->ResizePlots(2); double pX[200], pY[200]; int i; for(i=0; i<200; i++) { pX[i] = i+1; pY[i] = (i+1)*(i+1); } chartWnd.GetChart()->AddCurve(pX, pY, 200, 0); for(i=0; i<200; i++) { pY[i] = sin(i*2.0*3.1415926536/200.0); } chartWnd.GetChart()->AddCurve(pX, pY, 200, 1); chartWnd.GetChart()->SetTitle(_T("共享X軸視圖")); break;
共享X軸視圖的代號為kTypeShareX
同學們容易發現,代碼和上一課很類似的。只是讓兩條曲線的X范圍一樣了。
由於調用了數學庫函數,需要包含頭文件。
#include <math.h>
運行效果如圖。
上圖中兩個圖層的縱軸都放在左邊,有點不自然。
其實笨笨還實現了一個左右視圖,這是一個具有兩個圖層的共享X軸視圖,縱軸左右各一個,用起來非常方便,這裡就不仔細介紹了。
這一課也非常簡單。
下節課介紹等高線圖的姊妹篇——雲圖,敬請期待。