Code Monkey home page Code Monkey logo

splinter's Introduction

Splinter

Splinter is a spline library with proven and tested curve and spline algorithms.


Motiviation

There are a lot of resources out there that provide information on quadratic and cubic curves, but many of them contain information that either:

  • is simply incorrect
  • is correct but not proven
  • is correct and proven but inefficient

The goal of splinter is to provide not only a set of robust and efficient algorithms, but to also provide proofs along the way.

Highlights

Splinter provides functions and proofs for:

  • optimal approximations of higher-order curves by lower-order curves, with error margins
  • a closed-form solution for the length of a quadratic curve
  • an exact calculation of the nearest point on a quadratic curve
  • a robust iterative algorithm to parameterize a quadratic curve by length

Quadratics vs Cubics

When possible, splinter will provide optimal algorithms for both quadratic and cubic curves. However, when such algorithms are not available it is typically best to choose error margins, subdivide, and approximate the cubic with quadratics.

Where are the proofs?

Proofs are located in markdown files, split up by category. Look in cubic_curves.md and quadratic_curves.md. You'll want a markdown viewer that supports rendering LaTeX math.

License

Licensed under the MIT license.

splinter's People

Contributors

djkoloski avatar

Stargazers

YLH avatar

Watchers

 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.