程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 深入淺出CChart 每日一課——第十三課 似曾相識之雲圖,亂花漸欲迷人眼

深入淺出CChart 每日一課——第十三課 似曾相識之雲圖,亂花漸欲迷人眼

編輯:關於C語言

在第三課中,笨笨向大家展示了CChart繪制等高線圖的功能,用很少的代碼就實現了等高線圖。

這一課用CChart的雲圖功能把第三課的等高線圖修改成雲圖。

按照第一課的方法建立一個VC6工程Lesson13。

在文件Lesson13.cpp中WndProc函數的前面,建立雲圖的場函數。這裡先選擇函數和第三課的函數相同。

double f(double x, double y)
{
	return 1.0/((x-1.0)*(x-1.0)+y*y+1.0);
}
 

修改WM_CREATE的響應函數如下。

case WM_CREATE:
	chartWnd.Attach(hWnd, kTypeContourMap);
	chartWnd.GetChart()->SetFieldFcn(f);
	{
		double xRange[2], yRange[2];
		xRange[0] = -2.0;
		xRange[1] = 2.0;
		yRange[0] = -2.0;
		yRange[1] = 2.0;
		chartWnd.GetChart()->SetPlotRange(xRange, yRange);
	}
	chartWnd.GetChart()->SetTitle(_T("測試雲圖"));
	break;
 

這裡的代碼似曾相識喲,呵呵。

很容易發現,這裡的代碼和第三課相比,除了最後設置標題的那一行外,只有第一句有變化,把kTypeContourLine改成了kTypeContourMap,而後者正是雲圖的代號。

運行程序,效果如圖。

SouthEast


雲圖的顏色比較絢爛,效果的確要比等高線圖好一點,呵呵。

雲圖的圖例和前面課程中看到的不一樣,這是一個漸變的顏色棒。

下面我們把雲圖場函數修改一下,讓它有兩個極大值點,看看CChart顯示的結果對不對。

double f(double x, double y)
{
	return 1.0/((x-1.0)*(x-1.0)+y*y+1.0) + 1.0/((x+1.0)*(x+1.0)+y*y+1.0);
}
 


運行效果如圖。

SouthEast

如同我們的預期,現在的圖像中有兩個極大值點。

本節課笨笨給同學們介紹了CChart的雲圖功能。雲圖和前面介紹的等高線圖各有特色。其實笨笨還實現了一種視圖,把等高線圖和雲圖結合在一起,當然這就完美了。這種新視圖在這裡就不詳述了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved