假設解析方程不會成爲一個問題,我怎麼才能讓一個算法繪製任意方程,給定一個特定的畫布大小?如在,讓所有像素的座標突出顯示?如何繪製/繪製任意方程
我試過只是反覆計算Y給定X,但它出來看起來馬虎。
這不是一個家庭作業問題。
通過繪圖我的意思是真正的圖形,如圖形計算器如何繪製一個方程。
假設解析方程不會成爲一個問題,我怎麼才能讓一個算法繪製任意方程,給定一個特定的畫布大小?如在,讓所有像素的座標突出顯示?如何繪製/繪製任意方程
我試過只是反覆計算Y給定X,但它出來看起來馬虎。
這不是一個家庭作業問題。
通過繪圖我的意思是真正的圖形,如圖形計算器如何繪製一個方程。
您可以考慮使用樣條曲線,而不是分別繪製每個像素。例如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);
你是什麼意思「看起來馬虎」? –
你的公式來自哪裏?你如何將它們解析爲程序可以理解的東西? – Oded
你看過任何圖形繪圖庫嗎?不需要重新發明輪子。 –