Отображение цветов 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]
Некоторые примечания:
Последние два аргумента
scale
должны быть числами с плавающей запятой, иначе он будет выводить просто целые числа 0 и 1.В
$1
синтаксис окна сообщения заменяется вводом. Например, вы можете решить управлять только зеленой частью цвета:bgcolor 0 $1 0 1
.Если ваше значение меняется очень часто, вы можете ограничить частоту обновления цвета. Большинство экранов не обновляются быстрее 60 раз в секунду, поэтому, например, изменение цвета каждую миллисекунду является пустой тратой ресурсов. Если вы используете
snapshot~
чтобы получить значение из аудио, вы можете использовать аргумент17
или выше, чтобы ограничить значения менее 60 раз в секунду (1000 мс / 60 = 16,6 16). В качестве альтернативы вы можете использоватьspeedlim
объект, чтобы ограничить частоту пересчета цвета.