2009-08-17 14 views
2

彩度/ 50と色相/ 50を分割する目的は?私は、スクロールバーをフォームの背景色の色相と彩度を制御しています

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

あなたがこの質問を参照している場合:implementing a trackbar that will change background color of formは、HSVtoRGB手順は想定しています

  • 0.0と1.0
  • 間の飽和値0.0と1.0
  • 色相値との間の値の値0と360

これは、アルゴリズムの目的に沿っており、参照としてwikipediaバージョンを指しています(http://www.xtremevbtalk.com/showthread.php?t=302304)。私は、正確性をチェックする実装を校正しなかった。

tbSaturationテキストボックスから得られる飽和値を50で割ると、ユーザーが入力した0〜50の値を解釈できます。実際には、0〜100の範囲を許可する代わりに、100で除算したいと思うかもしれません。

+0

色相が360/50を超えていません –

+0

btw colordialogで指定された実際の範囲が0〜240の範囲になるように範囲を設定します。 –

0

人がその部門を考えていたのは分かりませんが、その結果、純粋ではない色が混じっています。

詳細については、conversion algorithmをご覧ください。これにはコメントもあります。

1

スクロールバーの範囲と意図するHSVtoRGBの範囲によって異なります。

大きな文脈がなければ、スクロールバーの範囲は0から50までで、コードは値を正規化しようとしているか、コンポーネントを拡大縮小しようとしていると仮定します。

+0

色相がエラーなしに360に上がり、彩度が上がりますエラーなしで50に –

関連する問題