2 votes

Interpolation des couleurs

Bonjour, j'ai le snippet suivant en java que je dois convertir en vb.net.

float position =(value - startValue) / (middleValue - startValue);
Color4f result = new Color4f();
result.interpolate(startColor, middleColor, position);
return result;

Quelqu'un sait-il comment je peux faire le color4f.interpolate en vb.net ? J'ai trouvé un article ici pour c# qui utilise des opérateurs lambda mais je n'ai aucune idée de ce qu'ils signifient et comment les implémenter en vb.net.

Lien Stackoverflow vers l'article c# ( Interpolation des couleurs entre 3 couleurs en .NET )

Et quelle est la meilleure alternative pour color4f en vb.net ?

Gracias.

0voto

benst Points 533

Cette fonction semble fonctionner plus ou moins bien :

Public Function interPolateColor(ByVal firstcolor As Color, ByVal secondcolor As Color, ByVal alpha As Double) As Color
    Dim R As Double = ((1 - alpha) * Convert.ToInt32(firstcolor.R)) + (alpha * Convert.ToInt32(secondcolor.R))
    Dim B As Double = ((1 - alpha) * Convert.ToInt32(firstcolor.B)) + (alpha * Convert.ToInt32(secondcolor.B))
    Dim G As Double = ((1 - alpha) * Convert.ToInt32(firstcolor.G)) + (alpha * Convert.ToInt32(secondcolor.G))
    Dim A As Byte = 255
    Return Color.FromArgb(A, Convert.ToByte(R), Convert.ToByte(G), Convert.ToByte(B))
End Function

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X