假设解析方程式不是问题,在给定特定画布大小的情况下,如何制作算法绘制任意方程式?如同,获取所有像素的坐标以突出显示?
我试过反复计算给定X的Y,但它看起来很草率。
这不是一个家庭作业问题。
通过绘图我的意思是真的,就像图形计算器如何绘制方程式一样。
答案 0 :(得分:1)
您可以考虑使用样条曲线,而不是单独绘制每个像素。例如,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);
...
}
E.g。
DrawCurve(points, x => (float)Math.Sin(x)/(x * x + 1);
答案 1 :(得分:0)