struct Color {
unsigned char r, g, b, a;
Color(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha = 255)
: r(red), g(green), b(blue), a(alpha) {}
};
Color mixColors(const Color& color1, const Color& color2, float factor) {
unsigned char r = static_cast<unsigned char>(color1.r + factor * (color2.r - color1.r));
unsigned char g = static_cast<unsigned char>(color1.g + factor * (color2.g - color1.g));
unsigned char b = static_cast<unsigned char>(color1.b + factor * (color2.b - color1.b));
unsigned char a = static_cast<unsigned char>(color1.a + factor * (color2.a - color1.a));
return Color(r, g, b, a);
}
以上函数模仿glsl里面mix 函数