Итак, это по существу метод, который я хотел бы написать (в Objective-C/Cocoa, используя UIColors
, но меня действительно интересует основная математика):
+ (UIColor *)colorBetweenColor:(UIColor *)startColor andColor:(UIColor *)endColor atLocation:(CGFloat)location;
Итак, в качестве примера, скажем, у меня два цвета, чистый красный и чистый синий. Учитывая линейный градиент между ними, я хочу рассчитать цвет, который, скажем, на отметке 33% на этом градиенте:
Поэтому, если я должен был вызвать свой метод следующим образом:
UIColor *resultingColor = [UIColor colorBetweenColor:[UIColor redColor] andColor:[UIColor blueColor] atLocation:0.33f];
Я бы получил результирующий цвет в 'B' и аналогичным образом передал 0.0f
, так как местоположение вернет цвет "A", а 1.0f
вернет цвет "C".
Итак, в основном, мой вопрос: как я могу смешать значения RGB двух цветов и определить цвет в определенном "месте" между ними?