Calcular a cor em um determinado ponto em um gradiente entre duas cores?
Portanto, este é essencialmente o método que eu gostaria de escrever (em Objective-C / Cocoa, usandoUIColors
, mas estou realmente interessado apenas na matemática subjacente):
+ (UIColor *)colorBetweenColor:(UIColor *)startColor andColor:(UIColor *)endColor atLocation:(CGFloat)location;
Então, como exemplo, digamos que eu tenho duas cores, vermelho puro e azul puro. Dado um gradiente linear entre os dois, quero calcular a cor com, digamos, a marca de 33% nesse gradiente:
Então, se eu chamasse meu método assim:
UIColor *resultingColor = [UIColor colorBetweenColor:[UIColor redColor] andColor:[UIColor blueColor] atLocation:0.33f];
Gostaria de obter a cor resultante em 'B', e da mesma forma, passando0.0f
pois o local retornaria a cor 'A' e1.0f
retornaria a cor 'C'.
Então, basicamente, minha pergunta é: como eu misturaria os valores RGB de duas cores e determinaria a cor em um determinado local entre elas?