Допустим, у нас есть следующее:
Для x минимальное значение 0x0000
эквивалентно 0.00000
, а 0xffff
эквивалентно 1.00000
Давайтескажем, у меня есть значение 0,6829, как мне сопоставить это с шестнадцатеричным значением 0x....
в Javascript?
РЕДАКТИРОВАТЬ :
Причина, по которой мне нужно этопоскольку я хочу отправить сообщение на мой Philips Hue Lights через UDP, соответствующая документация по моему вопросу выглядит следующим образом. Обратите внимание, что теперь я использую цветовое пространство XY вместо RGB:
Пример потокового сообщения:
Example
{
'H', 'u', 'e', 'S', 't', 'r', 'e', 'a', 'm', //protocol
0x01, 0x00, //version 1.0
0x07, //sequence number 7
0x00, 0x00, //Reserved write 0’s
0x00, //color mode RGB
0x00, // Reserved, write 0’s
0x00, 0x00, 0x01, //light ID 1
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, //red
0x00, 0x00, 0x02, //light ID 2
0x00, 0x00, 0x00, 0x00, 0xff, 0xff //blue
}
Поддерживаемые форматы цветового пространства: RGB и xy + Яркость.Каждый отдельный компонент цвета имеет 16-битное разрешение на API.Значения RGB преобразуются в xy + Brightness с помощью моста Хюэ.
Поддерживаемые лампами значения x и y имеют разрешение 12 бит и яркость 11 бит.Это означает, что 16-битное разрешение API будет усечено.
Чтобы получить наилучшую согласованность цветов для различных типов ламп (т. Е. Гамм), лучше всего отправлять значения xy + Brightness, поскольку они не зависят от аппаратного обеспечения.
Для xy минимальное значение0x0000 эквивалентно 0,00000, а 0xffff эквивалентно 1,00000
Используемый формат цветового пространства определяется в байтовой части «Цветовое пространство» заголовка сообщения.