gpt4 book ai didi

c - 如何插值 HSV 颜色?

转载 作者:行者123 更新时间:2023-11-30 17:15:36 26 4
gpt4 key购买 nike

我正在 win32 api 中创建一个应用程序,它将使用进度条。这个进度条应该改变它的颜色。从红色(左端)到绿色(右端),中间有一些黄色。

我搜索了一下,发现我应该使用 HSV 来实现这一点。我就是不知道怎么办?我在 this 中找到link,两个函数,用于将颜色从 RGB 转换为 HSV 并返回。

但是如果颜色已经转换成HSV了怎么办?

最佳答案

RGB 坐标一样,HSV 坐标定义三维空间中的一个点。

您可能会发现从一个点(x0,一种颜色)到第二个点(x1)的轨迹,公式如下:

x = x0 + alpha * (x1-x0)

alpha 的变化形式为 0.0 到 1.0

您可以同时对所有三个组件执行此操作。

对于 HSV 空间中从绿色到红色的轨迹,您将主要修改 H(色调)值。如果您想在路径中间看到一些黄色(而不是紫罗兰色),您需要定义第二种甚至第三种颜色并行走

green -> yellow -> red 

<小时/> 编辑:示例

int hue0 = 0; // red
int hue2 = 120; // green

// find 100 colors between red and green
for(double alpha = 0; alpha <= 1.0; alpha += 0.01)
{
hueX = hue0 + alpha * (hue1 - hue0);
// same for value, saturation:
// valX = val0 + alpha * (val1 - val0)
// ...
// plot this color
}

关于c - 如何插值 HSV 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944198/

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