Отображение цветов RGB из двух изменяющихся значений

У меня есть два значения (от 0 до 255) из источников звука. Я пытаюсь отобразить два разных цвета RGB, прямоугольник, разделенный посередине, цвета этих двух изменяющихся чисел, цвета, меняющиеся как числа.

спасибо за помощь, я знаю, что это просто, но я действительно застрял.

Хорошего дня.

1 ответ

Чтобы показать "разделенный прямоугольник", я бы предложил использовать два panel объекты рядом.

Вы можете контролировать panel цвет объекта с помощью bgcolor (или bgfillcolor) сообщение, за которым следует список из четырех чисел, например: bgcolor 1 0 0 0.5

Цифры соответствуют красному, зеленому, синему и альфа (непрозрачность) и находятся в диапазоне от 0 до 1. Такbgcolor 1 0 0 0.5 установил бы цвет panel до 100% красного и 50% прозрачного.

В вашем случае у вас есть значения от 0 до 255, поэтому вам нужно уменьшить их до 0–1, а затем решить, как именно вы хотите их сопоставить. Например, если вы хотите, чтобы каждыйpanel чтобы быть белым, когда значение равно 255, черным, когда оно равно 0, и некоторым оттенком серого между ними, вы можете сделать что-то вроде этого:

value → [scale 0 255 0. 1.] → (bgcolor $1 $1 $1 1) → [panel]

Максимальный патч, показывающий значение от 0 до 255, масштабированный до 0–1, управляющий цветом объекта панели с помощью сообщения bgcolor

Некоторые примечания:

  • Последние два аргумента scale должны быть числами с плавающей запятой, иначе он будет выводить просто целые числа 0 и 1.

  • В $1синтаксис окна сообщения заменяется вводом. Например, вы можете решить управлять только зеленой частью цвета:bgcolor 0 $1 0 1.

  • Если ваше значение меняется очень часто, вы можете ограничить частоту обновления цвета. Большинство экранов не обновляются быстрее 60 раз в секунду, поэтому, например, изменение цвета каждую миллисекунду является пустой тратой ресурсов. Если вы используетеsnapshot~ чтобы получить значение из аудио, вы можете использовать аргумент 17или выше, чтобы ограничить значения менее 60 раз в секунду (1000 мс / 60 = 16,6 16). В качестве альтернативы вы можете использоватьspeedlim объект, чтобы ограничить частоту пересчета цвета.

Другие вопросы по тегам