#!/usr/bin/env python3
from math import sin, cos, pi, fmod
from time import sleep
from random import randint, choice
import shutil
def print_tc(string, fg, bg):
print("\x1b[38;2;{};{};{};48;2;{};{};{}m{}".format(fg[0], fg[1], fg[2],
bg[0], bg[1], bg[2], string), end="")
bars = [
' ',
'▏',
'▎',
'▍',
'▌',
'▋',
'▊',
'▉']
n = 12
t = 0
while(1):
p = 3 + 3*sin(t/300)
width = 8 + 8 * shutil.get_terminal_size((80,25))[0]
hue = (0.5*(1+cos(t*0.017)), 0.5*(1+sin(t*0.013)), 0.5*(1+sin(t*0.011)))
spokes = sorted([int(width/2 + width/2 * -cos(fmod(p+i*pi/n, pi)))
for i in range(n)]) + [width]
vs = [10 + 245*sin(pi*s/width) for s in spokes]
colors = [(int(hue[0]*v), int(hue[1]*v), int(hue[2]*v)) for v in vs]
print_tc("\n", colors[0], colors[0])
s = 0
for i in range(8, width, 8):
if(spokes[s] >= i):
print(' ', end="")
else:
print_tc(bars[spokes[s]%8], colors[s], colors[s+1])
s += 1
sleep(0.01)
t += 1