根据两种颜色之间的相对差异来重新计算梯度颜色的公式
-
12-12-2019 - |
题
当给定任意颜色值时,如何使用该值与梯度偏移0(下图)之间的相对差异来调整剩余的偏移量,使得它们与它们具有与新颜色相同的相对关系原创颜色?
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FFDB0000" Offset="0" />
<GradientStop Color="#FFB74134" Offset="0.6" />
<GradientStop Color="#FFBA5643" Offset="0.85" />
<GradientStop Color="#93C11E00" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
.
我的挑战是弄明出用于做相对调整的数学公式。一旦我有这个逻辑,就应该在我使用的特定技术中实现它应该相对容易地实现(C#/。NET / WPF)。
谢谢!
解决方案
解决方案:
使用色调饱和亮度(HSL)模型,我确定:
- 模板梯度基颜色与每个模板停止颜色之间的相对色调差异。
- 每个模板停止颜色的绝对饱和度和发光度值。
http://en.wikipedia.org/wiki/hsl_and_hsv 提供RGB-HSL公式。 http://blogs.msdn.com/b/cjacks/ carchive/2006/04/12/575476.aspx 介绍了如何执行HSL-to-RGB转换。
不隶属于 StackOverflow