深入浅出CChart 每日一课——快乐高四第二十三课 异次元之门,移形换影之C#再探

上节课我们已经对CChart在C#中的应用进行了详细介绍,相信大家都已经掌握了。

这节课呢,我们对这个问题再复习一下。

虽然是复习,那也不能简单重复啊,我们就利用CChart在C#里面画一个等高线图好了。

画等高线图时,需要提供一个场函数。C++的场函数是一个函数指针。C#里面,没有函数指针了,但可以利用委托来实现函数指针的功能,这就是这一课唯一的知识点了。

第一步,仿照上一课建立一个C#项目,名字是LessonA23,并添加Chart_CSharp.cs文件。

第二步,建立一个场函数,和一个委托。

public static double myFieldFunction(double x, double y)
{
    return 1.0 / ((x - 1.0) * (x - 1.0) + y * y + 1.0);
}

ChartAncestor.DelegateFieldFunction func = new ChartAncestor.DelegateFieldFunction(myFieldFunction);

这里,DelegateFieldFunction是笨笨在ChartAncestor里面定义的,直接拿来用就可以了。

[UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
public delegate double DelegateFieldFunction(double a, double b);

第三步,通过Form1的属性对话框,添加Load行为。

private void Form1_Load(object sender, EventArgs e)
{
    chart = new ContourChart(this.Handle);

    chart.SetFieldFunction(func);
    chart.SetPlotRange(-3.0, 3.0, -3.0, 3.0);
    chart.SetContourLineNum(25);
    chart.SetContourPrecision(6);

    chart.SetTitle("测试C#等高线图");
}

第四步,通过Form1的属性对话框,添加布局操作Resize。

private void Form1_Resize(object sender, EventArgs e)
{
    chart.ReDraw();
}

终于完成了!

C#之旅返程了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值