Giter Club home page Giter Club logo

splines_ws's Introduction

Taller de splines

Propósito

Estudiar algunos tipos de curvas paramétricas y sus propiedades.

Tarea

Implemente las curvas cúbicas naturales, de Hermite y Bezier (cúbica y de grado 7) Implemente las curvas cúbicas naturales, de Hermite y Bezier (cúbica y de grado 7), de acuerdo a las indicaciones del sketch adjunto.

Sugerencia: Como las curvas de Hermite y cúbica de Bezier requieren varias secciones, reacomode los puntos de control para que su continuidad sea C1. Ver acá y propiedad 4 de acá.

Profundización

Represente los boids del FlockOfBoids mediante superficies de spline.

Integrantes

Máximo 3.

Complete la tabla:

Integrante github nick
Laura Paola Cerón Martinez lpceronm
Camilo Andrés Dajer Piñerez trum7

Explicación

En el presente taller se realizo la implementación de las siguientes curvas:

  • Curvas cúbicas naturales:

    Una curva cúbica es una curva que se encuentra construida de polinomios de tercer orden por partes que pasan a través de un conjunto de m puntos de control. Para nuestro caso de estudio se poseen 4 puntos de control.

    Basa en la siguiente referencia, se diseño un sistema de ecuaciones triangular, para hallar las derivadas correspondientes a cada segmento de polinomio. Con estos resultados fue posible hallar los coeficientes aij,bij,cij,dij donde i representa la coordenada en el espacio y j representa el segmento de la curva a interpolar.

    image

    Dando como resultado la siguiente:

    • Con 4 puntos de control: image

    • Con 8 puntos de control: image

    Como se puede observar, la ecuación funciona para m puntos de control.

  • Curvas de Hermite:

    Estas curvas son una especificación de las curvas naturales, las cuales buscan interporlar segmentos de un polinomio de manera continua.

    Se busca que estas curvas posean una continuidad C1. El polinomio interpolador viene dado de manera parametrizada, donde el parametro u varia entre 0 y 1, por lo cual si el parametro tiene un intervalo mas pequeño, la curva sera mucho más precisa.

    image

  • Curvas de Bezier (cúbica y de grado 7):

    Dados unos puntos de control, que forman un poligono de control, se busca con Bezier encontrar una curva que se encuentre dentro del area del poligono, que trace la trayectoria de los 4 puntos.

    Para hallar el polinomio interpolador que cumpla con esta condición, se hace uso del algoritmo de De Casteljau, el cual es un metodo recursivo para evaluar polinomios.

    image

    El algoritmo puede ser usado en 2 o más curvas de Bezier, dado un punto arbitrario dentro de las mismas.

    Dando como resultado lo siguiente:

    • Con 4 puntos de control: image

    • Con 8 puntos de control: image

Conclusión

Despues de realizar diferentes pruebas, cambiando las curvas y el numero de puntos de control, pudimos concluir de manera subjetiva, que la curva de hermite, hace una aproximación mas precisa a la curva a representar.

Referencias

Entrega

  • Modo de entrega: Haga fork de la plantilla e informe la url del repo en la hoja urls de la plantilla compartida (una sola vez por grupo). Plazo: 6/5/18 a las 24h.

splines_ws's People

Contributors

nakednous avatar

Watchers

James Cloos avatar Laura Cerón M avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.