Skip to content

Herramientas para trabajar con colores, especiamente en plataformas Arduino

Notifications You must be signed in to change notification settings

MrAkaki/arduino_ColorTools

Repository files navigation

AVB Color tools

Libreria para trabajar con animacion(HSV) de colores de forma sensilla.

##Que incluye? Por el momento 2 estructuras de datos(RGB y HSV) que representan el modelo RGB y HSV Estos tienen sobrecarga de operadores para que puedas pasar de uno a otro con solo hacer un =

Algunos ejemplos del uso para demostrar la simplicidad y entender como usarlo.

Para que?

Cuando ocupas hacer cambios de color de forma mas sencilla usar el modelo de color HSV(https://en.wikipedia.org/wiki/HSL_and_HSV) es mas conveniente(desde mi perspectiva) Y por que convertir a RGB, normalmente los pixeles, las tiras de leds, las matrices y las pantallas se basan el en modelo RGB.

Codigo

Estructuras de datos


class HSV {
  public:
    float h;
    // variable para Saturation, saturacion
    float s;
    // variable para Value, valor
    float v;

    //Constructor por defecto
    HSV();

    //Constructor con parametros
    HSV(float h,float s, float v);

    //Contructor de copia
    HSV(const HSV &otro);

    /**
    * Transforma del modelo de color HSV al modelo de color RGB.
    * @param HSV &input, entrada HSV a tranformar.
    * @param RGB *responce, salida RGB tranformado.
    **/
    void toRGB(RGB& otro);
    //Sobrecarga de operador =
    HSV& operator=(const HSV &otro);
    //Sobrecarga de operador =
    HSV& operator=(const RGB &otro);
    //Sobrecarga de operador =
    HSV& operator=(const uint32_t color);
};

class RGB {
  public:
    // variable para red, rojo
    uint8_t r;
    // variable para green, verde
    uint8_t g;
    // varialbe para blue, azul
    uint8_t b;

    //Contructor por defecto
    RGB();

    //Contructor con parametros
    RGB(uint8_t& r,uint8_t& g, uint8_t& b);

    //Contructor de copia
    RGB(const RGB &otro);

    /**
     * Transforma del modelo de color RGB al modelo de color HSV.
     * @param RGB &input, entrada RGB a tranformar.
     * @param HSV *responce, salida HSV tranformado.
     **/
    void toHSV(HSV& otro);

    //Sobrecarga de operador =
    RGB& operator=(const RGB &otro);
    //Sobrecarga de operador =
    RGB& operator=(const HSV &otro);
    //Sobrecarga de operador =
    RGB& operator=(const uint32_t color);

};

##Agradecimientos y atribución Esta biblioteca incluye los archivos NeoPixel.h NeoPixel.cpp & esp8266.c estos archivos son parte de la biblioteca Adafruit_NeoPixel, los archivos NeoPixel.h y NeoPixel.cpp fueron modificados para aceptar las estructuras HSV y RGB en la funcion setPixelColor.



Creative Commons License
AVB Color Tools by Alex Vargas Benamburg
is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

About

Herramientas para trabajar con colores, especiamente en plataformas Arduino

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published