Also schreibe ich einen Grafikrechner. Bisher habe ich einen semi-funktionalen Grapher, aber es fällt mir schwer, ein gutes Gleichgewicht zwischen genauen Graphen und glatt aussehenden Kurven zu finden.So implementieren Sie einen Grapher in C#
Die aktuelle Implementierung (semi-Pseudo-Code) sieht wie folgt aus etwas:
for (float i = GraphXMin; i <= GraphXMax; i++)
{
PointF P = new PointF(i, EvaluateFunction(Function, i)
ListOfPoints.Add(P)
}
Graphics.DrawCurve(ListOfPoints)
Das Problem dabei ist, da es nur einen Punkt bei jedem ganzzahligen Wert addiert, Grafiken verzerrt am Ende, wenn ihre Wendepunkte fallen nicht auf ganze Zahlen (zB sin (x)^2).
versuchte ich i durch etwas kleiner (wie 0,1) erhöht wird, die aber die Grafik sieht sehr rau funktioniert.
I C# und GDI + verwenden. Ich habe SmoothingMethod auf AntiAlias eingestellt, das ist also nicht das Problem, wie Sie aus der ersten Grafik sehen können. Gibt es ein Problem mit dem Zeichnen von Kurven mit vielen Punkten? Sollten die Punkte vielleicht genau auf Pixeln liegen?
Ich bin sicher, dass einige von euch schon einmal an etwas sehr ähnlichem gearbeitet haben, also irgendwelche Vorschläge? Wenn Sie schon dabei sind, haben Sie irgendwelche Vorschläge für das Zeichnen von Funktionen mit Asymptoten? z.B. 1/x^2
P.S. Ich bin nicht auf der Suche nach einer Bibliothek, die all dies tut - ich möchte es selbst schreiben.
was meinen Sie mit "der Graph sieht sehr rau aus"? Die Anzahl der Punkte zu erhöhen, ist der Weg zu gehen, um es glatter aussehen zu lassen. Und wenn man die X-Stufen verkleinert (1 -> 0,1) * erhöht * sie. – user492238
Auch ich weiß nicht, was Sie mit "Vorschläge für die Darstellung von Funktionen mit Asymptoten" meinen. Was du erwartest? Wie werden sie anders gehandhabt als andere Graphen? Sie sind nicht. – user492238
Ich habe bearbeitet, um es klarer zu machen. – ian93