Recurrente Redención

Recurrente Redención

renacimiento y experimentación en el tanscurrir multitudinario
buscar

Curvas de Bézier

Miércoles 19 de Diciembre del 2007, en Flash, Partículas

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.

haga clic dentro del recuadro para activar la demostración, con clics subsecuentes se puede pausar o continuar la demostración

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 puntos 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:

Un comentario:

  1. 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

    DarkSakura, a las 3:08 pm del Lunes 16 de Marzo del 2009

Escriba un comentario:

Puede utilizar las siguientes etiquetas de XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Recurrente Redención orgullosamente utiliza WordPress
Articulos (RSS) | Comentarios (RSS).
Recurrente Redención | LiF | phpBB3 | OmegaFenix
Principal | Contacto
XHTML | CSS
© 2007 Miguel López
Ícono Recurrente Redención