Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Вниз

Вывод графиков контрастными цветами   Найти похожие ветки 

 
operator ©   (2008-05-07 18:40) [0]

Всем привет! Есть такая задача: - в программе генерируется множество (порядка двух 1000) графиков по точкам и сохраняется в TLineSeries-ы; при этом пользователю не всегда нужно видеть все графики сразу, для этого в программе реализована возможность выбора какие графики нужно печатать - и в зависимости от этого меняется свойство Active у соотв. LineSeries-а. Но что бы различать графики хотелось бы сделать их цветными и возникает вопрос как именно распределить цсвета по графикам. В начальный момент времени не отображается ни одного графика: есть мысль как только новый график становиться Active - ему из списка выделяется наиболее конттрастный к текущим цветам цвет, таким образом с каждым следующим графиком контрастность снижается - при малом количестве графиков они должны получать насыщенные цвета - зеленый красный и тд, а потом когда эти цвета кончаются - начинают выделяться какие-то оттенки.

если подумать о реализации, то например так:
TColorCell = record
  colot:TColot;
  active:boolean;
end;
colors:TList;

так в colors должен был бы быть список цветов, отсортированный по контрастности что ли, а потом при выделении цвета св-во Active переводится в true и в след раз выделяется новый и т.д.

и собственно два вопроса - правильный ли подход у меня к решению такой задчи и если да, то как сформировать список colors?


 
Игорь Шевченко ©   (2008-05-07 20:32) [1]

если учесть, что количество обозримых графиков конечно, то можно завсети фиксированный набор контрастных друг относительно друга цветов, например, 16 и последовательно выделять из него.


 
operator ©   (2008-05-08 09:08) [2]

Проблема в том что количество графиков конечно но велико, 16 цветов можно задать вруычную, а сто или 200 например труднее


 
han_malign ©   (2008-05-08 09:39) [3]


> а сто или 200 например труднее

- как ни выделяй, а все равно хрен чего в этом "маслянном пятне" разберешь...

Может стоит подумать о другом виде представления?
Если эти графики нужны для проверки корреляций, то может подумать о 3D отображении, или, что проще, "температурной" гистограмме(одна ось - номер графика, вторая - исходная абсцисса, значение - температурой(цветом) точки)?
(классическое отображение спектрально-временной карты)


 
operator ©   (2008-05-08 13:39) [4]

нет ну пять например цветов подообрать можно)) а на счет универсального алгоритма может кто-то что посоветует?


 
Anatoly Podgoretsky ©   (2008-05-08 14:54) [5]

> operator  (08.05.2008 09:08:02)  [2]

Очень трудно, не буду говорить категорично, что не возможно, создать 200 контрастных цветов.
Но что такое 200 строк кода, что же тогда говорить об обычных проектах, если 200 тривиальных значений уже трудно.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.046 c
2-1210145794
Andr
2008-05-07 11:36
2008.06.01
[Error]: Undeclared identifier: ActiveControl


15-1208847299
@!!ex_
2008-04-22 10:54
2008.06.01
DMClient for Linux


2-1210059787
Petya
2008-05-06 11:43
2008.06.01
Поиск MS SQL


15-1208518662
man
2008-04-18 15:37
2008.06.01
Motorola C350


2-1210276036
leshyi
2008-05-08 23:47
2008.06.01
Как подставить строку в код как код?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский