Interpolación de color entre 3 colores en .NET

Me gustaría interpolar suavemente el color del Color A (llamémoslo rojo) al Color C (llamémoslo verde) pasando por el color B (llamémoslo amarillo), en función del valor de una determinada variable.

Si la variable = 100, quiero verde puro. Si la variable = 50, quiero amarillo puro. Si la variable = 0, quiero rojo puro.

Entiendo que puede tratar cada triplete RGB como una coordenada en el espacio tridimensional. Lo que busco es un truco de interpolación lineal rápido y sucio que funcione correctamente con el diseño específico del tipo de color .NET (valores separados para ARGB, etc.).

Respuestas a la pregunta(2)

Su respuesta a la pregunta