2012-11-27 51 views
2

您好我有在Java中,下面的代碼片段我需要轉換爲vb.net插值顏色

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

有誰知道我可以在vb.net做color4f.interpolate? 有沒有發現這裏的文章,其中使用拉姆達運營商C#,但我不知道他們的意思,以及如何實現它們在vb.net

#2鏈接到C#文章(Color Interpolation Between 3 Colors in .NET

什麼是最好的vb.net中color4f的替代方案?

謝謝。

+0

不知道你爲什麼會需要爲拉姆達,聽起來很基本的數學:我如何色彩插值(HTTP://www.gamedev .net/topic/537295-how-do-i-interpolate-colors /):'c =(1-t)* c0 + t * c1' – Neolisk

回答

0

這個功能似乎工作或多或少:

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