Existen muchas bibliotecas de trazado diferentes, y todas funcionan de manera diferente.
Pero en general, un gráfico requiere datos, generalmente en forma de datos del eje x y eje y.
Incluso si pasas una función simbólica, (por ejemplo, plot(x^2,x=0..10)
), típicamente la computadora discretiza tu dominio, calcula un conjunto finito de vectores, y traza líneas rectas entre esos puntos. Así que (x1,y1) se conecta con (x2,y2); (x2,y2) se conecta con (x3,y3); etc.
A veces, la biblioteca de trazado es lo suficientemente inteligente como para conocer el tamaño de la ventana de visualización y la resolución del monitor, y elige puntos que están suficientemente cerca para que no puedas notar que son una serie de líneas rectas.
Sin embargo, algunas bibliotecas saben que nos gustan las cosas suaves. Así que hacen algún tipo de interpolación spline de los datos para hacerlos más suaves.
Las cosas se vuelven un poco más interesantes cuando hablamos de gráficos vectoriales escalables (SVG). En SVG, la función y/o los datos se pueden convertir en una función vectorial parametrizada. Luego, la biblioteca de trazado traza el vector mientras se desplaza a través de su parametrización, a menudo pintando píxeles directamente.
En los viejos tiempos, las computadoras solo podían mostrar texto en un formato de pantalla fijo. ¿Cómo plotearon las computadoras funciones? ¡Usando caracteres ASCII y colocando los símbolos -, |, \ y / en la ubicación adecuada! ¡Si buscas algunos documentos de ingeniería de los años 60 y 70, incluso podrías encontrar algunos de estos gráficos.
Al final, existen cientos de bibliotecas de trazado, y todas ellas tienen diferentes formas de representar los datos.