Функция возвращающая RGB значения

Тема в разделе "Arduino & Shields", создана пользователем Karabas, 12 ноя 2015.

  1. Karabas

    Karabas Гик

    Нужна помощь в написании функции которая принимает координату на цветовом круге (0-360) и возвращает значения RGB. Где то я видел упоминание про эту формулу, а то не хочеться хардкодить все 360 значений :D

    Пока что такой набростокб немного дописал. Как то громоздко, и еще не проверял как оно фунциклирует
    Код (C++):
      int red;
      int green;
      int blue;

    void rgbValue(int pos)
    {
      int point = pos; //map(pos, 0, 360, 0, 252);
      if(point < 60)
      {
        int tmpGreen = map(point, 0, 60, 0, 255);
        red = 255;
        green = tmpGreen;
        blue = 0;
      }
      if(point > 60 && point < 120)
      {
        int tmpRed = map(point, 60, 120, 0, 255);
        red = 255-tmpRed;
        green = 255;
        blue = 0;
      }
      if(point > 120 && point < 180)
      {
        int tmpBlue = map(point, 120, 180, 0, 255);
        red = 0;
        green = 255;
        blue = tmpBlue;
      }
      if(point > 180 && point < 240)
      {
        int tmpGreen = map(point, 180, 240, 0, 255);
        red = 0;
        green = 255-tmpGreen;
        blue = 255;
      }
      if(point > 240 && point < 300)
      {
        int tmpRed = map(point, 240, 300, 0, 255);
        red = tmpRed;
        green = 0;
        blue = 255;
      }
        if(point > 300 && point < 360)
      {
        int tmpBlue = map(point, 300, 360, 0, 255);
        red = 255;
        green = 0;
        blue = 255-tmpBlue;
      }
     
     
    Последнее редактирование: 12 ноя 2015
  2. Tomasina

    Tomasina Сушитель лампочек Модератор