2009-08-17 8 views
2

je contrôle la teinte et la saturation de la couleur d'arrière de la forme avec les barres de défilement:but de diviser la saturation/50 et hue/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 

je voudrais savoir quel est le but de diviser par 50?

Répondre

3

Si vous faites référence à cette question: implementing a trackbar that will change background color of form, la procédure HSVtoRGB attend:

  • une valeur de saturation entre 0,0 et 1,0
  • une valeur de valeur comprise entre 0,0 et 1,0
  • une valeur de teinte entre 0 et 360

Ceci est en ligne avec l'intention de l'algorithme, car il pointe vers la version wikipedia comme référence, à http://www.xtremevbtalk.com/showthread.php?t=302304. Je n'ai pas relu l'implémentation pour vérifier l'exactitude. La division de la valeur de saturation que vous obtenez de la zone de texte tbSaturation de 50 vous permet d'interpréter les valeurs comprises entre 0 et 50 entrées par l'utilisateur. Vous pourriez réellement vouloir diviser par 100 au lieu de permettre une gamme 0-100.

+0

c'est incorrect, la teinte ne va pas plus de 360/50 –

+0

btw je veux que la gamme reflète la plage réelle indiquée dans colordialog qui serait de 0 à 240 –

0

Il est difficile de savoir ce que pensait la personne qui a fait cette division, mais le résultat est que vous obtiendrez une couleur moins "pure" (plus de blanc mélangé).

Pour plus d'informations, vous pouvez regarder le conversion algorithm, qui a aussi de bons commentaires.

1

Cela dépend de la portée de vos barres de défilement et de la plage prévue de HSVtoRGB. Sans plus de contexte, je suppose que vos barres de défilement sont comprises entre 0 et 50 et que le code tente de normaliser les valeurs ou d'essayer de mettre à l'échelle les composants.

+0

la teinte monte à 360 sans erreur et la saturation à 50 sans erreur –

Questions connexes