def handle_collisions_paddles(self, display): c1 = display.safe_get(self.x + self.dx * self.dt, self.y) if c1 != Color.black() and c1 != Color.white(): self.dx *= -1 c2 = display.safe_get(self.x, self.y + self.dy * self.dt) if c2 != Color.black() and c2 != Color.white(): self.dy *= -1
def __init__(self, bor): # self.currnet_idx = 16 self.currnet_idx = 19 texte = text.Text(bor) texte.set_text(10, 1, "XD XD XD XD") self.effects = [ texte, # 0 pixels.Pixels(bor), # 1 rainbow.Rainbow(bor), # 2 sinrainbow2.SinRainbow2(bor), # 3 sinrainbow.SinRainbow(bor), # 4 # tetris.Tetris(10, 10), metaballs.Metaballs(bor), # 5 disco.Disco(), # 6 pulsingcolor.PulsingColor(Color.blue()), # 7 xdcolor.XDColor(Color.red()), # 8 xdcolor.XDColor(Color.green()), # 9 xdcolor.XDColor(Color.blue()), # 10 solidcolor.SolidColor(Color.black()), # 11 droplet.Droplet(bor), # 12 paint.Paint(bor), # 13 tennis.Tennis(bor), # 14 rays.Rays(bor), # 15 plasma.Plasma(bor), # 16 #GifPlayer('/home/pi/xD-Table-Py/effects/gifplayer/gifs/fireplace_smol.gif'), # 17 GifPlayer( '/home/pi/xD-Table-Py/effects/gifplayer/gifs/fireplace_doniel.gif' ), # 17 rainbow_slow.RainbowSlow(bor), # 18 kibana.Heatmap(), # 19 ]
def __init__(self, bor): self.set_defaults() self.bor = bor self.palette = [Color.white(), Color.red(), Color.green(), Color.blue(), Color(255,255,0), Color(0,255,255), Color(255,0,255), Color(255,121,0), Color.black()] self.current = Color.blue()
def render(self, display): for x in xrange(display.width): for y in xrange(display.height): display.set( x, y, Color(*colorsys.hsv_to_rgb(self.get_val(x, y), 1, 255))) display.set(int(self.x), int(self.y), Color(255, 255, 255))
def __init__(self, bor): self.set_defaults() self.bor = bor self.width = bor.width self.height = bor.height r = random() self.balls = [ Ball(self, Color.hsv(r)), Ball(self, Color.hsv((r + 0.5) % 1.0)) ]
def __init__(self, bor): self.set_defaults() self.bor = bor self.width = bor.width self.height = bor.height self.ball = Ball(self) self.paddle1 = Paddle(self, 0, Color.red()) self.paddle2 = Paddle(self, bor.height - 1, Color.blue()) self.win_animation = False self.factor = 1.0 self.dfactor = 0.9
def render(self, display): display.fill(Color()) shift = 0 for x in range(display.width): y = self.get_y(x) hue = (self.hue + shift) % 1 if self.bor.get(x, y): hue += 0.5 c = Color(*colorsys.hsv_to_rgb(hue, self.sat, self.val)) for dy in range(self.sinewidth): display.set(x, y + dy, c) display.set(x, y - dy, c) shift += self.dshift
def __init__(self, bor): k = constants.font.keys() k.sort() self.set_text(0, 0, ''.join(k)) self.color = Color(0, 0, 255) self.speed = 15 self.repeat = True self.bor = bor
def render(self, display): fade_shiet = 1.0 - (self.fade_rate * self.dt) % 1 # print(fade_shiet) display.fade(fade_shiet) for y in range(display.height): for x in range(display.width): if self.bor.get(x, y) or random() < (self.random_rate * self.dt): display.set(x, y, Color( *colorsys.hsv_to_rgb(random(), self.sat, self.val)))
def render(self, display): if self._matrix is None: display.fill(Color(self.ERROR_COOLOR)) return for y, row in enumerate(self._matrix): for x, color_idx in enumerate(row): display.safe_set( x, y, self.COLOR_PALETTE.get(color_idx, self.ERROR_COOLOR))
def __init__(self, bor): self.set_defaults() self.bor = bor self.dt = 0 self.cx = 4.5 self.cy = 4.5 self.cr = .0 self.dr = 3 self.cc = Color.blue()
def render(self, display): shift = 0 for y in range(display.height): for x in range(display.width): hue = self.hue % 1 if self.bor.get(x, y): hue += 0.5 display.set( x, y, Color(*colorsys.hsv_to_rgb(hue, self.sat, self.val)))
def render(self, display): display.fill(Color()) shift = 0 for x in range(display.width): for y in range(display.height): hue = (self.hue + shift) % 1 if self.bor.get(x, y): hue += 0.5 dist = dist_to_sine(x, y, self.const, self.amp, self.freq, self.phase) dist = 1.0 / (1.0 + dist) #cp = copy.copy(c) #cp.fade(dist) c = Color(*colorsys.hsv_to_rgb(hue, self.sat, self.val * dist)) display.set(x, y, c) shift += self.dshift
def render(self, display): #display.fill(Color.blue()) for y in range(display.height): for x in range(display.width): dist = self.dist_to_circle(x, y) dist = 1.0 / (dist + 1.0) if dist > 1.0: print(dist) # print(dist) display.set(x, y, Color.blue().fade(dist))
def render(self, display): display.fill(Color(0, 0, 0)) for x in xrange(display.width): for y in xrange(display.height): r, g, b = 0, 0, 0 for ball in self.balls: val = ball.get_val(x, y) r += ball.c.r * val g += ball.c.g * val b += ball.c.b * val if r > 255: r = 255 if g > 255: g = 255 if b > 255: b = 255 if self.bor.get(x, y): display.set(x, y, Color(255, 255, 255)) else: display.set(x, y, Color(r, g, b))
def render(self, display): for y in range(display.height): for x in range(display.width): hue = (pnoise3( (x / self.x_zoom) + self.shift_x, (y / self.y_zoom) + self.shift_y, self.z / self.z_zoom) + 1.0) / 2.0 hue += self.hue_off if self.bor.get(x, y): hue += 0.5 c = Color.hsv(hue + 0.3) display.set(x, y, c)
def render(self, display): if self.win_animation: if self.winner == 1: c = self.paddle1.c.clone() display.fill(c.fade(self.factor)) if self.winner == 2: c = self.paddle2.c.clone() display.fill(c.fade(self.factor)) return display.fill(Color(0, 0, 0)) self.ball.render(display) self.paddle1.render(display) self.paddle2.render(display) self.ball.handle_collisions_paddles(display)
def __init__(self): self.phase = 0 self.dphase = 5.0 self.colors = [ Color(255, 182, 193), Color(127, 255, 212), Color(240, 230, 140), Color(165, 214, 167), Color(211, 211, 211), Color(129, 199, 132) ]
def __init__(self, ctx): self.ctx = ctx self.c = Color.white() self.dt = 0 self.speed = 1 self.reset()
def render(self, display): display.fill(Color(0, 0, 0)) for x in xrange(display.width): n = x - self.x - int(self.shift) - 1 if n < len(self.buf) and n >= 0: self.render_col(x, self.y, n, display)
import sys from PIL import Image from display import Color, DisplayDriver framebuffer = DisplayDriver() im = Image.open(sys.argv[1]) rgb = im.convert('RGBA') for y in range(16): for x in range(16): r, g, b, a = rgb.getpixel((x, y)) c = Color.from_rgb(r, g, b) c.multiply(factor=0.25 * a / 255.0) framebuffer.set_pixel(y, (15 - x), c) framebuffer.present() try: while True: pass except KeyboardInterrupt: pass
class Heatmap(object): COLOR_PALETTE = { 0: Color(247, 251, 255), 1: Color(227, 238, 249), 2: Color(208, 225, 242), 3: Color(182, 212, 233), 4: Color(148, 196, 223), 5: Color(107, 174, 214), 6: Color(74, 152, 201), 7: Color(46, 126, 188), 8: Color(23, 100, 171), 9: Color(8, 74, 145), None: Color(0, 0, 0) } FETCH_INTERVAL = 5 * 60 # seconds ERROR_COOLOR = Color(128, 0, 0) def __init__(self): self._last_fetch = 0 self._matrix = None # im = Image.open(gif_path) # if im.size != (10, 10): # raise Exception('Wrong giff size! Expected 10x10 got %sx%s' % im.size) # rgb_im = im.convert('RGB') # self._current_frame_idx = 0 # self._frames = [] # for frame in ImageSequence.Iterator(im): # self._frames.append(frame.convert('RGB')) # self._dz = 8 # self._z = 0 def step(self, dt): if time.time() - self._last_fetch > self.FETCH_INTERVAL: self._last_fetch = time.time() self._matrix = get_matrix() # self._z += self._dz * dt # self._current_frame_idx = int(self._z % len(self._frames)) def render(self, display): if self._matrix is None: display.fill(Color(self.ERROR_COOLOR)) return for y, row in enumerate(self._matrix): for x, color_idx in enumerate(row): display.safe_set( x, y, self.COLOR_PALETTE.get(color_idx, self.ERROR_COOLOR))
import sys sys.path.append('../utils') from driver import Driver from display import Display, Color dr = Driver("192.168.1.214", 6454) display = Display(10, 10) pallette = [Color.hsv(i / 22 + 0.5) for i in range(10)] def draw_bar(x, height): for i in range(height + 1): display.set(x, i, pallette[i]) with open('cava.output') as f: while True: l = f.readline().strip().split(';')[10:-1] l = l[::-1] l = [int(i) for i in l] display.fill(Color.black()) for i, c in enumerate(l): draw_bar(i, c) dr.set_matrix(display.serialize())
def render(self, display): current_frame = self._frames[self._current_frame_idx] for y in range(display.height): for x in range(display.width): display.set(x, y, Color(*current_frame.getpixel((x, y))))