深入浅出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的云图功能。云图和前面介绍的等高线图各有特色。其实笨笨还实现了一种视图,把等高线图和云图结合在一起,当然这就完美了。这种新视图在这里就不详述了。

 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值