You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.3 KiB
77 lines
1.3 KiB
#!/usr/bin/env python3 |
|
|
|
import socket |
|
import random |
|
|
|
IP_ADDRESS = "2001:638:904:ffc9::2" |
|
PORT = 1234 |
|
|
|
W = 1920 |
|
H = 1080 |
|
|
|
s_w = 100 |
|
s_c = "BFFFD4" |
|
s_c2 = "FFBFEA" |
|
|
|
def color_to_tuple(color): |
|
return (int(color[0:2], 16), int(color[2:4], 16), int(color[4:6], 16)) |
|
|
|
def merge_tuple(a, b, o): |
|
return (o(a[0], b[0]),o(a[1], b[1]),o(a[2], b[2])) |
|
|
|
def tuple_to_color(tuple): |
|
return (str(hex(tuple[0]))[2:] + str(hex(tuple[1]))[2:] +str(hex(tuple[2]))[2:]).upper() |
|
|
|
|
|
from_c = color_to_tuple(s_c) |
|
to_c = color_to_tuple(s_c2) |
|
|
|
diff_c = merge_tuple(from_c, to_c, lambda a,b : (b-a) // s_w) |
|
|
|
print(from_c) |
|
colors = [] |
|
for i in range(s_w): |
|
c = merge_tuple(from_c, diff_c, lambda a,b: a + (b * i)) |
|
print(c) |
|
colors.append(tuple_to_color(c)) |
|
|
|
print(to_c) |
|
|
|
print(from_c, to_c, diff_c, colors) |
|
|
|
|
|
s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) |
|
s.connect((IP_ADDRESS, PORT)) |
|
|
|
x = W//2 |
|
y = H//2 |
|
d = 0 |
|
c = 0 |
|
|
|
while True: |
|
|
|
if c < 0: |
|
d = (d+random.randint(-1,1)) % 4 |
|
c = random.randint(80, 100) |
|
|
|
if d == 0: |
|
x += 0 |
|
y += -1 |
|
elif d == 1: |
|
x += 1 |
|
y += 0 |
|
elif d == 2: |
|
x += 0 |
|
y += 1 |
|
elif d == 3: |
|
x += -1 |
|
y += 0 |
|
|
|
x = x%W |
|
y = y%H |
|
|
|
for i in range(s_w): |
|
j = i - s_w//2 |
|
s.send("PX {} {} {}\n".format(x+j,y+j, colors[i]).encode("utf-8")) |
|
|
|
c -= 1
|
|
|