OpenGL Gl.glColor3f 如何使用一个参数着色

本文关键字:一个 参数 glColor3f Gl 何使用 OpenGL | 更新日期: 2023-09-27 18:36:08

我对OpenGL中的可视化有一些疑问。我在 3D 空间中有点,每个点也有一个额外的值,它代表不同的值,例如温度、压力等。用户选择此方法之一,其他方法为每个点设置额外的值。

第一个问题是,这个值有不同的范围,例如:

temperature: <80; 2000>
preassure: <-500; 400>
gamma: <0,5; 1,8>
...

现在我想可视化它以寻找可靠的温度:80 C 是冷的,所以蓝色,2000 是热的所以红色。其他人类似,预知,伽马等。

第二个问题是 Gl.glColor3f 接受 3 个参数:红色、绿色、蓝色。我每个 ponit 只有一个参数。RGB 的范围是 <0;1>,我的值有不同的范围。

有没有人有一个想法,或者一些可以帮助我解决这个问题的算法?

OpenGL Gl.glColor3f 如何使用一个参数着色

首先,将值重新映射到 0-1 的范围,如下所示:

double t = ( value - min ) / ( max - min ); // i.e. min could be 80 and max 2000
// it might be a good idea to limit t to 0-1 here, in case
// your original value could be outside the valid range

然后,在颜色之间进行线性插值,如下所示(伪代码):

Color a = Blue, b = Red
double inv = 1.0 - t
Color result = Color( inv * a.R + t * b.R,
                      inv * a.G + t * b.G,
                      inv * a.B + t * b.B )

这应该让你开始!