args = parser.parse_args() GRAVITY_Y = 0.2 def rand_c(): while True: r = random.randrange(0, 0xff) g = random.randrange(0, 0xff) b = random.randrange(0, 0xff) s = r+g+b if s > 0x60: return r << 16 | g << 8 | b screen = LedScreen(args.ip, args.port) panel_x = screen.size_x panel_y = screen.size_y def clear_screen(): for x in range(panel_x): for y in range(panel_y): screen.set_px(x, y, 0, immediate=False) class Particle: def __init__(self, ttl, color, pos, vel): self.ttl = ttl self.age = 0
#!/usr/bin/python3 import sys import time import random import math from ledScreen import LedScreen screen = LedScreen(sys.argv[1], sys.argv[2]) panel_x = screen.size_x panel_y = screen.size_y screen.read_screen() for x in range(panel_x): for y in range(panel_y): screen.set_px(x, y, 0xffffff ^ screen.image[x][y])
t = time.time() map = Octree(args.r * 2) def rand_c(): while True: r = random.randrange(0, 0xff) g = random.randrange(0, 0xff) b = random.randrange(0, 0xff) s = r + g + b if s > 0x60: return r << 16 | g << 8 | b screen = LedScreen(args.ip, args.port) panel_x = screen.size_x panel_y = screen.size_y def add(a, b): c = [] for i in range(len(a)): c.append(a[i] + b[i]) return c def mul(a, s): c = [] for i in range(len(a)):
rA = (a >> 16) & 0xff gA = (a >> 8) & 0xff bA = (a ) & 0xff rB = (b >> 16) & 0xff gB = (b >> 8) & 0xff bB = (b ) & 0xff r = int(rA * (1-n) + rB * n) g = int(gA * (1-n) + gB * n) b = int(bA * (1-n) + bB * n) return r << 16 | g << 8 | b screen = LedScreen(args.ip, args.port) panel_x = screen.size_x panel_y = screen.size_y x = 0 y = 0 fadeF = False fadeB = False i = 0 if args.fg == "random": fg = getRandomC() elif args.fg == "fade":
from ledScreen import LedScreen parser = argparse.ArgumentParser( description="Sends a image to a PixelFlut screen") parser.add_argument("ip") parser.add_argument("port") parser.add_argument("img") parser.add_argument("-i", action="store_true", help="Invert the image") parser.add_argument("-l", action="store_true", help="Loop the image sequence (gif)") args = parser.parse_args() screen = LedScreen(args.ip, args.port) size = screen.size_x, screen.size_y try: seq = Image.open(args.img) while True: for im in ImageSequence.Iterator(seq): temp = im.copy() temp.thumbnail(size, Image.ANTIALIAS) temp = temp.convert("RGB") off_x = (size[0] - temp.size[0]) // 2 off_y = (size[1] - temp.size[1]) // 2 for x in range(temp.size[0]):
i = 0 max_i = 100 while z < 100 and i < max_i: i += 1 nx = x2 - y2 + x ny = xy + xy + y x2 = nx * nx y2 = ny * ny xy = nx * ny z = x2 + y2 return pick_color(i / max_i) screen = LedScreen(sys.argv[1], sys.argv[2]) panel_x = screen.size_x panel_y = screen.size_y pois = [(-0.170337, -1.06506), (0.42884, -0.231345), (-1.62917, -0.0203968), (-0.761574, -0.0847596)] center = random.choice(pois) scale = 1 / 10 center_x = center[0] center_y = center[1] speed = 0.99 interval = 0.05 t0 = time.time()
#!/usr/bin/python3 import sys import time import random import math from ledScreen import LedScreen screen = LedScreen(sys.argv[1], sys.argv[2]) panel_x = screen.size_x panel_y = screen.size_y screen.read_screen() class Ball: def __init__(self, x, y, r, c): self.x = x self.y = y self.r = r self.c = c self.vx = 0 self.vy = 0 def collides(self, other): dx = self.x - other.x dy = self.y - other.y r = self.r + other.r return dx * dx + dy * dy < r * r
parser.add_argument("-c", help="limit the field by a circle", action='store_true') args = parser.parse_args() def rand_c(): while True: r = random.randrange(0, 0xff) g = random.randrange(0, 0xff) b = random.randrange(0, 0xff) s = r+g+b if s > 0x60: return r << 16 | g << 8 | b screen = LedScreen(args.ip, args.port) panel_x = screen.size_x panel_y = screen.size_y x = panel_x // 2 y = panel_y // 2 c = rand_c() steps = 0 r2 = min(x, y)**2 while True: dx, dy = random.choice([(-1, 0), (1, 0), (0, -1), (0, 1)]) x += dx y += dy