方程式の解析が問題にならないことを前提として、特定のキャンバスサイズを指定して、任意の方程式をプロットするアルゴリズムを作成するにはどうすればよいですか?のように、ハイライトするすべてのピクセルの座標を取得しますか?
Xを指定してYを繰り返し計算してみましたが、だらしなく見えます。
これは宿題の問題ではありません。
プロットとは、グラフ電卓が方程式をプロットする方法のように、実際にはグラフを意味します。
各ピクセルを個別に描画する代わりに、スプライン曲線の使用を検討できます。System.Drawing.Graphics
たとえば、いくつかの点を通る滑らかな曲線(スプライン)を描画するメソッドDrawCurve
があります。さらに、をに設定SmoothingMode
しますAntiAlias
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
可能であれば、関数をラムダ式として渡すことを検討してください。これは、文字列として指定された式を解析するよりも簡単です。
public void DrawCurve(PointF[] points, Func<float,float> f)
{
...
float y = f(x);
...
}
例えば
DrawCurve(points, x => (float)Math.Sin(x)/(x * x + 1);