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 ?在这里找到了一篇使用 lambda 运算符的 c# 文章,但我不知道它们的含义以及如何在 vb.net 中实现它们

Stackoverflow 链接到 c# 文章(.NET 中 3 种颜色之间的颜色插值

vb.net 中 color4f 的最佳替代品是什么?

谢谢。

4

1 回答 1

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
于 2012-11-29T07:39:47.827 回答