예제 #1
0
 def drawTo(self, canvas: Canvas):
     canvas.context.move_to(self.start.x, self.start.y)
     for p in self.points:
         canvas.context.curve_to(p[0].x, p[0].y, p[1].x, p[1].y, p[2].x,
                                 p[2].y)
     if self.closed:
         canvas.context.close_path()
     canvas.context.set_operator(self.style['blend'])
     if self.style['fill']:
         color = Color(self.style["fill"])
         canvas.context.set_source_rgba(color.get_red(), color.get_green(),
                                        color.get_blue(),
                                        self.style["opacity"])
         canvas.context.fill_preserve()
     if self.style['line_cap']:
         canvas.context.set_line_cap(self.style['line_cap'])
     if self.style['stroke']:
         stroke_color = Color(self.style['stroke'])
         canvas.context.set_line_width(self.style['stroke_width'])
         canvas.context.set_source_rgba(
             stroke_color.get_red(), stroke_color.get_green(),
             stroke_color.get_blue(),
             resolve_cal(self.style['stroke_opacity']))
         canvas.context.stroke()
     return self
예제 #2
0
    def render(self, input_data, led_colors):
        for x in range(10):
            for y in range(5):
                top_id = settings.LED_MODEL['led-groups']['top'][y][x]
                if top_id != -1:
                    led_colors[top_id * 3] = 0
                    led_colors[top_id * 3 + 1] = 0
                    led_colors[top_id * 3 + 2] = 0

        n = self.tot
        x = self.loc
        rad = (x / 39) * 2 * pi
        color = Color(hue=(x / 39), saturation=1, luminance=0.5)
        ids = [[2, 0], [2, 1], [2, 2], [6, 0], [6, 1], [6, 2], [0, 3], [1, 4],
               [2, 4], [3, 4], [4, 4], [5, 4], [6, 4], [7, 4], [8, 3]]
        for led in ids:
            top_id = settings.LED_MODEL['led-groups']['top'][led[1]][led[0]]
            if top_id != -1:
                led_colors[top_id * 3] = int(color.get_red() * 255)
                led_colors[top_id * 3 + 1] = int(color.get_green() * 255)
                led_colors[top_id * 3 + 2] = int(color.get_blue() * 255)
        for t in range(n):
            prev = (x - t) % 40
            falloff = (n - t - 1) / (n - 1)
            rad = (prev / 39)
            color = Color(hue=rad, saturation=1, luminance=0.5)
            for y in range(5):
                x_off = prev
                side = 'north'
                if prev < 10:
                    pass
                elif prev < 20:
                    x_off -= 10
                    side = 'west'
                elif prev < 30:
                    x_off -= 20
                    side = 'south'
                else:
                    x_off -= 30
                    side = 'east'
                led_id = settings.LED_MODEL['led-groups'][side][y][x_off]
                if led_id != -1:
                    led_colors[led_id * 3] = int(color.get_red() * 255 *
                                                 falloff)
                    led_colors[led_id * 3 + 1] = int(color.get_green() * 255 *
                                                     falloff)
                    led_colors[led_id * 3 + 2] = int(color.get_blue() * 255 *
                                                     falloff)
        self.loc = (x + 1) % n
예제 #3
0
파일: robot.py 프로젝트: zghosts/morseapi
def color_byte_array(color_value):
    """
    convert color into a 3 byte bytearray

    :param color_value: 6-digit (e.g. #fa3b2c), 3-digit (e.g. #fbb),
    fully spelled color (e.g. white)
    """
    color = Color(color_value)
    return bytearray([
        int(round(color.get_red()*255)),
        int(round(color.get_green()*255)),
        int(round(color.get_blue()*255)),
    ])
예제 #4
0
 def circle(self,
            pos,
            arc,
            color: Color = Color("black"),
            alpha: float = 1,
            strokecolor=None,
            strokewidth: int = 1):
     self.context.set_line_width(strokewidth)
     if strokecolor:
         self.context.set_source_rgba(strokecolor.get_red(),
                                      strokecolor.get_blue(),
                                      strokecolor.get_green(), alpha)
         self.context.arc(pos[0], pos[1], arc, 0, 2 * math.pi)
         self.context.stroke_preserve()
         self.context.set_source_rgba(color.get_red(), color.get_blue(),
                                      color.get_green(), alpha)
         self.context.fill()
     else:
         self.context.set_source_rgba(color.get_red(), color.get_blue(),
                                      color.get_green(), alpha)
         self.context.arc(pos[0], pos[1], arc, 0, 2 * math.pi)
         self.context.stroke()
예제 #5
0
    def create_shader_of_color(self, color):
        all_shaders = cmds.ls(mat=True)
        repeated_shader = [shdr for shdr in all_shaders if shdr == color]

        if repeated_shader:
            print 'There already exists a shader called {}'.format(color)
        else:
            col = Color(color)
            shader = cmds.shadingNode('lambert', asShader=True, name=color)
            cmds.setAttr('{}.color'.format(shader),
                         col.get_red(),
                         col.get_green(),
                         col.get_blue(),
                         type='double3')
예제 #6
0
def dynamic_css_project(project_id: int):
    redis = current_app.config.get('SESSION_REDIS')
    cache_key = 'dynamic_css_project_%s' % project_id
    if not redis.exists(cache_key):
        from colour import Color
        import math
        project_api = sw.ProjectApi(api_client=g.api)
        project = project_api.projects_project_id_get(project_id=project_id)
        if project.id:
            cc = Color(color=project.accent_color)
            accent_color_rgb = '%s, %s, %s' % (math.floor(
                cc.get_red() * 255), math.floor(
                    cc.get_green() * 255), math.floor(cc.get_blue() * 255))
            cdn_base_url = current_app.config.get('CDN_BASE_URL')
            stylesheet_str = render_template('project.css.template',
                                             accent_color=project.accent_color,
                                             accent_color_rgb=accent_color_rgb,
                                             cdn_base_url=cdn_base_url)
            redis.set(cache_key, stylesheet_str, ex=60)
        else:
            abort(404)
    content = redis.get(cache_key)
    return Response(content, content_type='text/css')
예제 #7
0
def string_to_colornum(name):
    c = Color(name)
    r = int(c.get_red() * 255)
    g = int(c.get_green() * 255)
    b = int(c.get_blue() * 255)
    return (r, g, b)
예제 #8
0
def color_from_name(name):
    c = Color(name)
    r = int(c.get_red() * 255)
    g = int(c.get_green() * 255)
    b = int(c.get_blue() * 255)
    return compose_color(r, g, b)