Razum писал(а):
Ну ты не пробовал видимо.
Не, не пробовал...
Razum писал(а):
Насыщенность там на максимуме постоянно
Точно?
Razum писал(а):
Хотя цвета не очень понятно отражают высоту
Это не важно. Цвета должны отображать разность высот. Это главное.
Razum писал(а):
http://devouringone.narod.ru/pictures/grad.jpg
Что, с твоим алгоритмом так получиццо? А, тогда щас попробую.
З.Ы.: осталось всего 1 макрос Васиковский переписать.
Добавлено спустя 2 часа 40 минут 49 секунд:Razum писал(а):
Предлагаю такой алгоритм распределения цвета, который позволяет задать 1024 градации. Пусть высота у нас равна Н.
Для значений высоты 0 - 255: (255, Н, 0),
Для значений 256 - 511: (511 - Н, 255, 0),
Для значений 512 - 767: (0, 255, Н),
Для значений 768 - 1023: (0, 1023 - Н, 255).
Вот соответствующий код, если кому интересно:
-------------------------------------------------------------------------------------
for(l=0; l<100; l++){
for(h=0; h<1024; h++){
if(-1<h && h<256) r = 255;
if(255<h && h<512) r = 511 - h;
if(511<h && h<1024) r = 0;
if(-1<h && h<256) g = h;
if(255<h && h<768) g = 255;
if(767<h && h<1024) g = 1023 - h;
if(-1<h && h<512) b = 0;
if(511<h && h<768) b = h;
if(767<h && h<1024>Pixels[h][l] = RGB(r, g, b);
};
};
-------------------------------------------------------------------------------------
Razum писал(а):
А мой алгоритм не пробовал?
Сущь, точно - рабатить!!!
Вот доказательство:
1024grad
Это для 1024-х значений h. Тута все цвета радуги. Но мне нуна шоб цвет изменялся тока от красного до зелёного, так что я решил юзнуть тока половину, т.е. 512 значений h. Причём, как я уже говорил, минимуму высоты должен соответствовать зелёный, а максимуму - красный. Так что я ещё впридачу инверснул этот обрезок полоски. В итоге я получил то, что Вы можете увидеть тут (верхняя полоска):
512grag
Но если присмотреться, то можно увидеть, что жёлтая полоска намного уже, чем красная или зелёная. Мне это показалось "нечестным", так что я долго ломал голову над тем, как уравнять все три цвета в правах. Парадоксально, но пришёл к выводу, что для этого нужно изменить простую линейную зависимость на "корень из". Вот какой код в итоге получился:
-------------------------------------------------------------------------------------
for(l=0; l<100; l++){
for(h=0; h<512; h++){
if(h<256)
r = sqrt(h*255); else r = 255;
if(h<256>Pixels[h][l] = RGB(r, g, 0);
};
};
-------------------------------------------------------------------------------------
Сравните две полоски вышевыложенного рисунка: верхняя - простая линейная зависимость, нижняя полоска - мой изменённый код. ИМХО, мне удалось добиться равноправия зелёного, жёлтого и красного. Как Вы считаете, "Да" или я дальтоник?
Так что будо переделывать моё черно белое отображение карты на разноцветное.
Э, завтра.