A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | HSL->RGB | |||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||
4 | nominal input values | hardware values | HEX | coeff. to normalized | control | diff | division-free MOD(x, 91*2^14) | |||||||||||||||||||
5 | name | range | value | bits | value | |||||||||||||||||||||
6 | H | -180°..+180° | 240.00° | 14s | 10922 | 0x00002AAA | 180/2^13 | 239.9854° | 0.0041% | |||||||||||||||||
7 | S | 0..255 | 255 | 9 | 510 | 0x000001FE | 1/2 | 255.000 | 0.0000% | formula: =MOD(G16, (2^14*273/3)) | ||||||||||||||||
8 | L | 0..255 | 128 | 12 | 2042 | 0x000007F9 | 1/2^4 | 127.600 | 0.0000% | MOD(G16, 91*2^14) = G16 - (91*2^14) * INT(G16 * 90 / 2^27) | ||||||||||||||||
9 | h | 0°..360° | 240.00° | 14 | 10922 | 0x00002AAA | 360/2^14 | 239.985 | 0.0041% | |||||||||||||||||
10 | s | 0..1 | 0.9961 | |||||||||||||||||||||||
11 | l | 0..1 | 0.4984 | H' | 2981706 | |||||||||||||||||||||
12 | m=91*2^14 | 1490944 | ||||||||||||||||||||||||
13 | floating-point "precise" math from wiki | integer arithmetics | int(G16/m) | 1 | 1 | |||||||||||||||||||||
14 | L' = 1-|2l-1| | 0..1 | 0.99688 | 12 | 4083.2 | 0x00000FF3 | 1/2^12 | 0.99688 | 0.0000% | G16 - m * int(G16/m) | 1490762 | 1490762 | ||||||||||||||
15 | C = L' * S | 0..1 | 0.99298 | 21 | 2082432 | 0x001FC680 | 1/2^21 | 0.99298 | 0.0000% | |||||||||||||||||
16 | H' = h / 60 | 0..5.9(9) | 4.00000 | 23 | 2981706 | 0x002D7F4A | 180/2^27 | 3.99878 | 0.0203% | |||||||||||||||||
17 | H'₂ = H' mod 2 | 0..2 | 0.00000 | 21 | 1490762 | 0x0016BF4A | 180/2^27 | 1.99927 | 99.9634% | |||||||||||||||||
18 | H'₂₋₁ = H' mod 2 - 1 | -1..+1 | -1.00000 | 21s | 745290 | 0x000B5F4A | 180/2^27 | 0.99951 | 99.9756% | |||||||||||||||||
19 | 1-|H' mod 2 - 1| | 0..1 | 0.00000 | 21 | 182 | 0x000000B6 | 180/2^27 | 0.00024 | 0.0244% | |||||||||||||||||
20 | X = C * H'final | 0..1 | 0.00000 | 21 | 508 | 0x000001FC | 1/2^21 | 0.00024 | 0.0242% | |||||||||||||||||
21 | R1 | 0..1 | 0.00000 | 21 | 0 | 0x00000000 | 1/2^21 | 0.00000 | 0.0000% | |||||||||||||||||
22 | G1 | 0..1 | 0.00000 | 21 | 508 | 0x000001FC | 1/2^21 | 0.00024 | 0.0242% | |||||||||||||||||
23 | B1 | 0..1 | 0.99298 | 21 | 2082432 | 0x001FC680 | 1/2^21 | 0.99298 | 0.0000% | |||||||||||||||||
24 | m | 0..1 | 0.00195 | 12 | 7 | 0x00000007 | 1/2^12 | 0.00171 | 0.0238% | |||||||||||||||||
25 | R | 0..1023 | 1 | 10 | 1 | 0x00000001 | 1 | 1 | 0.0000% | |||||||||||||||||
26 | G | 0..1023 | 1 | 10 | 1 | 0x00000001 | 1 | 1 | 0.0000% | |||||||||||||||||
27 | B | 0..1023 | 1018 | 10 | 1018 | 0x000003FA | 1 | 1018 | 0.0000% | |||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 |