在WinForms图片框中绘制多条曲线

时间:2011-03-20 00:37:46

标签: c# winforms drawing draw

我正在开发一个程序,我想在WinForms应用程序中绘制二极管曲线。我有一个二极管名称列表,我有你的点,你可以在图片的右侧看到。即电压为X,电流为Y(曲线包含50个点)。

我想要做的是从我的情节中列出的列表中选择一个或多个二极管。你看到的只是一个充满bmp的图片框。我知道这不是一个可靠的解决方案,所以我问你最好的做法是什么?我不知道任何可以让我这样做的好组件。所以我只需要知道什么是这项任务最好的approuch?

A quick view of what I want

二极管曲线类似于:

Diode curve

我的程序中可能有多达100个二极管曲线,通过在列表中单击它们来绘制它们(单个或多个)。

那么你的想法是什么?

更新

重要的是通过取消曲线中的一个引脚,它的曲线应该从图中删除!

我正在使用以下代码绘制您所看到的轴:

    Bitmap xyCords = new Bitmap(500, 500);
Graphics g = Graphics.FromImage(xyCords);
g.DrawLine(penAxis, 250, 0, 250, 500);
g.DrawLine(penAxis, 0, 250, 500, 250);
curveBox.Image = xyCords;

以后如果我制作了一个新的图形,我可以将其添加为:

curveBox.Image += newGraphic;

**如果有任何组件或某些东西已经可以做我想要的,请告诉我。或者告诉我一个好方法!谢谢!

1 个答案:

答案 0 :(得分:3)

尝试使用Graphics.DrawCurve。您只需将所需的所有点放入数组中,然后将其和笔传递给方法。

修改 在代码之后添加此代码以向自己证明两个图表共存。要擦除其中一个,只绘制相同的点,但在位图的背景颜色(测试它,我不记得它是什么)。

Point[] ptarray = new Point[3];
ptarray[0] = new Point(250, 250);
ptarray[1] = new Point(300, 300);
ptarray[2] = new Point(350, 400);

Pen pengraph = new Pen(Color.Green, 0.75F);
g.DrawCurve(pengraph, ptarray);

Point[] ptarray2 = new Point[3];
ptarray2[0] = new Point(100, 100);
ptarray2[1] = new Point(200, 150);
ptarray2[2] = new Point(250, 250);

Pen pengraph2 = new Pen(Color.Yellow, 1.25F);
g.DrawCurve(pengraph2, ptarray2);