Calcular el color en un punto dado en un gradiente entre dos colores?
Así que este es esencialmente el método que me gustaría escribir (en Objective-C / Cocoa, usandoUIColors
, pero realmente solo estoy interesado en las matemáticas subyacentes):
+ (UIColor *)colorBetweenColor:(UIColor *)startColor andColor:(UIColor *)endColor atLocation:(CGFloat)location;
Entonces, como ejemplo, digamos que tengo dos colores, rojo puro y azul puro. Dado un gradiente lineal entre los dos, quiero calcular el color que está en, digamos, la marca del 33% en ese gradiente:
Entonces, si tuviera que llamar a mi método así:
UIColor *resultingColor = [UIColor colorBetweenColor:[UIColor redColor] andColor:[UIColor blueColor] atLocation:0.33f];
Obtendría el color resultante en 'B', y de manera similar, pasando0.0f
ya que la ubicación devolvería el color 'A', y1.0f
devolvería el color 'C'.
Entonces, básicamente, mi pregunta es, ¿cómo haría para mezclar los valores RGB de dos colores y determinar el color en una cierta 'ubicación' entre ellos?