El sistema de rastros que está implementado dentro de LiF inicialmente trabajaba solamente trazando líneas rectas. En cada ejecución se recibe un punto a donde se dibuja una línea recta desde el punto anterior hasta el punto recién recibido. Con la nueva implementación se agregó el uso de curvas de Bézier de forma que el trazado fuera mucho más suave. En la siguiente demostración se puede ver una comparación del trazado de rastros utilizando curvas de Bézier o líneas rectas.
Un pequeño problema al hacer la implementación de las curvas de Bézier fue como trazar dichas curvas a partir de una serie de puntos. La solución, que después escribiré de ella, no es extremadamente compleja pero al parecer cumple su objetivo. En términos simples, para cada conjunto de tres puntos se traza una curva de Bézier que va desde el punto medio entre los primeros dos puntos, hasta el punto medio entre los dos puntos finales, teniendo como anclaje el segundo punto.
Al estar haciendo una ilustración para esto me percaté de que el algoritmo que utilizo (ilustrado como Bézier 1) tiene resultados muy angulares (es decir, las curvas generados se adhieren demasiado a la recta provocando que las curvas sean cortas y afiladas). Al investigar un poco más sobre el funcionamiento de las curvas de Bézier me percaté que probablemente el algoritmo que utilizo no genere los resultados que deseaba. Intenté hacer una aproximación de cómo yo pensé funcionaría correctamente el algoritmo pero el resultado (ilustrado como Bézier 2) tampoco se asemeja a lo que esperaba. Y peor aún, ninguno de los dos se asemeja a lo que veo en la actual implementación.
curvas de Bézier a partir de un conjunto de puntos
Así qué básicamente me espera desarmar un poco esto para ver si algo está efectivamente mal planteado, o si quizás accidentalmente ya di con la solución correcta.
Para la demostración mostrada arriba se utilizó LiF versión 0.2. Como siempre, los archivos están a continuación:
hola
tengo una gran duda,cuales son las coordenas para obtener una “b” mediante curvas de bezier? tengo que presentar un proyecto sobre esto y no las hallo
espero me pudiera ayudar
gracias, hasta luego