gpt4 book ai didi

c++ - 从高度编码的 RGB 值

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:55:34 27 4
gpt4 key购买 nike

我有一个程序,我需要将高度表示为 RGBT( float )值。即:

[R, G, B, T (Transperancy)] -> [0.0f-1.0f, 0.0f-1.0f, 0.0f-1.0f, 0.0f-1.0f]

从概念上讲,我知道您可以通过最大和最小高度之间的基本高度进行编码。我什至有一些灰度高度编码代码:

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 的倒置形式,因此在低值时它会显得更绿,在高值时它会显得更红。

我希望能够利用 R G 和 B 来提供逼真的高编码景观:

enter image description here

这是 72dpi RGB 高度编码地形图的图像。我希望能够实现与此类似的东西。是否有一种简单的算法可以根据最小和最大高度创建 RGB 值?

感谢您的帮助。

最佳答案

你只需要想出一个你喜欢的合适的颜色渐变,然后把它放在一个查找表(或类似的)中。

那么你所需要的就是将 min_height -> max_height 范围内的值映射到 0 -> 255(例如)。

当然,您可能会找到可以表示为数学函数的颜色渐变,但这不太通用。

关于c++ - 从高度编码的 RGB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com