¿Cómo dibujar una curva suave a través de N puntos usando JavaScript HTML5 Canvas?

Para una aplicación de dibujo, guardo las coordenadas de movimiento del mouse en una matriz y luego las dibujo con lineTo. La línea resultante no es suave. ¿Cómo puedo producir una sola curva entre todos los puntos reunidos? Busqué en Google pero solo encontré 3 funciones para dibujar líneas:...