如何平均分配两种RGB颜色之间的颜色范围

问题描述 投票:0回答:1

这就是问题。我不知道如何解决这个问题。所以没有我尝试过的代码。

一个函数有 4 个参数

  1. 第一种颜色的 RGB 值为整数 例如:红色 = 220 绿色 = 020 蓝色 = 060 给出为 220020060
  2. 第二个颜色的RGB值也是整数
  3. 两种颜色范围之间等距路点的数量(非负整数)
  4. 该路径点之外的第 n 个颜色

如果参数为(220020060, 189252201, 3, 1) 答案应该是212078095

python
1个回答
1
投票

这是一个更简单的实现,更容易遵循:

def solution(rgb1 : str, rgb2 : str, waypoints : int, target : int):
    rgb1 = list(map(lambda num : int(num), wrap(rgb1, 3)))
    rgb2 = list(map(lambda num : int(num), wrap(rgb2, 3)))

    return list(map(lambda num : int(num), listLerp(rgb1, rgb2, target / (waypoints + 1))))

def lerp(start : int, end : int, percent : float):
    return (1 - percent) * start + percent * end

def listLerp(start : list[int], end : list[int], parent : float):
    return list(map(lambda num1, num2 : lerp(num1, num2, parent), start, end))

它有点不同,因为它使用字符串作为输入来保留像 002345678 这样的 RGB 值,而不从前面去除零。它还以整数数组的形式返回值,因为它更容易。

© www.soinside.com 2019 - 2024. All rights reserved.