本文主要是介绍深入浅出CChart 每日一课——第十三课 似曾相识之云图,乱花渐欲迷人眼,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在第三课中,笨笨向大家展示了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);chartWnd.GetChart()->SetPlotRange(-2.0, 2.0, -2.0, 2.0);chartWnd.GetChart()->SetTitle(_T("测试云图"));break;
这里的代码似曾相识哟,呵呵。
很容易发现,这里的代码和第三课相比,除了最后设置标题的那一行外,只有第一句有变化,把kTypeContourLine改成了kTypeContourMap,而后者正是云图的代号。
运行程序,效果如图。
云图的颜色比较绚烂,效果的确要比等高线图好一点,呵呵。
云图的图例和前面课程中看到的不一样,这是一个渐变的颜色棒。
下面我们把云图场函数修改一下,让它有两个极大值点,看看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);
}
运行效果如图。
如同我们的预期,现在的图像中有两个极大值点。
本节课笨笨给同学们介绍了CChart的云图功能。云图和前面介绍的等高线图各有特色。其实笨笨还实现了一种视图,把等高线图和云图结合在一起,当然这就完美了。这种新视图在这里就不详述了。
这篇关于深入浅出CChart 每日一课——第十三课 似曾相识之云图,乱花渐欲迷人眼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!