彩虹配色的RGB函数

彩虹配色的RGB函数

代码

彩虹配色广泛应用于计算流体力学和计算传热学,用于表征温度、速度等场的信息。

比如,给定一个物理量x(取值从0到1),我们需要知道它对应的颜色通道是多少,r表示红色,g表示绿色,b表示蓝色,它们均为整数,取值从0-255
C语言代码如下

void RGBfunction(double x, int *r, int *g, int *b)
{
    x = 1.0 - x;
    // x由小到大的依次为:赤、橙、黄、绿、青、蓝,注意没有紫色
    //定义红色通道
    if (x < 5.0 / 12.0)
    {
        *r = 255;
    }
    else if (x >= 5.0 / 12.0 && x < 7.0 / 12.0)
    {
        *r = (int)(-1530 * (x - 7.0 / 12.0));
    }
    else
    {
        *r = 0;
    }
    //定义绿色通道
    if (x < 1.0 / 12.0)
    {
        *g = 0;
    }
    else if (x >= 1.0 / 12.0 && x < 3.0 / 12.0)
    {
        *g = (int)(990 * (x - 1.0 / 12.0));
    }
    else if (x >= 3.0 / 12.0 && x < 5.0 / 12.0)
    {
        *g = (int)(540 * (x - 5.0 / 12.0) + 255);
    }
    else if (x >= 5.0 / 12.0 && x < 7.0 / 12.0)
    {
        *g = 255;
    }
    else if (x >= 7.0 / 12.0 && x < 9.0 / 12.0)
    {
        *g = (int)(-768 * (x - 7.0 / 12.0) + 255);
    }
    else if (x >= 9.0 / 12.0 && x < 11.0 / 12.0)
    {
        *g = (int)(-762 * (x - 11.0 / 12.0));
    }
    else
    {
        *g = 0;
    }
    //定义蓝色通道
    if (x < 7.0 / 12.0)
    {
        *b = 0;
    }
    else if (x >= 7.0 / 12.0 && x < 9.0 / 12.0)
    {
        *b = (int)(1530 * (x - 7.0 / 12.0));
    }
    else
    {
        *b = 255;
    }
}

效果

对于某个二维热传导问题,可以绘制出如下彩虹配色的图像
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jedi-knight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值