Ничего интересного, просто что бы отметиться: очередная версия (32 бита; 64 бита), все еще условно рабочая. Сделал чтение/запись собранных данных, но без сжатия, в двоичном виде. Заодно немножко сделал реинжениринг, потому что первые версии были совсем черновиком. Впрочем, еще много есть чего менять и исправлять.
Теперь вот хочу какой-нибудь хитрый способ раскраски графиков придумать, что бы с одной стороны отличались друг от друга по цвету, но при этом, когда пинг до конечного хоста становится слишком длинным, постепенно цвет меняли, становясь тревожно-красноватыми.
С цветом интересная идея. Я цветов даже близко не касаюсь, так мысли в слух.
ОтветитьУдалитьДля генерации цвета, я бы попробовал HSV модель, скажем:
- H от 60 до 300 с шагом в 60 градусов, 0 исключаем так как красный нам не нужен
- S оставил бы константой, скажем 100%, ну или чуть-чуть приглушил, скажем до 80%
- V от 50 до 100 шагом в 25%
И того 5 * 3 = 15 цветов должно получиться отличающихся от красного, ну а если нужно больше, можно попробовать уменьшить шаг, но не факт что глаз увидит разницу :))) Другой подход, который часто используют разные библиотеки графиков: просто захардкодить цвета, так как по факту не особо много глаз может отличить надежно.
С градиентом в красный, как мне видится нужно сначала как-то преобразовать время пинга в вещественное значение от 0 (оригинальный цвет), до 1 (красный), возможно https://en.wikipedia.org/wiki/Sigmoid_function подойдет, она как раз сначала практически не изменяется (адекватный пинг, нормальный цвет), а далее довольно шустро приближается к максимуму (все плохо, красный), нужно только ее отмасштабировать и сдвинуть. Ну а далее градиентный переход в RGB модели.
О, кстати, с HSV интересная идея, надо будет попробовать её. Спасибо за совет.
УдалитьТут как раз основная проблема в том, что бы цвет был разным. И вот это сложно получить. Если бы график был один, то его вообще можно было радугой раскрасить, например: от ярко-синего для коротких пингов (до 5 мс, for example) и далее плавный переход в зеленый, жёлтый, оранжевый, красный (пинг близкий или равный таймауту).
Но вот если графиков больше, то тут сразу проблема по различию вылазит. Во-первых, мы сразу теряем короткую шкалу, так как при двух графиках у нас как раз два цвета - зеленый и синий, отличных от красного. А если графиков больше двух, то возникает еще и другая проблема: оттенки смеси зеленого и синего визуально очень близки и малоотличимы, сочетания с красным сразу вырубают не только нижнюю, но среднюю цветовую шкалу. Ситуацию еще усугубляет и то, что графики, если интернет работает нормально, лежат очень близко друг к другу, что еще больше снижает различимость. В общем, сложно подобрать оттенки. Я уже морально готовлюсь к тому, что бы как-нибудь засесть и потратить достаточно времени на эксперименты с цветами.
Но вообще буду использовать хардкорные цвета и максимум графиков будет всего четыре. Наверное, иногда требуется и больше, но даже уже на трех графиках там все путается, поэтому считаю, что больше четырех - это крайне редко и малоудобно. Пока так.