如何从给定的基色生成多个阴影?

时间:2010-09-07 03:26:58

标签: delphi colors

我想设计图表并设置颜色 从一个单一的范例。与Excel中的相同:

alt text

是否有某种公式或算法 从给定的颜色生成下一个颜色 阴影或颜色?

3 个答案:

答案 0 :(得分:14)

在我看来,他们只是采用相同的色调(基本色)并上下调整亮度。这可以通过HSL或HSV转换轻松完成。检查维基百科的HSL和HSV颜色空间,以了解所涉及的理论。

基本思路:计算机代表颜色,混合了红色强度,绿色强度和蓝色强度,称为RGB,因为这是屏幕显示颜色的方式。 HSL(色调,饱和度,亮度)和HSV(色调,饱和度,值)是表示颜色的两种替代模型,它们更直观,更接近人类倾向于考虑颜色的外观。

Hue是基色,在色轮上以(或多或少)的角度表示。饱和度是一个线性值,从0(灰色)到255(明亮,鲜艳的颜色)。亮度/值表示亮度,从0(黑色)到100(白色)。

从RGB转换的算法 - > HSL和HSL - > RGB(或HSV而不是HSL)非常简单。尝试将您的颜色转换为HS *,调整亮度并转换回来。通过将几个不同的亮度值从低到高,并将它们作为楔形排列在饼图中,您可以非常轻松地复制该图片。

答案 1 :(得分:8)

查看HSV colour space。使用它可以从给定的颜色开始产生不同的色调或色调。在efg's Computer Lab处有一个用于在RGB和HSV之间进行转换的Pascal / Delphi代码页面。

答案 2 :(得分:3)

Roderick,@ mghie链接很棒,另外试用Colorlib Delphi库,它可以让您在颜色模型和HTML颜色转换实用程序之间进行转换。是非常完整的,包括完整的源代码和免费软件;)。

查看演示application,在此图片中,您可以看到使用此库生成的蓝色托盘。

alt text