颜色插值
🌐 Color interpolation
用于各种颜色空间中颜色的插值器。
🌐 Interpolators for colors in various color spaces.
interpolateRgb(a, b)
d3.interpolateRgb("purple", "orange")示例 · 来源 · 返回一个在两个颜色 a 和 b 之间进行 RGB 颜色空间插值的函数,并可配置 伽马。如果未指定伽马值,则默认为 1.0。颜色 a 和 b 不必是 RGB 格式;它们将使用 d3.rgb 转换为 RGB。插值函数的返回值是一个 RGB 字符串。
interpolateRgbBasis(颜色)
🌐 interpolateRgbBasis(colors)
d3.interpolateRgbBasis(["purple", "green", "orange"])示例 · 来源 · 返回通过指定的 colors 数组的统一非有理 B 样条插值器,这些颜色会被转换为 RGB 颜色空间。会生成隐式控制点,使插值器在 t = 0 时返回 colors[0],在 t = 1 时返回 colors[colors.length - 1]。当前不支持不透明度插值。另请参见 d3.interpolateBasis,以及有关示例,请参见 d3-scale-chromatic。
interpolateRgbBasisClosed(colors)
d3.interpolateRgbBasisClosed(["purple", "green", "orange"])示例 · 来源 · 返回通过指定的 colors 数组的统一非有理 B 样条插值器,这些颜色会被转换为 RGB 颜色空间。控制点会被隐式重复,使得在 t 属于 [0,1] 时重复时,得到的样条具有循环的 C² 连续性;例如,这对于创建循环颜色刻度非常有用。目前不支持透明度插值。另请参阅 d3.interpolateBasisClosed,有关示例,请参阅 d3-scale-chromatic。
interpolateHsl(a, b)
d3.interpolateHsl("purple", "orange")示例 · 来源 · 返回一个在两个颜色 a 和 b 之间的 HSL 颜色空间插值器。颜色 a 和 b 不必是 HSL;它们将使用 d3.hsl 转换为 HSL。如果任一颜色的色相或饱和度为 NaN,将使用另一颜色的通道值。使用色相之间的最短路径。插值器的返回值是一个 RGB 字符串。
interpolateHslLong(a, b)
d3.interpolateHslLong("purple", "orange")示例 · 来源 · 像 interpolateHsl,但不使用色相之间的最短路径。
interpolateLab(a, b)
d3.interpolateLab("purple", "orange")示例 · 来源 · 返回两个颜色 a 和 b 之间的 CIELAB 颜色空间 插值器。颜色 a 和 b 不必在 CIELAB 中;它们将使用 d3.lab 转换为 CIELAB。插值器的返回值是一个 RGB 字符串。
interpolateHcl(a, b)
d3.interpolateHcl("purple", "orange")示例 · 来源 · 返回两个颜色 a 和 b 之间的 CIELChab 颜色空间 插值器。颜色 a 和 b 不必属于 CIELChab;它们将使用 d3.hcl 转换为 CIELChab 。如果任一颜色的色相或饱和度为 NaN,则使用对方颜色的通道值。使用色相之间的最短路径。插值器的返回值是 RGB 字符串。
interpolateHclLong(a, b)
d3.interpolateHclLong("purple", "orange")示例 · 来源 · 像 interpolateHcl,但不使用色相之间的最短路径。
interpolateCubehelix(a, b)
d3.interpolateCubehelix("purple", "orange")d3.interpolateCubehelix.gamma(3)("purple", "orange")示例 · 来源 · 返回一个在两个颜色 a 和 b 之间使用可配置的 gamma 的 Cubehelix 颜色空间插值器。如果未指定 gamma,默认为 1.0。颜色 a 和 b 不必是 Cubehelix,它们将使用 d3.cubehelix 转换为 Cubehelix。如果任一颜色的色相或饱和度为 NaN,则使用另一颜色的通道值。使用色相之间的最短路径。插值器的返回值是一个 RGB 字符串。
interpolateCubehelixLong(a, b)
d3.interpolateCubehelixLong("purple", "orange")d3.interpolateCubehelixLong.gamma(3)("purple", "orange")示例 · 来源 · 类似 interpolateCubehelix,但不使用色相之间的最短路径。
interpolateColor.gamma(gamma)
d3.interpolateRgb.gamma(2.2)("purple", "orange")假设 interpolate 是 interpolateRgb、interpolateCubehelix 或 interpolateCubehelixLong 之一,则返回使用指定 gamma 的相同类型的新插值器工厂。有关 gamma 校正的更多信息,请参见 Eric Brasseur 的文章 Gamma error in picture scaling。
🌐 Given that interpolate is one of interpolateRgb, interpolateCubehelix or interpolateCubehelixLong, returns a new interpolator factory of the same type using the specified gamma. See Eric Brasseur’s article, Gamma error in picture scaling, for more on gamma correction.
interpolateHue(a, b)
d3.interpolateHue(20, 340)(0.5) // 0示例 · 来源 · 返回两个色相角 a 和 b 之间的插值器。如果任一色相为 NaN,则使用对方的值。使用色相之间的最短路径。插值器的返回值是 [0, 360) 范围内的数字。
标准插值器将从起始值 a 在 t = 0 时过渡到结束值 b 在 t = 1 时,而样条插值器则使用分段多项式函数平滑地融合在 [0,1] 范围内的多个输入值。目前仅支持三次均匀非有理 B 样条,也称为基样条。
🌐 Whereas standard interpolators blend from a starting value a at t = 0 to an ending value b at t = 1, spline interpolators smoothly blend multiple input values for t in [0,1] using piecewise polynomial functions. Only cubic uniform nonrational B-splines are currently supported, also known as basis splines.