饱和度/ 50和色调/ 50的目的是什么?

时间:2009-08-17 20:22:29

标签: vb.net winforms

我用滚动条控制窗体背景色的色调和饱和度:

Private Sub tbHUE_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbHue.Scroll
        Dim r, g, b As Integer
        HSVtoRGB(r, g, b, tbHue.Value, tbSaturation.Value / 50, 255)
        Form1.BackColor = Color.FromArgb(r, g, b)
        Label1.Text = tbHue.Value


    End Sub
    Private Sub tbsaturation_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbSaturation.Scroll
        Dim r, g, b As Integer
        HSVtoRGB(r, g, b, tbHue.Value, tbSaturation.Value / 50, 255)
        Form1.BackColor = Color.FromArgb(r, g, b)
        Label2.Text = tbSaturation.Value
    End Sub

我想知道除以50的目的是什么?

3 个答案:

答案 0 :(得分:3)

如果你提到这个问题:implementing a trackbar that will change background color of form,HSVtoRGB程序需要:

  • 饱和度值介于0.0和1.0之间
  • 介于0.0和1.0之间的值
  • 0到360之间的色调值

这符合算法的意图,因为它指向维基百科版本作为参考,位于http://www.xtremevbtalk.com/showthread.php?t=302304。我没有校对实现以检查是否正确。

将从tbSaturation文本框获得的饱和度值除以50可以解释用户输入的0到50之间的值。您可能实际上想要除以100而不是允许0-100范围。

答案 1 :(得分:1)

这取决于滚动条的范围和HSVtoRGB的预期范围。

如果没有更大的上下文,我假设你的滚动条的范围是0到50,并且代码正在尝试规范化这些值,或者他们试图扩展组件。

答案 2 :(得分:0)

很难知道这个人的想法是什么,但结果是你会得到一种不那么“纯粹”的颜色(混合了更多的白色)。

有关详细信息,您可以查看conversion algorithm,其中也有很好的评论。