0

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

我试过在给定 X 的情况下反复计算 Y,但结果看起来很草率。

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

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

4

2 回答 2

1

您可以考虑使用样条曲线,而不是单独绘制每个像素。例如System.Drawing.Graphics,有一种DrawCurve方法可以通过多个点绘制平滑曲线(样条曲线)。另外设置SmoothingModeAntiAlias

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

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

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

例如

DrawCurve(points, x => (float)Math.Sin(x)/(x * x + 1);
于 2012-06-25T20:55:05.610 回答
0

考虑使用 .NET Framework 4 中包含的(Windows 窗体)数据可视化图表库。此处的 API 文档此处的技术参考页面。

于 2012-06-25T20:49:39.807 回答