mirmik / zencad

CAD system for righteous zen programmers
https://mirmik.github.io/zencad/
MIT License
134 stars 13 forks source link

Colors. А давайте пропишем приятные цвета по умолчанию! #74

Closed oleg-medovikov closed 2 years ago

oleg-medovikov commented 3 years ago

Стандартные цвета - это максимальные значения rgb, что конечно логично, но вырвиглазно.

zencad.color.red     =       zencad.color(1,0,0)
zencad.color.green =     zencad.color(0,1,0)
zencad.color.blue   =      zencad.color(0,0,1) 

Каждый раз, когда хочется сделать что-то разноцветное, то приходится гуглить цвета. Предлагаю стандартные цвета сделать более спокойными, сдержанными, чтобы их хотелось использовать. Мое предложение:

zencad.color.red       =       zencad.color(0.569 ,  0.18,  0.09)
zencad.color.blue     =       zencad.color(0.059, 0.298, 0.506)
zencad.color.green   =       zencad.color(0.294,  0.545,  0.231)
zencad.color.brown  =       zencad.color(0.396,  0.263, 0.129)
zencad.color.grey     =       zencad.color(0.325,  0.337, 0.329)
zencad.color.yellow  =       zencad.color(1,  0.898,  0.486)  # gold

Выглядит это примерно так:

image

Второе предложение: в функции zencad.color(r,g,b)
сделать rgb - не дробное число от 0 до 1, а short int от 0 до 255, так как чаще всего цвета записываются именно в таком виде. в коде приходится делать такие вещи:

set_color(color(75/255, 139/255, 59/255))

mirmik commented 3 years ago

Добрый день.

По поводу преднастроенного набора цветов я испытываю скепсис. Не совсем понятно, почему цвета должны быть какими-то такими, а не какими-то другими. На мой взгляд, предложенный выше набор темноват, но на то взгляд и субъективный. Чтобы претендовать на право называться константой, цвет должен или иметь какое-то выделенное значение, или быть обоснованным какими-то стандартами, или научными исследованиями, или просто быть выбран голосованием по большой выборке человек. Послезавтра придёт человек, который скажет, мне ваши цвета не нравятся, и что ему ответить?

Мне кажется, правильным подходом будет делать пользовательскую библиотеку с набором цветов и не тянуть её в общий репозиторий. Впрочем, это вопрос дискуссионный.

По поводу диапазона - тут как бы есть два равноправных варианта, и один ничем не лучше другого. Не уверен, что байтовый вариант записи встречается чаще. Оба варианта вполне себе распространены. В частности, у нашего друга openscad, которого мы любим, ценим и уважаем, и на опыт которого внимательно смотрим, как раз используются интервалы [0,1]. Не уверен, что удобство работы с цветовыми таблицами достаточное основание для поломки обратной совместимости. Скорее уж надо для этой цели предусмотреть специальную функцию-конструктор.

P.S. Мы таки создали чат в телеграме. Нас там полторы калеки, но чат, как выяснилось, штука полезная :). Присоединяйтесь. https://t.me/zencad

mirmik commented 2 years ago

Я запоздало осознал вашу правоту. Стандартная палитра изменена. Намереваюсь как нибудь на досуге добавить возможность вставлять цвета в виде кодов, аля "#AA4CF3".