[CC2017] [CS6] Рандомизация цвета.

Тема в разделе "Adobe Illustrator", создана пользователем КоньЕстДетей, 6 янв 2017.

  1. Добрый день, граждане!

    Мне давеча понадобилось решить, казалось бы, простую задачу, но ручками это делается очень долго, поэтому вопрошаю к вам, авось найдется рыцарь и спасет коня.

    Суть проблемы такая: имеется N объектов, раскрашенных одним цветом (в примере черным, но не суть).
    Задача: сделать так, чтоб каждый объект имел ЛЮБОЙ УНИКАЛЬНЫЙ* цвет.
    Сферический пример:
    [​IMG]


    Пояснение:
    *в последующем это раскрашивается по определенной палитре цветов, поэтому цвета на данном этапе могут быть любыми, главное, чтоб не повторялись.
    Собственно ищу какой-либо способ автоматизации этого действа (скрипт, макрос, аддон, волшебство) ибо вручную можно задолбаться.

    Спасибо заранее спасителю :3
     

    Вложения:

    • zz.jpg
      zz.jpg
      Размер файла:
      84,6 КБ
      Просмотров:
      85
    #1 КоньЕстДетей, 6 янв 2017
    Последнее редактирование модератором: 6 янв 2017
  2. Для RGB (уникальность каждого цвета достигается за счёт использования уникальности ключей js объекта):
    Код:
    //@target illustrator
    randUniqRGB();
    function randUniqRGB (){
      var obj = {
        length: function() {
          var i = 0;
          for (var key in this) {
            if (typeof this[key] == 'string') {
              i++;
            }
          }
          return i;
        }
      }
      var sel = selection;
      for (var j = 0; j < selection.length; j++) {
        var r       = rndInt(0, 255);
        var g       = rndInt(0, 255);
        var b       = rndInt(0, 255);
        var resRGB  = '' + r + ',' + g + ',' + b;
        obj[resRGB] = resRGB;
      }
      while (sel.lenght > obj.length()) {
        r           = rndInt(0, 255);
        g           = rndInt(0, 255);
        b           = rndInt(0, 255);
        resRGB      = '' + r + ',' + g + ',' + b;
        obj[resRGB] = resRGB;
      }
      var n = 0;
      for (key in obj) {
        if (typeof obj[key] == 'string') {
          var item       = sel[n];
          var col        = new RGBColor();
          col.red        = +key.split(',')[0];
          col.green      = +key.split(',')[1];
          col.blue       = +key.split(',')[2];
          item.fillColor = col;
          n++;
        }
      }
      /**
       * random INTEGER number from min to max
       * @param {Number} min
       * @param {Number} max
       * */
      function rndInt(min, max) {
        var rand = min - 0.5 + Math.random() * (max - min + 1)
        rand     = Math.round(rand);
        return rand;
      }
    }
     
    #3 dumbm1, 7 янв 2017
    Последнее редактирование: 7 янв 2017
    • Одобряю Одобряю x 3

Поделиться этой страницей

   Рейтинг@Mail.ru