颜色生成功能

2024-04-10

让我们考虑以下场景:一个可以生成从白色到红色、从白色到蓝色、从白色到粉色、从白色到橙色等代码颜色的函数。

颜色代码采用 RGB 格式,值从 0 到 255。

有任何想法吗?您能给我伪代码或此类算法的链接吗?


听起来你在追求线性插值 http://en.wikipedia.org/wiki/Linear_interpolation- 根据您的情况,从白色插值到指定的颜色。例如,在 C# 中:

public IEnumerable<Color> Interpolate(Color from, Color to, int steps)
{
    int range = steps-1; // Makes things a bit easier
    for (int i=0; i < steps; i++)
    {
        // i is the proportion of the "to" colour to use.
        // j is the proportion of the "from" colour to use.

        int j = range - i;
        int r = ((from.R * j) + (to.R * i)) / range;
        int g = ((from.G * j) + (to.G * i)) / range;
        int b = ((from.B * j) + (to.B * i)) / range;
        yield return new Color(r, g, b);
    }
}

当然,除了线性插值之外,还有其他方法可以实现,但这可能是最简单的。请注意,如果您有很多步骤或较大的值,这会变得很棘手,因为您需要考虑溢出的可能性。在这种情况下,您应该没问题 - 您不太可能需要超过 256 步,并且最大值为 255,因此您不会接近以下限制ints.

编辑:正如评论中所指出的,RGB 很可能不是使用线性插值的最佳域。您最好将 RGB 值转换为HSL 或 HSV http://en.wikipedia.org/wiki/HSL_color_space,并对它们进行插值。这可能很简单也可能很棘手,具体取决于您的平台。上一句中的维基百科链接提供了适当计算的公式(如果没有为您提供)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

颜色生成功能 的相关文章

  • 计算产生相同 BST 的唯一节点序列的数量

    问题 给定一个最多 50 个整数的特定序列 它们代表 某个二叉搜索树 BST 的节点 有多少种排列 这个序列在那里 这也会产生完全相同的 空白石板时间 将原始序列作为 1 个序列包含在总计数中 例如 对于这样的序列 5 2 1 9 8 答案
  • 最近点对算法

    我目前正在致力于用 C 实现最接近的点对算法 也就是说 给定一个点列表 x y 找到具有最小欧氏距离的点对 我对此进行了研究 我对算法的理解如下 如果我错了 请纠正我 将点数组从中间拆分 递归地找到左半部分和右半部分距离最小的点对 按 y
  • 计算标签云中标签字体大小的公式是什么?

    我有一个标签云 我需要知道如何更改最常用标签的字体大小 我需要设置最小字体大小和最大字体大小 您可以使用线性或对数评估与某个标签相对于最大标签关联的项目数量 将其乘以最小和最大字体大小之间的差值 然后将其添加到最小字体大小 例如 伪代码中的
  • 将区间映射到更小的区间的算法

    我尝试搜索 但由于问题的性质 我无法找到满意的内容 我的问题如下 我试图将 0 到 2000 范围内的数字 尽管理想情况下上限是可调的 映射到 10 到 100 范围内的更小的区间 上限将映射 2000 gt 100 和下限也是如此 除此之
  • 以与版本页面上相同的方式区分两个字符串的算法是什么?

    我正在尝试按短语区分两个字符串 类似于 StackOverflow 在版本编辑页面上区分两个字符串的方式 执行此操作的算法是什么 是否有 gems 或其他标准库可以实现此目的 编辑 我见过其他比较算法 Differ http github
  • 用 ruby​​ 解决旅行商问题(50 多个位置)

    我在一家快递公司工作 目前 我们 手动 解决了 50 多个地点的路线 我一直在考虑使用 Google Maps API 来解决这个问题 但我读到有 24 点的限制 目前我们在服务器中使用 Rails 因此我正在考虑使用 ruby 脚本来获取
  • 如何检查一个盒子是否适合另一个盒子(允许任何旋转)

    假设我有两个盒子 每个盒子都是一个长方体 http en wikipedia org wiki Rectangular cuboid aka长方体 我需要编写一个函数来决定盒子是否具有尺寸 一 二 三 可以装入具有尺寸的盒子中 甲 乙 丙
  • 无痛“算法分析”培训? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在大学时曾有过一次关于 算法分析 课程的痛苦经历 但最近发现在大学中需要它真实世界 无论如何 我正在
  • 算法:最大计数器

    我有以下问题 您有 N 个计数器 最初设置为 0 并且您对它们有两种可能的操作 increase X 计数器 X 加 1 max counter 所有计数器都设置为任何计数器的最大值 给出一个包含 M 个整数的非空零索引数组 A 该数组代表
  • 给定与总和匹配的长度的唯一 3 位数字 (-1,0,1) 序列的数量

    假设您有一个长度为 n 即空格数 的垂直游戏板 你有一个三面骰子 有以下选项 前进一 停留和后退 如果您低于或高于棋盘游戏空间的数量 则该游戏无效 一旦到达棋盘末端 唯一有效的动作就是 停留 给定确切的骰子投掷次数 t 是否可以通过算法计算
  • 如何找到最长的回文子序列(不是它的长度)

    我想找出字符串中最长的回文子序列 我到处都找到了找出子序列长度的算法 并声明该算法也可以扩展以返回子序列 但我没有找到如何实现的 有人能解释一下我怎样才能得到序列吗 既然你提到了链接最长回文子序列 http www geeksforgeek
  • 给定两个(大)点集,我如何有效地找到彼此最接近的点对?

    我需要解决一个计算问题 该问题归结为搜索两个集合之间最接近的点对 问题是这样的 给定欧几里德空间中的一组点 A 和一组点 B 找到所有对 a b 使得 b 是 B 中与 a 最近的点 a 是 A 中与 b 最近的点 集合 A 和 B 的大小
  • 当目标是查找某个字符串的所有出现情况时,KMP 最坏情况的复杂度是多少?

    我还想知道哪种算法在查找另一个字符串中所有出现的字符串时具有最坏情况的复杂性 博耶 摩尔算法似乎具有线性时间复杂度 KMP 算法在查找字符串中所有出现的模式时具有线性复杂度 如 Boyer Moore 算法1 如果您尝试在 aaaaaaaa
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 用于插入/删除/排名/选择查询的最佳数据结构/算法

    到目前为止 我知道像AVL树和红黑树这样的自平衡BST可以在O log n 次内完成这些操作 然而 要使用这些结构 我们必须自己实现AVL树或RB树 我听说有一个算法 实现这四个操作而不使用自平衡 BST 有了我们自己定义的结构 我们就需要
  • 如何设置K-means openCV c++的初始中心

    我正在尝试使用 OpenCv 和 Kmeans 对图像进行分割 我刚刚实现的代码如下 include opencv2 objdetect objdetect hpp include opencv2 highgui highgui hpp i
  • 如何在Scala中实现尾递归快速排序

    我写了一个递归版本 def quickSort T xs List T p T T gt Boolean List T xs match case Nil gt Nil case gt val x xs head val left righ
  • 如何计算位图的平均 RGB 颜色值

    在我的 C 3 5 应用程序中 我需要获取位图的红色 绿色和蓝色通道的平均颜色值 最好不使用外部库 这可以做到吗 如果是这样 怎么办 提前致谢 尝试让事情变得更精确 位图中的每个像素都有一定的 RGB 颜色值 我想获取图像中所有像素的平均
  • 如何将 mat 转换为 array2d

    我为dlib http dlib net face landmark detection ex cpp html那里的面部地标代码使用 array2d 来获取图像 但我喜欢使用 Mat 读取图像并转换为 array2d 因为 dlib 仅支
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A

随机推荐

  • 在哪里可以找到 PHP 的错误日志文件?

    在哪里可以找到错误日志文件 我需要检查它们以解决安装后显示的内部服务器错误suPHP https wiki archlinux org title SuPHP 您可以使用lsof https en wikipedia org wiki Ls
  • Asterisk AGI:如何获取或设置全局变量的值?

    我使用 Asterisk 1 8 和 PHP 来编写 AGI 脚本 EDIT 我正在努力从 AGI PHP 脚本中设置和获取全局变量的值 我可以设置通道变量 但不能设置全局变量 使用 PHPAGI 库 Tried Set varname v
  • Puppeteer 在非无头模式下打开一个空选项卡

    运行 puppeteer npm 的最新版本 0 13 0 并将参数传递给 puppeteer launch headless false chrome 以空页面作为第一个选项卡打开 并从第二个选项卡中的脚本打开实际页面 const pag
  • 尝试调整 2fs EB 卷大小失败 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个 200GB 的 EBS 卷 正在尝试增加可用空间 我按照以下说明进行操作 http www hellersoftware com
  • Swift:通过 Twitter 分享文本

    所以基本上我正在制作一个事件应用程序 一切都很顺利 只是将活动分享到了 Twitter 我已经在互联网上搜索过 但我得到的只是使用我不想要的 Twitter 的本机应用程序 我想使用浏览器发推文 我已经实现了这个方法用于FB共享 任何想法都
  • terraform 资源创建 - this 关键字

    我在几个例子中发现了一种模式terraform代码在Github resource aws vpc this 我想知道关键字如何this与命名资源相比 提供了特殊的优势 我找不到哈希公司文档关于this关键词 https github co
  • 正则表达式:仅匹配一次

    我有一个包含多个 IP 地址和一些随机内容的字符串 例如像这样的 21 Jun 2018 01 15 38 0000 188 79 169 152 157 52 69 50 443 GET 157 52 69 30 157 52 69 10
  • C++:删除打印机队列

    我正在尝试从打印机中删除队列中的所有文件 我发现这看起来很简单 我尝试使用下面的代码删除队列 它可以编译 但 SetPrinter 返回 false 我收到的错误消息是 5 我尝试使用该方法将其解码为 正常 错误消息从这个问题 https
  • 是什么导致 Safari 中的音频播放缓慢/延迟?

    var audio new Audio data audio wav base64 UklGRoABAABXQVZFZm10IBAAAAABAAEAiBUAAIgVAAABAAgAZGF0YVwBAACHlqa1xNLg7vv Tk1LSk
  • 按 iframe 内的 Youtube 订阅表单按钮

    我正在搜索如何从 Youtube 订阅表单按下订阅按钮 但我没有找到任何可以帮助我的东西 我是 JS 新手 所以我希望你能帮助我 用于按下订阅按钮here http www youtube com subscribe widget p aa
  • 如何在 JavaScript 中模拟 target="_blank"

    当用户单击链接时 我需要更新数据库中的字段 然后在新窗口中打开请求的链接 更新没问题 但我不知道如何打开新窗口而不要求他们单击另一个超链接 a href http www mydomain com ReportID 1 target bla
  • 如何在 ASP.NET MVC 3 Intranet 应用程序中重新验证用户身份?

    该应用程序已经使用 Windows 集成安全性 而不是 Forms 我想要完成的是所谓的 逐步 身份验证 或针对以下情况的 强制重新身份验证 用户正在浏览网站做一些常见的 琐碎的事情 突然 用户必须执行敏感操作 例如授权 资源分配或确认汽车
  • iPhone开发与越狱

    我是 iPhone 开发新手 我们可以通过以下方式开发iphone应用程序 legal 越狱 如果我越狱了我的iPhone操作系统 之后我可以安装最新版本的iPhone操作系统吗 并从苹果网站再次使其合法 如果我开发越狱应用程序 我可以将其
  • .NET MVC:调用 RedirectToAction 传递模型?

    我有一个观点List aspx与班级绑定的Kindergarten 在控制器中 public ActionResult List int Id Kindergarten k from k1 in kindergartensRepositor
  • Android - 包括 GitHub 库 ActionBar PullToRefresh

    我在包含来自 GitHub 的库时遇到问题 这是图书馆 https github com chrisbanes ActionBar PullToRefresh https github com chrisbanes ActionBar Pu
  • 我正在尝试通过外部 api 从 json 数据获取键值对,并使用 Angular 和 TypeScript 显示它。我怎样才能实现这个目标?

    我想从我的 api 获取结果对象中的每个键值对以显示在我的前端上 即 类别 类型 难度 问题正确答案 我已正确设置服务和组件 我需要做的就是获取 json 并显示每一对 该方法名称称为 fetchQuestions 如下所示 我只需简单地以
  • 是否可以一次性增加 YouTube api 的配额?

    我正尝试将大约 4 000 个视频添加到 YouTube 播放列表中 使用基于成本的配额系统 我每天只能添加大约 200 个 这意味着我需要大约三周的时间来完成这个项目 此外 我需要添加的视频列表将继续增长 直到我最终确定播放列表 因为它在
  • CF10-jpg的文件格式

    在开发一个允许交换多个第三方应用程序的图像并从而为这些应用程序创建单独的 皮肤 的工具时 我偶然发现了一种 jpg 格式 我似乎无法找到任何合适的信息 当在十六进制编辑器中查看它时 它以标签 CF10 开头 搜索互联网只提供了一个能够处理此
  • 如何在 WAI 服务器中执行关闭命令?

    我想为我的 web 应用程序实现一个 正常关闭 命令 与我的第一直觉相反 即只是要求人们终止该进程 我的前两次尝试包括 liftIO exitSuccess E yield responseLBS statusOK G contentTyp
  • 颜色生成功能

    让我们考虑以下场景 一个可以生成从白色到红色 从白色到蓝色 从白色到粉色 从白色到橙色等代码颜色的函数 颜色代码采用 RGB 格式 值从 0 到 255 有任何想法吗 您能给我伪代码或此类算法的链接吗 听起来你在追求线性插值 http en