annotate Lib/colorsys.py @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 61787533395c
children 80e9cb6163b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10304
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
1 """Conversion functions between RGB and other color systems.
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
2
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
3 This modules provides two functions for each color system ABC:
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
4
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
5 rgb_to_abc(r, g, b) --> a, b, c
10305
5dbcddbded00 Oops, one more "x, y, z" to convert...
Fred Drake <fdrake@acm.org>
parents: 10304
diff changeset
6 abc_to_rgb(a, b, c) --> r, g, b
10304
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
7
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
8 All inputs and outputs are triples of floats in the range [0.0...1.0]
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
9 (with the exception of I and Q, which covers a slightly larger range).
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
10 Inputs outside the valid range may cause exceptions or invalid outputs.
10304
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
11
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
12 Supported color systems:
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
13 RGB: Red, Green, Blue components
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
14 YIQ: Luminance, Chrominance (used by composite video signals)
11759
020526e72eac Fix the question marks next to the expansions of some of the
Fred Drake <fdrake@acm.org>
parents: 10305
diff changeset
15 HLS: Hue, Luminance, Saturation
020526e72eac Fix the question marks next to the expansions of some of the
Fred Drake <fdrake@acm.org>
parents: 10305
diff changeset
16 HSV: Hue, Saturation, Value
10304
b648f9e8b3ed Adjusted comment at the top to be less confusing, following Fredrik
Fred Drake <fdrake@acm.org>
parents: 1035
diff changeset
17 """
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
18
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 # References:
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
20 # http://en.wikipedia.org/wiki/YIQ
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
21 # http://en.wikipedia.org/wiki/HLS_color_space
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
22 # http://en.wikipedia.org/wiki/HSV_color_space
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
23
16070
b5345e99596b added __all__ lists to a number of Python modules
Skip Montanaro <skip@pobox.com>
parents: 11759
diff changeset
24 __all__ = ["rgb_to_yiq","yiq_to_rgb","rgb_to_hls","hls_to_rgb",
b5345e99596b added __all__ lists to a number of Python modules
Skip Montanaro <skip@pobox.com>
parents: 11759
diff changeset
25 "rgb_to_hsv","hsv_to_rgb"]
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 # Some floating point constants
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 ONE_THIRD = 1.0/3.0
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 ONE_SIXTH = 1.0/6.0
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 TWO_THIRD = 2.0/3.0
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
32
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 # YIQ: used by composite video signals (linear combinations of RGB)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 # Y: perceived grey level (0.0 == black, 1.0 == white)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 # I, Q: color components
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
36
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 def rgb_to_yiq(r, g, b):
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 y = 0.30*r + 0.59*g + 0.11*b
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 i = 0.60*r - 0.28*g - 0.32*b
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 q = 0.21*r - 0.52*g + 0.31*b
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 return (y, i, q)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
42
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 def yiq_to_rgb(y, i, q):
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 r = y + 0.948262*i + 0.624013*q
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 g = y - 0.276066*i - 0.639810*q
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 b = y - 1.105450*i + 1.729860*q
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
47 if r < 0.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
48 r = 0.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
49 if g < 0.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
50 g = 0.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
51 if b < 0.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
52 b = 0.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
53 if r > 1.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
54 r = 1.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
55 if g > 1.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
56 g = 1.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
57 if b > 1.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
58 b = 1.0
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 return (r, g, b)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
60
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
61
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
62 # HLS: Hue, Luminance, Saturation
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 # H: position in the spectrum
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
64 # L: color lightness
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
65 # S: color saturation
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
66
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 def rgb_to_hls(r, g, b):
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 maxc = max(r, g, b)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 minc = min(r, g, b)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 # XXX Can optimize (maxc+minc) and (maxc-minc)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 l = (minc+maxc)/2.0
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
72 if minc == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
73 return 0.0, l, 0.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
74 if l <= 0.5:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
75 s = (maxc-minc) / (maxc+minc)
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
76 else:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
77 s = (maxc-minc) / (2.0-maxc-minc)
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 rc = (maxc-r) / (maxc-minc)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 gc = (maxc-g) / (maxc-minc)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 bc = (maxc-b) / (maxc-minc)
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
81 if r == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
82 h = bc-gc
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
83 elif g == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
84 h = 2.0+rc-bc
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
85 else:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
86 h = 4.0+gc-rc
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 h = (h/6.0) % 1.0
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 return h, l, s
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
89
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 def hls_to_rgb(h, l, s):
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
91 if s == 0.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
92 return l, l, l
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
93 if l <= 0.5:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
94 m2 = l * (1.0+s)
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
95 else:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
96 m2 = l+s-(l*s)
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 m1 = 2.0*l - m2
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 return (_v(m1, m2, h+ONE_THIRD), _v(m1, m2, h), _v(m1, m2, h-ONE_THIRD))
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
99
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 def _v(m1, m2, hue):
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 hue = hue % 1.0
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
102 if hue < ONE_SIXTH:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
103 return m1 + (m2-m1)*hue*6.0
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
104 if hue < 0.5:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
105 return m2
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
106 if hue < TWO_THIRD:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
107 return m1 + (m2-m1)*(TWO_THIRD-hue)*6.0
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 return m1
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
109
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
110
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
111 # HSV: Hue, Saturation, Value
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 # H: position in the spectrum
35857
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
113 # S: color saturation ("purity")
87e2210e07f4 r879@spiff: Fredrik | 2005-11-12 14:38:03 +0100
Fredrik Lundh <fredrik@pythonware.com>
parents: 16070
diff changeset
114 # V: color brightness
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
115
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 def rgb_to_hsv(r, g, b):
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 maxc = max(r, g, b)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 minc = min(r, g, b)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 v = maxc
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
120 if minc == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
121 return 0.0, 0.0, v
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 s = (maxc-minc) / maxc
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
123 rc = (maxc-r) / (maxc-minc)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 gc = (maxc-g) / (maxc-minc)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 bc = (maxc-b) / (maxc-minc)
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
126 if r == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
127 h = bc-gc
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
128 elif g == maxc:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
129 h = 2.0+rc-bc
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
130 else:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
131 h = 4.0+gc-rc
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 h = (h/6.0) % 1.0
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 return h, s, v
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
134
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 def hsv_to_rgb(h, s, v):
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
136 if s == 0.0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
137 return v, v, v
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
138 i = int(h*6.0) # XXX assume int() truncates!
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
139 f = (h*6.0) - i
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
140 p = v*(1.0 - s)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 q = v*(1.0 - s*f)
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 t = v*(1.0 - s*(1.0-f))
40450
cc992d75d5b3 Four months of trunk changes (including a few releases...)
Thomas Wouters <thomas@python.org>
parents: 35857
diff changeset
143 i = i%6
51194
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
144 if i == 0:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
145 return v, t, p
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
146 if i == 1:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
147 return q, v, p
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
148 if i == 2:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
149 return p, v, t
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
150 if i == 3:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
151 return p, q, v
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
152 if i == 4:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
153 return t, p, v
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
154 if i == 5:
61787533395c Merged revisions 69118 via svnmerge from
Benjamin Peterson <benjamin@python.org>
parents: 40450
diff changeset
155 return v, p, q
1035
5fb3f73a627f New module 'colorsys' implements conversions between different color systems.
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 # Cannot get here