Berechnen Sie die Farbe an einem bestimmten Punkt auf einem Farbverlauf zwischen zwei Farben?

Das ist also im Wesentlichen die Methode, die ich schreiben möchte (in Objective-C / Cocoa unter Verwendung vonUIColors, aber ich bin wirklich nur an der zugrunde liegenden Mathematik interessiert):

+ (UIColor *)colorBetweenColor:(UIColor *)startColor andColor:(UIColor *)endColor atLocation:(CGFloat)location;

Nehmen wir zum Beispiel an, ich habe zwei Farben, reines Rot und reines Blau. Bei einem linearen Farbverlauf zwischen beiden möchte ich die Farbe berechnen, die beispielsweise bei der 33% -Markierung dieses Farbverlaufs liegt:
Also, wenn ich meine Methode so aufrufen würde:

UIColor *resultingColor = [UIColor colorBetweenColor:[UIColor redColor] andColor:[UIColor blueColor] atLocation:0.33f];

Ich würde die resultierende Farbe bei 'B' erhalten und in ähnlicher Weise vorbeigehen0.0f da der Ort die Farbe 'A' zurückgeben würde, und1.0f würde die Farbe 'C' zurückgeben.

Grundsätzlich frage ich mich also, wie ich die RGB-Werte zweier Farben mischen und die Farbe an einem bestimmten 'Ort' zwischen ihnen bestimmen soll.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage