所以,这基本上是我想要编写的方法(使用Objective-C/Cocoa,使用UIColors
,但我只对底层的数学感兴趣):
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值,并确定它们之间特定“位置”的颜色?