颜色插值
各种颜色空间中颜色插值器。
interpolateRgb(a, b)
d3.interpolateRgb("purple", "orange")
示例 · 源代码 · 返回两个颜色a和b之间的 RGB 颜色空间插值器,具有可配置的gamma。如果未指定 gamma,则默认为 1.0。颜色a和b不需要是 RGB 格式;它们将使用d3.rgb转换为 RGB 格式。插值器的返回值是一个 RGB 字符串。
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] 中围绕t 重复时具有循环 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之间的 Cubehelix 颜色空间插值器,使用可配置的gamma。如果未指定 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 误差。
interpolateHue(a, b)
d3.interpolateHue(20, 340)(0.5) // 0
示例 · 源代码 · 返回两个色调角a和b之间的插值器。如果任一色调为 NaN,则使用相对值。使用色调之间的最短路径。插值器的返回值是在 [0, 360) 中的数字。
标准插值器从t = 0 时的起始值a混合到t = 1 时的结束值b,而样条插值器使用分段多项式函数在t ∈ [0,1] 中平滑地混合多个输入值。目前仅支持三次均匀非有理B 样条,也称为基样条。