Создайте 12 (воспринимаемых) равномерно расположенных цветов, используя d3
Этот вопрос следует из https://stackru.com/questions/29589186/generating-a-perceptually-accurate-colour-wheel-in-javascript
Я пытаюсь создать 12 цветов, которые примерно одинаково воспринимаются друг от друга.
d3 обеспечивает HSL, поэтому d3.hsl( (i/12)*360, 0.5, 0.5 )
Тем не менее, это не очень хорошо работает для зеленовато-желтых цветов.
d3, кажется, обеспечивает HCL и LAB, но я не вижу, как их использовать.
Есть ли какой-то математический подход, который я могу использовать, или я должен просто реализовать свою собственную функцию передачи оттенка HSL?
1 ответ
Я не знаком с d3, но предполагаю, что он использует типичное соглашение CIELab, которое L: 0::255, a: -100::100, b: -100::100
Ты можешь попробовать
d3.lab( 128, 100 * Math.sin(2 * Math.PI * i/12), 100 * Math.cos(2 * Math.PI * i/12) )
Это должно создать визуально однородный цветовой круг