summaryrefslogtreecommitdiff
path: root/client/lib/color.js
blob: 084aca7073fe1d48cbfad01d96d4bda607801a63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const palettes = [
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [1.0, 1.0, 1.0], [0.00, 0.33, 0.67]],
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [1.0, 1.0, 1.0], [0.00, 0.10, 0.20]],
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [1.0, 1.0, 1.0], [0.30, 0.20, 0.20]],
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [1.0, 1.0, 0.5], [0.80, 0.90, 0.30]],
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [1.0, 0.7, 0.4], [0.00, 0.15, 0.20]],
  [[0.5, 0.5, 0.5], [0.5, 0.5, 0.5], [2.0, 1.0, 0.0], [0.50, 0.20, 0.25]],
  [[0.8, 0.5, 0.4], [0.2, 0.4, 0.2], [2.0, 1.0, 1.0], [0.00, 0.25, 0.25]],
]

let palette = palettes[1]

function channel (t, a, b, c, d) {
  return a + b * Math.cos(2 * Math.PI * (c * t + d))
}

function color (t) {
  let a, b, c, d
  const rgb = []
  for (var i = 0; i < 3; i++) {
    a = palette[0][i]
    b = palette[1][i]
    c = palette[2][i]
    d = palette[3][i]
    rgb[i] = Math.round(channel(t, a, b, c, d) * 255)
  }
  return 'rgb(' + rgb + ')'
}

export default color