예제 #1
0
    def get_color(self, offset):

        if offset < 0.0 or offset > 1.0:
            raise IndexError("Invalid offset.")

        for index in range(len(self.palette)):

            # skip the first item
            if index == 0:
                continue

            if self.palette[index][0] >= offset:
                section_begin_offset = self.palette[index - 1][0]
                section_end_offset = self.palette[index][0]

                percent = (offset - section_begin_offset) / (
                    section_end_offset - section_begin_offset)
                new_color = []
                for color in range(3):
                    new_color.append(
                        int(self.palette[index - 1][1][color] +
                            ((self.palette[index][1][color] -
                              self.palette[index - 1][1][color]) * percent)))

                return Color(min(new_color[0], 255), min(new_color[1], 255),
                             min(new_color[2], 255))

        assert False
예제 #2
0
    def pattern(self):

        bottles = geo.calculate_bottle_locations()
        self.trap.send_entropy()

        scale = 0
        while True:
            for bottle, coord in enumerate(bottles):
                z = self.circle(coord[0], coord[1])
                y = self.circle2(coord[0], coord[1])
                self.trap.set_color(bottle + 1, Color(z % 255, 0, y % 255))

            if self.stop_thread:
                break

            scale += .01
            self.z_factor += .0005
예제 #3
0
def transition_sweep_clear(trap):
    for bottle, angle in geo.enumerate_all_bottles():
        trap.set_color(bottle, Color(0, 0, 0))
        sleep(.02)
예제 #4
0
def dim_color_with_arc_distance(angle0, angle1, color):
    delta = math.fabs(angle0 - angle1)
    dim = max(0.0, 1.0 - (delta / FADE_DIVISOR))
    return Color(color.red * dim, color.green * dim, color.blue * dim)
예제 #5
0
#!/usr/bin/env python3

import os
import sys
import math
import datetime
from colorsys import hsv_to_rgb
from random import random
from hippietrap.hippietrap import HippieTrap, BROADCAST, NUM_NODES, NUM_RINGS
from hippietrap.color import Color, ColorGenerator
from hippietrap.geometry import HippieTrapGeometry
from hippietrap.pattern import PatternBase, run_pattern
from hippietrap.framebuffer import FrameBuffer
from time import sleep, time

SECONDS_COLOR = Color(255, 125, 25)
MINUTES_COLOR = Color(86, 0, 255)
HOURS_COLOR = Color(20, 204, 50)
ANGLE_DELTA = 25
FADE_DIVISOR = 10


def dim_color_with_arc_distance(angle0, angle1, color):
    delta = math.fabs(angle0 - angle1)
    dim = max(0.0, 1.0 - (delta / FADE_DIVISOR))
    return Color(color.red * dim, color.green * dim, color.blue * dim)


class Pattern(PatternBase):

    geo = HippieTrapGeometry()
예제 #6
0
#!/usr/bin/env python3

import os
import sys
import math
import random

from time import sleep, time
from hippietrap.hippietrap import HippieTrap, BROADCAST, NUM_NODES
from hippietrap.color import Color

with HippieTrap() as ch:
    ch.begin()

    start = int(sys.argv[1])

    for id in range(start, NUM_NODES + 1):
        ch.set_color(id, Color(0, 0, 0))

    for id in range(start, NUM_NODES + 1):
        print(id)
        ch.set_color(id, Color(0, 0, 255))
        sleep(.25)
예제 #7
0
파일: fart.py 프로젝트: mayhem/hippie-trap
PERIOD = 1500

angle = .08

with HippieTrap() as ch:
    ch.begin()
    try:
        color_offset = 0.0
        while True:
            for bottle in range(1, 14):
                array = []

                rgb = hsv_to_rgb(random(), 1, 1)
                array.append(
                    Color(int(255 * rgb[0]), int(255 * rgb[1]),
                          int(255 * rgb[2])))

                rgb = hsv_to_rgb(random(), 1, 1)
                array.append(
                    Color(int(255 * rgb[0]), int(255 * rgb[1]),
                          int(255 * rgb[2])))

                rgb = hsv_to_rgb(random(), 1, 1)
                array.append(
                    Color(int(255 * rgb[0]), int(255 * rgb[1]),
                          int(255 * rgb[2])))

                rgb = hsv_to_rgb(random(), 1, 1)
                array.append(
                    Color(int(255 * rgb[0]), int(255 * rgb[1]),
                          int(255 * rgb[2])))
예제 #8
0
파일: solid.py 프로젝트: mayhem/hippie-trap
 def __init__(self, trap):
     super(PatternBase, self).__init__()
     self.trap = trap
     self.trap.set_color(ALL, Color(48, 0, 48))
예제 #9
0
#!/usr/bin/env python3

import os
import sys
import math
from colorsys import hsv_to_rgb
from random import random
from hippietrap.hippietrap import HippieTrap, BROADCAST, NUM_NODES
from hippietrap.color import Color
from hippietrap.geometry import HippieTrapGeometry
from time import sleep, time

col = Color(255, 210, 70)
if len(sys.argv) == 4:
    col = Color(int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]))

with HippieTrap() as ch:
    ch.begin()
    ch.set_color(BROADCAST, col)