def __init__(self, colors): frames.Frame.__init__(self, colors) textfile = open("sets.txt", "r") # later use sqlite db setArray = textfile.read().split('\n') textfile.close() sets = [] titleHeight = 60 table = shapes.Table((0, titleHeight+1), (frames.WIDTH - 1, frames.HEIGHT - 1), \ "black", 255, 0, 3, 10) titleRect = shapes.Rect((0, 0), (frames.WIDTH, titleHeight), "red", 0, 0) title = shapes.Text('Liegestuetz', titleRect.getCenter(), "red", \ titleHeight // 3 * 2, 255) for i in range(0, len(setArray) - 1): sets.append(shapes.Text(setArray[i], (0,0), "black", \ (frames.HEIGHT - titleHeight) // 15, 0)) table.addShape(sets[i]) table.addBackground("black", 255, 0) table.invertCells(range(0, 6)) table.swapCells([5]) # add shapes to training frame self.addShape(titleRect) self.addShape(title) self.addShape(table)
def __init__(self, colors): frames.Frame.__init__(self, colors) frameBackground = shapes.Rect((0, 0), (399, 299), "black", 0, 0) whiteEllipse = shapes.Ellipse((-200, -300), (600, 200), 30, 150, "black", 255, 255) name = shapes.Text("E-VI", (200, 75), "black", 35, 0) mainText = shapes.Text("E-Ink Visualizer of Information", (200, 120), "black", 18, 0) usage = shapes.Text("Usage: swipe left/right", (200, 230), "black", 16, 255) usage2 = shapes.Text(" swipe up/down", (200, 256), "black", 16, 255) circle = shapes.Ellipse((300, -100), (500, 100), 0, 180, "red", 0, 0) version = shapes.Text(frames.VERSION, (360, 35), "red", 20, 255) self.addShapes([frameBackground, whiteEllipse, name, mainText, \ usage, usage2, circle, version])
def __init__(self, colors): frames.Frame.__init__(self, colors) self.__data = getIC() titleRect = shapes.Rect((0, 0), (frames.WIDTH, frames.HEIGHT // 4), "black", 0, 0) title = shapes.Text('Inner Climate', (frames.WIDTH // 2, 23), "black", 25, 255) mainTable = shapes.Table((0, frames.HEIGHT // 4), (frames.WIDTH, frames.HEIGHT), \ "black", 255, 0, 2, 2) #self.addShape(shapes.Text("TBD", (200, 150), "black", 0, 0)) mainTable.addShapes([shapes.Picture((0, 0), (0, 0), \ "black", 0, 0, "Icons/temp_black", "Icons/temp_red"), \ shapes.Picture((0, 0), (0, 0), "black", 0, 0, \ "Icons/humidity_black", "Icons/humidity_red"), \ shapes.Text('temp', (0,0), "black", 16, 0), \ shapes.Text('press', (0,0), "black", 16, 0)]) mainTable.addBackground("black", 255, 255) self.addShapes([titleRect, title, mainTable]) self.updateInnerClimate()
def ruler(start, end, ticks=4, sub_ticks=4, absolute=False, snap=False, **kwds): """ Draw a ruler in 3-D, with major and minor ticks. INPUT: - ``start`` - the beginning of the ruler, as a list, tuple, or vector. - ``end`` - the end of the ruler, as a list, tuple, or vector. - ``ticks`` - (default: 4) the number of major ticks shown on the ruler. - ``sub_ticks`` - (default: 4) the number of shown subdivisions between each major tick. - ``absolute`` - (default: ``False``) if ``True``, makes a huge ruler in the direction of an axis. - ``snap`` - (default: ``False``) if ``True``, snaps to an implied grid. Type ``line3d.options`` for a dictionary of the default options for lines, which are also available. EXAMPLES: A ruler:: sage: from sage.plot.plot3d.shapes2 import ruler sage: R = ruler([1,2,3],vector([2,3,4])); R A ruler with some options:: sage: R = ruler([1,2,3],vector([2,3,4]),ticks=6, sub_ticks=2, color='red'); R The keyword ``snap`` makes the ticks not necessarily coincide with the ruler:: sage: ruler([1,2,3],vector([1,2,4]),snap=True) The keyword ``absolute`` makes a huge ruler in one of the axis directions:: sage: ruler([1,2,3],vector([1,2,4]),absolute=True) TESTS:: sage: ruler([1,2,3],vector([1,3,4]),absolute=True) Traceback (most recent call last): ... ValueError: Absolute rulers only valid for axis-aligned paths """ start = vector(RDF, start) end = vector(RDF, end) dir = end - start dist = math.sqrt(dir.dot_product(dir)) dir /= dist one_tick = dist/ticks * 1.414 unit = 10 ** math.floor(math.log(dist/ticks, 10)) if unit * 5 < one_tick: unit *= 5 elif unit * 2 < one_tick: unit *= 2 if dir[0]: tick = dir.cross_product(vector(RDF, (0,0,-dist/30))) elif dir[1]: tick = dir.cross_product(vector(RDF, (0,0,dist/30))) else: tick = vector(RDF, (dist/30,0,0)) if snap: for i in range(3): start[i] = unit * math.floor(start[i]/unit + 1e-5) end[i] = unit * math.ceil(end[i]/unit - 1e-5) if absolute: if dir[0]*dir[1] or dir[1]*dir[2] or dir[0]*dir[2]: raise ValueError, "Absolute rulers only valid for axis-aligned paths" m = max(dir[0], dir[1], dir[2]) if dir[0] == m: off = start[0] elif dir[1] == m: off = start[1] else: off = start[2] first_tick = unit * math.ceil(off/unit - 1e-5) - off else: off = 0 first_tick = 0 ruler = shapes.LineSegment(start, end, **kwds) for k in range(1, int(sub_ticks * first_tick/unit)): P = start + dir*(k*unit/sub_ticks) ruler += shapes.LineSegment(P, P + tick/2, **kwds) for d in srange(first_tick, dist + unit/(sub_ticks+1), unit): P = start + dir*d ruler += shapes.LineSegment(P, P + tick, **kwds) ruler += shapes.Text(str(d+off), **kwds).translate(P - tick) if dist - d < unit: sub_ticks = int(sub_ticks * (dist - d)/unit) for k in range(1, sub_ticks): P += dir * (unit/sub_ticks) ruler += shapes.LineSegment(P, P + tick/2, **kwds) return ruler
def _action(self, message, standardized_message, frame, shape_objs, text_objs, draw_objs, constants_dict): if 'system' in standardized_message: if 'on' in standardized_message: constants_dict['system'] = True logger.info('Turning system on') elif 'off' in standardized_message: constants_dict['system'] = False logger.info('Turning system off') if not constants_dict.get('system'): return frame, shape_objs, text_objs, draw_objs, constants_dict if 'name' or 'named' in standardized_message: if 'named' in standardized_message: name_idx = standardized_message.index('named') + 1 name = ' '.join(standardized_message[name_idx:]) elif 'name' in standardized_message: name_idx = standardized_message.index('name') + 1 name = ' '.join(standardized_message[name_idx:]) if 'create' in standardized_message: if 'color' in standardized_message: color_idx = standardized_message.index('color') color = standardized_message[color_idx + 1] color = 'COLOR_' + color.upper() else: color = constants.DEFAULT_SHAPE_COLOR if 'rectangle' in standardized_message: shape_objs[name] = shapes.Rectangle(name, color=color) elif 'circle' in standardized_message: shape_objs[name] = shapes.Circle(name, color=color) elif 'text' in standardized_message: text_idx = standardized_message.index('text') text_message = standardized_message[text_idx + 1] logger.info('Message text: {}'.format(text_message)) if 'shape' in standardized_message: shape_idx = standardized_message.index('shape') shape_name = standardized_message[shape_idx + 1] logger.info('Message shape name: {}'.format(shape_name)) text_objs[name] = shapes.Text(text_message, shape_objs[shape_name]) else: text_objs[name] = shapes.Text(text_message) elif 'remove' in standardized_message: if 'shape' in standardized_message: del shape_objs[name] elif 'text' in standardized_message: del text_objs[name] elif 'draw' in standardized_message: draw_objs.clear() elif 'clear all objects' in message: shape_objs.clear() text_objs.clear() draw_objs.clear() elif 'connect' in standardized_message: shape_idx = standardized_message.index('shape') with_idx = standardized_message.index('with') shape_1 = standardized_message[(shape_idx + 1)] shape_2 = standardized_message[with_idx + 1] if shape_1 and shape_2 in shape_objs.keys(): shape_objs[shape_1].shape_connections.append(shape_2) elif 'draw mode' in standardized_message: constants_dict['draw_mode'] = True elif 'boxes' in standardized_message: if 'on' in standardized_message: constants_dict['draw_box'] = True elif 'off' in standardized_message: constants_dict['draw_box'] = False elif 'resize' in standardized_message: if 'on' in standardized_message: constants_dict['resize'] = True if 'off' in standardized_message: constants_dict['resize'] = False elif 'load total process' in message: constants_dict['load_process'] = True elif 'clear total process' in message: constants_dict['load_process'] = False return frame, shape_objs, text_objs, draw_objs, constants_dict
def __init__(self, colors, city): frames.Frame.__init__(self, colors) owmkey = open("owmkey", "r") self.__owmApiCall = ('http://api.openweathermap.org/data/2.5/weather?id=' \ + city + '&APPID=' + owmkey.read()).split()[0] owmkey.close() self.weatherLastUpdate = datetime.datetime.now() titleRect = shapes.Rect((0, 0), (frames.WIDTH, frames.HEIGHT // 4), "black", 0, 0) sideTable = shapes.Table((0, frames.HEIGHT // 4), (frames.WIDTH // 3, frames.HEIGHT), \ "black", 255, 0, 2, 6) mainRect = shapes.Rect((frames.WIDTH // 3, frames.HEIGHT // 4), \ (frames.WIDTH, (3 * frames.HEIGHT) // 4), "black", 255, 0) bottomRect = shapes.Rect((frames.WIDTH // 3, (3 * frames.HEIGHT) // 4), \ (frames.WIDTH, frames.HEIGHT), "black", 255, 0) city = shapes.Text('City', (frames.WIDTH // 2, 23), "black", 25, 255) date = shapes.Text('Date: ', (frames.WIDTH // 2, 55), "black", 25, 255) temp = shapes.Text('Temperature: ', (225, frames.HEIGHT // 4 + 30), "black", 24, 0) clouds = shapes.Text('Clouds: ', (200, 200), "black", 20, 0) weather = shapes.Text('weatherDesc', (335, 200), "black", 20, 0) weatherMain = shapes.Picture((frames.WIDTH - 160, frames.HEIGHT // 4 - 20), \ (frames.WIDTH, frames.HEIGHT // 4 + 160 - 20), \ "black", 0, 0, "OWM/10d_black", "OWM/10d_red") tempSym = shapes.Picture((frames.WIDTH // 3, frames.HEIGHT // 4 + 10), \ (frames.WIDTH // 3 + 50, frames.HEIGHT // 4 + 50 + 10), \ "black", 0, 0, "Icons/temp_black", "Icons/temp_red") # setup texts, last 6 are placeholders sideTable.addShapes([shapes.Picture((0,0), (50,50), "black", 0, 0, \ "Icons/sunrise_black", "Icons/sunrise_red"), \ shapes.Picture((0, 0), (50, 50), "black", 0, 0, \ "Icons/sunset_black", "Icons/sunset_red"), \ shapes.Picture((0, 0), (50, 50), "black", 0, 0, \ "Icons/pressure_black", "Icons/pressure_red"), \ shapes.Picture((0, 0), (50, 50), "black", 0, 0, \ "Icons/humidity_black", "Icons/humidity_red"), \ shapes.Picture((0, 0), (50, 50), "black", 0, 0, \ "Icons/windspeed_black", "Icons/windspeed_red"), \ shapes.Picture((0, 0), (50, 50), "black", 0, 0, \ "Icons/winddir_black", "Icons/winddir_red"), \ shapes.Text('sunr', (0,0), "black", 16, 0), \ shapes.Text('suns', (0,0), "black", 16, 0), \ shapes.Text('press', (0,0), "black", 16, 0), \ shapes.Text('humid', (0,0), "black", 16, 0), \ shapes.Text('win', (0,0), "black", 16, 0), \ shapes.Text('n/a', (0,0), "black", 16, 0)]) sideTable.addBackground("black", 255, 255) self.addShapes([titleRect, sideTable, mainRect, bottomRect, city, date, \ temp, clouds, weather, weatherMain, tempSym]) self.updateWeather()
def __init__(self, colors, programName): frames.Frame.__init__(self, colors) # plan: sqlite db with marking of last performed exercise, then fill # with current tbd exercises for the week, swipe down for done self.__programName = programName titleRect = shapes.Rect((0, 0), (frames.WIDTH, frames.HEIGHT // 8), "red", 0, 0) titleText = shapes.Text("Big 6", titleRect.getCenter(), "red", 24, 255) table = shapes.Table((0, frames.HEIGHT // 8 + 1), (frames.WIDTH - 1, frames.HEIGHT - 1), \ "black", 255, 0, 5, 6) table.addShapes([shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/squats_black", "Training/squats_red"), \ shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/handstand_black", "Training/handstand_red"), \ shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/legraise_black", "Training/legraise_red"), \ shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/bridge_black", "Training/bridge_red"), \ shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/pushups_black", "Training/pushups_red"), \ shapes.Picture((0, 0), (39, 39), "black", 0, 0, \ "Training/pullup_black", "Training/pullup_red") \ ]) table.addShape(shapes.Text("1 floor", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("1 head ", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("1 tucks", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("1 short", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("1 wall ", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("0 dbell", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("25,25,25", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("30 sec.", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("12,12,7", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("12,12,12", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("15,10,0", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("12,12,0", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("30,30,30", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("40 sec.", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("14,14,10", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("14,14,14", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("15,15,0", (0, 0), "black", 14, 0)) table.addShape(shapes.Text("14,14,0", (0, 0), "black", 14, 0)) for i in range(0, 1): table.addShape(shapes.Text("50,50,50", (0, 0), "red", 14, 0)) table.addShape(shapes.Text("2 min.", (0, 0), "red", 14, 0)) table.addShape(shapes.Text("40,40,40", (0, 0), "red", 14, 0)) table.addShape(shapes.Text("50,50,50", (0, 0), "red", 14, 0)) table.addShape(shapes.Text("50,50,50", (0, 0), "red", 14, 0)) table.addShape(shapes.Text("40,40,40", (0, 0), "red", 14, 0)) self.addShapes([titleRect, titleText, table])