如何绘制/绘制任意方程

时间:2012-06-25 20:41:26

标签: c# plot equation

假设解析方程式不是问题,在给定特定画布大小的情况下,如何制作算法绘制任意方程式?如同,获取所有像素的坐标以突出显示?

我试过反复计算给定X的Y,但它看起来很草率。

这不是一个家庭作业问题。

通过绘图我的意思是真的,就像图形计算器如何绘制方程式一样。

2 个答案:

答案 0 :(得分:1)

您可以考虑使用样条曲线,而不是单独绘制每个像素。例如,System.Drawing.GraphicsDrawCurve方法,可以通过多个点绘制平滑曲线(样条曲线)。另外将SmoothingMode设置为AntiAlias

e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

如果可能,请考虑将函数作为lambda表达式传递。这比解析以字符串形式给出的表达式更容易。

public void DrawCurve(PointF[] points, Func<float,float> f)
{
    ...
    float y = f(x);
    ...
}

E.g。

DrawCurve(points, x => (float)Math.Sin(x)/(x * x + 1);

答案 1 :(得分:0)

考虑使用.NET Framework 4. API文档here和技术参考页here中包含的(Windows窗体)DataVisualization Charting库。