Главная страница
    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.197 c
2-1210355693
AFX
2008-05-09 21:54
2008.06.01
Обработка клавиатуры при конкретной нагрузки формы


15-1208427995
@!!ex
2008-04-17 14:26
2008.06.01
Обновлений картинки на рабочем столе.


2-1209816843
x-man
2008-05-03 16:14
2008.06.01
Перечисления


2-1210127120
fluxion
2008-05-07 06:25
2008.06.01
SQL запрос.


2-1210269102
VitalZ
2008-05-08 21:51
2008.06.01
Компонент TWebBrowser.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский