假设解析等式不是问题,那么在给定特定画布大小的情况下,我如何创建绘制任意方程的算法?例如,让所有像素的坐标高亮显示?
我试着在给定X的情况下重复计算Y,但结果看起来很草率。
这不是一个家庭作业问题。
我所说的图实际上是指图形,就像一个绘图计算器如何画出一个方程式。
发布于 2012-06-26 04:49:40
考虑使用.NET框架4.API文档here和技术参考页面here中包含的(Windows Forms) API制图库。
发布于 2012-06-26 04:55:06
您可以考虑使用样条曲线,而不是单独绘制每个像素。例如,System.Drawing.Graphics有一个DrawCurve方法,可以通过许多点绘制平滑的曲线(样条曲线)。另外,将SmoothingMode设置为AntiAlias
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);https://stackoverflow.com/questions/11197036
复制相似问题