41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
|
|
#
|
|
# SPDX-License-Identifier: MIT
|
|
"""
|
|
`rainbowio` - Provides the `colorwheel()` function
|
|
===========================================================
|
|
See `CircuitPython:rainbowio` in CircuitPython for more details.
|
|
Not supported by all boards.
|
|
|
|
* Author(s): Kattni Rembor, Carter Nelson
|
|
"""
|
|
|
|
|
|
def colorwheel(color_value):
|
|
"""
|
|
A colorwheel. ``0`` and ``255`` are red, ``85`` is green, and ``170`` is blue, with the values
|
|
between being the rest of the rainbow.
|
|
|
|
:param int color_value: 0-255 of color value to return
|
|
:return: tuple of RGB values
|
|
"""
|
|
color_value = int(color_value)
|
|
if color_value < 0 or color_value > 255:
|
|
r = 0
|
|
g = 0
|
|
b = 0
|
|
elif color_value < 85:
|
|
r = int(255 - color_value * 3)
|
|
g = int(color_value * 3)
|
|
b = 0
|
|
elif color_value < 170:
|
|
color_value -= 85
|
|
r = 0
|
|
g = int(255 - color_value * 3)
|
|
b = int(color_value * 3)
|
|
else:
|
|
color_value -= 170
|
|
r = int(color_value * 3)
|
|
g = 0
|
|
b = int(255 - color_value * 3)
|
|
return r << 16 | g << 8 | b
|