グラフ作成の電卓を作成しています。これまでのところ、私は半機能的なグラファーを持っていましたが、正確なグラフと滑らかな見た目のカーブをうまくバランスさせるのは苦労しています。C#でグラファーを実装する方法
現在の実装(半擬似コード)は次のようになります
for (float i = GraphXMin; i <= GraphXMax; i++)
{
PointF P = new PointF(i, EvaluateFunction(Function, i)
ListOfPoints.Add(P)
}
Graphics.DrawCurve(ListOfPoints)
これに伴う問題は、それが唯一のすべての整数値にポイントを加算するため、グラフは歪ん終わるとき、そのターニングポイント整数にならないでください(例:sin(x)^ 2)。
私はC#とGDI +を使用しています。 SmoothingMethodがAntiAliasに設定されているので、最初のグラフからわかるように、問題はありません。多くの点を描く曲線に問題がありますか?ポイントはピクセル上に正確に配置する必要がありますか?
私はあなたの前で何か非常によく似た何かに取り組んできたと思いますので、どんな提案ですか?あなたがそれをしている間、漸近線を使って関数をグラフ化するための提案はありますか?例えば1/x^2
P.S.私はこれをすべて行うライブラリを探していません - 私はそれを自分で書きたいと思います。
「グラフは非常に荒く見えますか?ポイントの数を増やすことは、より滑らかに見えるように行く方法です。そして、Xステップを小さくする(1→0.1)*を増やします。 – user492238
また、「漸近線で関数をグラフ化するための提案」とはどういう意味ですか?何を期待していますか?彼らはどのように他のグラフと異なった扱いをしていますか?ではない。 – user492238
私はそれをもっと明確にするために編集しました。 – ian93