给定颜色列表(RGB值)L和颜色C,确定我们是否可以混合列表L中的2种或更多颜色来获得C.列表中的颜色可以按任意比例混合。
答案 0 :(得分:1)
您可以将RGB值可视化为3D空间中的点。然后问题是你是否可以将目标颜色的RGB值表示为颜色空间中其他点之间的插值。
执行此操作的理想方法是使用Barycentric co-ordinates,条件是坐标(即混合比例)加1。因此,您需要浏览列表并找到一组2到4个点,形成包围目标点的直线,三角形或四面体单形。点的笛卡尔坐标(在这种情况下,RGB值)可以计算为单形点与重心坐标作为系数的线性组合,因此该点的barycentric co-ordinates将是你的混合比例。这个点需要在单纯形内部,否则你最终会得到不在0-1范围内的比例,我认为这是无效的。
如果你有一个很大的点列表,并且想知道是否存在一组有效的混合比例,请计算所有点的凸包,并检查你的目标点是否位于其中。
答案 1 :(得分:0)
您可以尝试使用协调压缩的直线转换。将其可视化为3d空间,然后组合三个点以获得目标颜色。 希望有所帮助!