У меня есть программа, где мне нужно представить высоту как значение RGBT (в поплавке). То есть:Значение RGB, закодированное с высоты
[R, G, B, T (Transperancy)] -> [0.0f-1.0f, 0.0f-1.0f, 0.0f-1.0f, 0.0f-1.0f]
Концептуально я знаю, что вы можете кодировать базовую высоту между максимальной и минимальной высотой. У меня даже есть некоторый код для высоты кодирования Greyscale:
double Heightmin=0;
double Heightmax=23;
osg::Vec4 getColourFromHeight(double height, double alpha=1.0) {
double r=(height-Heightmin)/Heightmax;
double b=(height-Heightmin)/Heightmax;
double g=(height-Heightmin)/Heightmax;
return osg::Vec4(r, g, b, 1.0);
}
То, что я хотел бы знать, является, если есть алгоритм, который более сложный, то только с помощью R и G, как это:
double r=(height-Heightmin)/Heightmax;
double b=0.0f;
double g=(Heightmax- height + Heightmin)/Heightmax;
(То есть, G является инвертированной формой R, поэтому при низких значениях она будет выглядеть более зеленой, а при высоких значениях она будет более красной.
Я хотел был бы использовать RG и B, чтобы дать реалистичный вид hieght закодированные пейзажи:
Это изображение топовой карты с кодировкой высоты RGB высотой 72dpi. Я хотел бы иметь возможность достичь чего-то подобного. Существует ли простой алгоритм для создания значения RGB на основе минимального и максимального значений?
Thaks для вашей помощи.
Бен
Вам просто нужно подобрать подходящий [цветной градиент] (https://www.google.co.uk/search?hl=ru&safe=off&q=colour%20gradient&um=1&ie=UTF-8&tbm=isch&source=og&sa = N & tab = wi & ei = EMedT4OxJc7e8QPTsam8BQ & biw = 1600 & bih = 775 & sei = E8edT62BB4b98QOi5pmZDw), который вам нравится, а затем поместите его в таблицу поиска (или аналогичную). –
Это звучит неплохо, но будет ли это целесообразно, если учитывать максимальную и минимальную высоту в конечном коде? –
Вы уверены, что это изображение кодируется только по высоте? Мне кажется, что это сочетание географических и топографических данных. –