顏色內插
各種色彩空間中顏色的內插器。
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"])
範例 · 原始碼 · 傳回一個均勻非有理 B 樣條插值器,通過指定的顏色陣列,這些顏色會轉換為RGB 色彩空間。控制點會隱含重複,因此產生的樣條曲線在 [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")
範例 · 原始碼 · 使用可設定的 gamma,傳回兩個顏色 a 和 b 之間的 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 回傳同類型的新的內插器工廠。請參閱 Eric Brasseur 的文章,圖片縮放中的 Gamma 錯誤,以進一步了解 Gamma 校正。
interpolateHue(a, b)
d3.interpolateHue(20, 340)(0.5) // 0
範例 · 來源 · 回傳兩個色相角 a 和 b 之間的內插器。如果任一色相為 NaN,會使用相反的值。會使用色相之間最短的路徑。內插器的回傳值是 [0, 360) 中的一個數字。
標準內插器會在 t = 0 時從起始值 a 混合到 t = 1 時的結束值 b,而樣條內插器會使用分段多項式函數,針對 [0,1] 中的 t 平滑混合多個輸入值。目前僅支援三次均勻非有理 B 樣條,也稱為基底樣條。