Создайте 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) )

Это должно создать визуально однородный цветовой круг

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