-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcolors.roy
31 lines (27 loc) · 1.04 KB
/
colors.roy
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
// Generate a color palette RGB values.
//
// Nice info on generating color palettes
// http://krazydad.com/tutorials/makecolors.php
//
type RGB = { red: Number, green: Number, blue: Number }
let prime_color_sequence (count: Number) (offset: Number) =
let frequency = 0.3
if count == 0 then
nil
else
// let index = ((sine ((count * frequency) + offset)) / 180 * 127) + 128
let index = ((Math.sin((count * frequency) + offset)) * 127) + 128
Cons (index) (prime_color_sequence (count - 1) offset)
let zip_rgb (a: List Number) (b: List Number) (c: List Number) =
match a
case Nil = nil
case (Cons a1 as) = match b
case Nil = nil
case (Cons b1 bs) = match c
case Nil = nil
case (Cons c1 cs) = Cons { red: a1, green: b1, blue: c1 } (zip_rgb as bs cs)
let color_sequence a =
let red = prime_color_sequence 64 0
let green = prime_color_sequence 64 2
let blue = prime_color_sequence 64 4
zip_rgb red green blue