计算两种颜色之间渐变上给定点的颜色?

 雷神鑫源义_341 发布于 2023-01-19 17:27

所以这基本上就是我想写的方法(在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值并确定它们之间某个"位置"的颜色?

1 个回答
  • 您只需线性插入红色,绿色和蓝色通道,如下所示:

    double resultRed = color1.red + percent * (color2.red - color1.red);
    double resultGreen = color1.green + percent * (color2.green - color1.green);
    double resultBlue = color1.blue + percent * (color2.blue - color1.blue);
    

    其中percent的值介于0和1之间(location在您的第一个方法原型中).

    2023-01-19 17:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有