如何以不同的百分比混合两种颜色

2024-02-01

我有两种颜色和一个视图组件。颜色一是我的组件的背景。我将把背景颜色更改为颜色二。但不是突然的。改变类似动画。例如:

第二个 1:90% 颜色 1 + 10% 颜色 2 第二个 1:80% 颜色 1 + 20% 颜色 2 ...... 第二个 1:10% 颜色 1 + 90% 颜色 2 第二个 1:0% 颜色 1 + 100% 颜色 2

我当然尝试一下:

percent=100;
while (percent>=0) {
    color = (color1*precent)+(color2*(100-percent));  
    percent-=10;
}

但这是一个坏主意。结果令人失望。 对于这个目标有什么解决方案吗? 谢谢。


您没有明确说明为什么结果令人失望,所以我假设这意味着您获得的颜色过渡没有您预期的那么好。

您的总体方法似乎是正确的,也许您只是缺少一些细节,所以我会用不同的术语重写它。让color1 and color2是三元组 (R, G, B),其中 R、G、B 中的每一个都在 [0, 1] 范围内。如果不是这种情况,请除以 255(如果这是您的情况的限制),然后再乘以 255。令s是要转换的步数color1 to color2,这里我包括在s初始帧与color1但不是最终帧color2。在步骤k,你有一个值p这样p = (s - k)/s. With p您获得框架中的颜色k通过做color = p * color1 + (1 - p) * color2。现在你可能想乘以color by 255.

此描述的伪代码是:

color1 = (R1, G1, B1)
color2 = (R2, G2, B2)
s = N

for k = 0 to s: # s + 1 steps, according to the description
    p = (s - k) / s
    color = (p * color1) + ((1 - p) * color2)

请注意,在k = 0你只有color1,并且在k = s你只得到color2。如您所见,它与您发布的内容类似,但有更多详细信息。请注意,这里我将 R、G、B 中的每一个乘以p.

以下是从黄色过渡到蓝色的一些示例,steps = 10, 25, 500分别。

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

如何以不同的百分比混合两种颜色 的相关文章

随机推荐

  • Gradle Maven Bom 属性

    我正在考虑从 Maven 迁移到 gradle 在我们当前的设置中 我们有一个主 pom 定义了我们所有的版本依赖项 项目名称是 master pom 并包含如下片段
  • 使用 SerialBlob 与 byte[]

    我正在使用 hibernate 来存储和检索 MySQL 数据库中的数据 我使用的是字节数组 但遇到了 SerialBlob 类 我可以成功使用该类 但我似乎找不到使用 SerialBlob 和字节数组之间的任何区别 有谁知道您希望使用 b
  • 当使用通过 pipx 安装的 tox 时,如何让 tox 使用 pyenv 安装的解释器?

    我通过全局安装了toxpipx https pypa github io pipx 如下 pipx install tox tox version 4 6 4 我已经通过安装了Python 3 10pyenv https github co
  • 运算符重载:仅可涉及相同类型对象时的成员与非成员

    这个问题给出了为什么将运算符重载定义为非成员的一个很好的答案 运算符重载 成员函数与非成员函数 https stackoverflow com questions 4622330 operator overloading member fu
  • 如何在 Swift 中多次显示通知?

    有没有办法每 15 秒快速显示一次通知 我通过检查 notification fireDate NSDate timeIntervalSinceNow 15 但它并不是每次只显示一次都有效 我们如何将其作为循环来执行 您无法安排每 15 秒
  • SuperScript 标签或表单名称

    如何在标签或表单名称属性中显示上标字符串 我发现很少有这样的问题one https stackoverflow com questions 15042334 how to add superscript power operators in
  • Xcode,iPhone - 使图像动画朝特定方向移动[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在创建一个应该在屏幕上移动的动画球 我想让它向屏幕中心移动 就好像它被中心吸引一样 我怎样才能做到这一点 你可以试试这个代码 UI
  • PHP oci_connect() TNS: 无法解析连接标识符 (ORA-12154)

    我正在 Ubuntu 服务器上测试一些 PHP 代码 并通过 tnsping 命令检查 Oracle 数据库连接 Used TNSNAMES adapter to resolve the alias Attempting to contac
  • 使用登录调用未定义的函数 mysql_query() [重复]

    这个问题在这里已经有答案了 当我执行我的PHP下面的代码我得到一个致命错误我不知道如何解决它 感谢您的帮助 错误 PHP 致命错误 未捕获错误 调用 Applications MAMP htdocs lprapp config php 23
  • 改造 2 - 当响应状态为 422(不可处理的实体)时,响应正文为空

    我正在使用 Retrofit 在我的网络服务器中发出 POST 请求 但是 当响应状态为时 我似乎无法获取响应正文422 unprocessable entity 响应主体始终是null 我想知道我是否做错了什么或者是否有解决方法 因为我在
  • 命名空间内的未命名命名空间

    我被要求修改的一些代码看起来很像这样 namespace XXX namespace some stuff end of unnamed Some stuff within the scope of XXX end of XXX 我正在努力
  • 我如何使用课程?

    我对编程相当陌生 有一件事让我感到困惑 什么是类 如何使用类 我明白了一点 但我似乎找不到完整的答案 顺便说一句 如果这是特定于语言的 那么我正在使用 PHP 进行编程 编辑 还有一件事我忘了说 具体来说 我的意思是问如何在类中使用定义函数
  • 在 Visual Studio 2015 中创建空 MVC 项目

    我正在使用 VS 2015 Enterprise 并且正在尝试创建一个空的 MVC 项目 我通过右键单击解决方案进入 添加 新项目 对话框 然后 我从左侧列表中选择 Web 然后选择 ASP NET Web 应用程序 如下所示 接下来 将打
  • ES6 代理解决“TypeError: Cannot create proxy with a non-object as target”?

    我的最后一个问题是 如何存储Monoidal List函数链的数据 https stackoverflow com questions 51297054 how to store data of a functional chain of
  • 当 DownValues 已经存在时可以阻止 OwnValues 吗?

    对于已经分配了与名称 a 关联的 DownValues 的情况 是否有一种可接受的方法来阻止将 OwnValues 分配给相同的名称 我最初是在尝试某人实现数据字典时遇到这个问题的 这就是我要避免的 Remove a a 1 somethi
  • [] 类型的特殊运行时表示?

    考虑长度索引向量的简单定义 data Nat Z S Nat infixr 5 gt data Vec n Nat a where V0 Vec Z a gt a gt Vec n a gt Vec S n a 当然 我有时会需要以下功能
  • “registration_ids”字段不是 JSON 数组 (Firebase)

    我遇到了 Firebase registration ids 的问题 当我从 Rest Client 发送请求时 我得到了成功的响应 multicast id 4650719213012935695 success 2 failure 0
  • CSS - 水平导航列表项填充所有可用空间

    使用 CSS 如何才能拥有一个水平列表并让所有列表项填充父空间的可用宽度 我将 li 的左侧浮动 然后对每个应用一些填充 但我似乎无法填充整个宽度 这样就在右侧留下了一个间隙 我可能会将最后一个项目浮动到右侧 但会发生的情况是 导航项目的活
  • 我应该使用哪些字符串操作函数?

    在我的 Windows Visual C 环境中 有很多替代方法可以完成相同的基本字符串操作任务 例如 为了进行字符串复制 我可以使用 strcpy ANSI C 标准库函数 CRT lstrcpy kernel32 dll中包含的版本 S
  • 如何以不同的百分比混合两种颜色

    我有两种颜色和一个视图组件 颜色一是我的组件的背景 我将把背景颜色更改为颜色二 但不是突然的 改变类似动画 例如 第二个 1 90 颜色 1 10 颜色 2 第二个 1 80 颜色 1 20 颜色 2 第二个 1 10 颜色 1 90 颜色