Giter VIP home page Giter VIP 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), 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
Andres Rondon amrondonp
Raul Ramirez raulramirezp
Juan Carlos Gama JuanCarlosUNAL

Ejecución

Se usó la libreria Jblas para facilitar algunas operaciones algebraicas ( como hallar inversa de una matriz nxn ), la puede instalar como se describe en la página web oficial ó si usa linux:

  • Ubuntu:
    sudo apt-get install jblas
    
  • Fedora:
    sudo dnf install jblas
    

Una vez instalada la librería, procedemos a:

  • Acceder a la carpeta del sketchbook y entrar el directorio libraries
  • Allí crear los directorios recursivamente así: /org/jblas/library
  • Copiar el archivo jblas.jar a ese nuevo directorio.
  • Si usa Linux se debería ver algo así:
~/sketchbook/libraries/org/jblas/library/jblas.jar

El archivo jblas.jar se encuentra en en el directorio jblas adjunto.

Conclusiones

  • En la implementación del interpolador de Natural Cubic Splines, se tuvo dificultades a la hora de realizar la implementación, dado que en la literatura que se encuentra en internet, la mayoria de definiciones de esta se dan para interpolar una serie de puntos en 2D, e inicialmente se pensó que la generalización a 3D podría resultar más compleja, luego nos dimos cuenta que en realidad cada componente del nuevo punto en el espacio, calculado por el polimonio, era una implementación uni-dimensional.

  • Se pudo observar que la curva obtenida con el algoritmo de Natural Cubic Spline, era más apróximada a la generada por el algoritmo de Hermite.

  • Se entendió como implementar uniones entre grupos de interpolaciones para que produzca una curva suave, creando o modificando los puntos de control del método de interpolación. Incluso es posible cambiar estos puntos de control para que cambiar el aspecto de paso de un grupo de interpolación a otro ya que, no siempre es deseable tener un paso suave.

  • Se tuvieron algunas dificultades al momento de graficar las líneas debido a que se estaban redondeando las coordenadas de estas.

  • Inicialmente, las derivadas del método de Hermite estaban siendo calculadas erroneamente. Lo cual, daba como resultado unas curvas con uniones no suaves en los puntos de interpolación. Afortunadamente, se logró identificar el problema subyacente y corregir adecuadamente la implementación, la cual, entre otras cosas, fue bastante similar a la representación proveida por el profesor.

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: 29/4/18 a las 24h.

splines_ws's People

Contributors

amrondonp avatar juancarlosunal avatar nakednous avatar raulramirezp avatar

Watchers

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