Vb.net 划分饱和度/50和色调/50的目的?

Vb.net 划分饱和度/50和色调/50的目的?,vb.net,winforms,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

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

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的目的是什么?

很难知道进行该除法的人在想什么,但结果是你会得到一种不太“纯净”的颜色(混合了更多的白色)


有关更多信息,您可能希望查看,它也有很好的评论。

如果您指的是以下问题:,则HSVtoRGB程序需要:

  • 介于0.0和1.0之间的饱和度值
  • 介于0.0和1.0之间的值
  • 介于0和360之间的色调值
这与算法的意图是一致的,因为它指向维基百科版本作为其参考。不过,我没有校对实现以检查其正确性


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

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


没有更大的背景,我假设您的滚动条范围在0到50之间,代码正在尝试标准化值,或者他们正在尝试缩放组件。

色调上升到360度,没有错误,饱和度上升到50度,没有错误。顺便说一句,我希望范围反映colordialog中规定的实际范围,即0到240