Así que estoy escribiendo una calculadora gráfica. Hasta ahora tengo un grapher semi funcional, sin embargo, estoy teniendo dificultades para lograr un buen equilibrio entre gráficos precisos y curvas de aspecto suave.Cómo implementar un grapher en C#
La implementación actual (semi-pseudo-código) se ve algo como esto:
for (float i = GraphXMin; i <= GraphXMax; i++)
{
PointF P = new PointF(i, EvaluateFunction(Function, i)
ListOfPoints.Add(P)
}
Graphics.DrawCurve(ListOfPoints)
El problema con esto es ya que sólo añade un punto a cada valor entero, gráficos terminan distorsionada cuando sus puntos de inflexión no caiga en enteros (por ejemplo, sin (x)^2).
he intentado incrementar i por algo más pequeño (como 0.1), que funciona, pero el gráfico se ve muy áspera.
estoy usando C# y GDI +. Tengo SmoothingMethod configurado en AntiAlias, por lo que ese no es el problema, como se puede ver en el primer gráfico. ¿Hay algún problema con dibujar curvas con muchos puntos? ¿Los puntos quizás deberían estar ubicados exactamente en píxeles?
Estoy seguro de que algunos de ustedes han trabajado en algo muy similar antes, así que ¿alguna sugerencia? Mientras lo hace, ¿tiene alguna sugerencia para graficar funciones con asíntotas? p.ej. 1/x^2
P.S. No estoy buscando una biblioteca que haga todo esto, quiero escribirla yo mismo.
¿Qué quiere decir con "el gráfico se ve muy duro"? aumentar el número de puntos es el camino a seguir, para que se vea más suave. Y hacer que los X-steps sean más pequeños (1 -> 0.1) * no * los aumenta. – user492238
Además, no sé a qué se refiere con "sugerencias para funciones gráficas con asíntotas". ¿Que esperas? ¿Cómo se manejan de manera diferente a otros gráficos? Ellos no son. – user492238
He editado para que quede más claro. – ian93