From 2e95e3a33bcb34aeec66551503c692c1cb80ab61 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 9 Feb 2009 20:05:30 +0100 Subject: * all python: - changed tabs to spaces. --- host/inter/inter.py | 380 ++++++++++++++++++++++++++-------------------------- 1 file changed, 190 insertions(+), 190 deletions(-) (limited to 'host/inter/inter.py') diff --git a/host/inter/inter.py b/host/inter/inter.py index cde1bd73..4c19e5c8 100644 --- a/host/inter/inter.py +++ b/host/inter/inter.py @@ -31,105 +31,105 @@ class Robot (Drawable): """The robot.""" def __init__ (self, onto): - Drawable.__init__ (self, onto) - self.drawn = [ ] + Drawable.__init__ (self, onto) + self.drawn = [ ] def draw (self): - self.reset () - self.trans_rotate (self.angle) - self.trans_translate (self.pos) - self.draw_polygon ((115, 30), (170, 85), (150, 127), (130, 145), - (-25, 200), (-70, 200), (-70, -200), (-25, -200), - (130, -145), (150, -127), (170, -85), (115, -30)) - axes_fill = '#404040' - self.draw_line ((-70, 0), (170, 0), fill = axes_fill, arrow = LAST) - f = 142 + 2 * 31.5 - 13.5 - wr = 63 / 2 - self.draw_line ((0, +f / 2), (0, -f / 2), fill = axes_fill) - self.draw_line ((-wr, f / 2), (+wr, f / 2), fill = axes_fill) - self.draw_line ((-wr, -f / 2), (+wr, -f / 2), fill = axes_fill) - for i in self.drawn: - i.draw () + self.reset () + self.trans_rotate (self.angle) + self.trans_translate (self.pos) + self.draw_polygon ((115, 30), (170, 85), (150, 127), (130, 145), + (-25, 200), (-70, 200), (-70, -200), (-25, -200), + (130, -145), (150, -127), (170, -85), (115, -30)) + axes_fill = '#404040' + self.draw_line ((-70, 0), (170, 0), fill = axes_fill, arrow = LAST) + f = 142 + 2 * 31.5 - 13.5 + wr = 63 / 2 + self.draw_line ((0, +f / 2), (0, -f / 2), fill = axes_fill) + self.draw_line ((-wr, f / 2), (+wr, f / 2), fill = axes_fill) + self.draw_line ((-wr, -f / 2), (+wr, -f / 2), fill = axes_fill) + for i in self.drawn: + i.draw () class Obstacle (Drawable): """An obstacle.""" def __init__ (self, onto, pos, radius): - Drawable.__init__ (self, onto) - self.pos = pos - self.radius = radius + Drawable.__init__ (self, onto) + self.pos = pos + self.radius = radius def draw (self): - self.reset () - self.trans_translate (self.pos) - self.draw_circle ((0, 0), self.radius, fill = '#31aa23') - self.draw_circle ((0, 0), self.radius + 250, outlinestipple = 'gray25') + self.reset () + self.trans_translate (self.pos) + self.draw_circle ((0, 0), self.radius, fill = '#31aa23') + self.draw_circle ((0, 0), self.radius + 250, outlinestipple = 'gray25') class Table (Drawable): """The table and its elements.""" def draw (self): - # Redraw. - self.reset () - # Table. - self.draw_rectangle ((-22, -22 - 80), (3000 / 2, 2100 + 22), fill = '#ff1f1f') - self.draw_rectangle ((3000 / 2, -22 - 80), (3000 + 22, 2100 + 22), fill = '#201fff') - self.draw_rectangle ((0, 0), (3000, 2100), fill = '#a49d8b') - self.draw_rectangle ((0, -22 - 80), (3000, -22), fill = '#a49d8b') - self.draw_rectangle ((0, 2100 - 500), (500, 2100), fill = '#201fff') - self.draw_rectangle ((3000 - 500, 2100 - 500), (3000, 2100), fill = '#ff1f1f') - self.draw_line ((3000 / 2, -22 - 80), (3000 / 2, 2100 + 22)) - # Axes. - self.draw_line ((0, 200), (0, 0), (200, 0), arrow = BOTH) - # Beacons and baskets. - self.draw_rectangle ((-22, 2100), (-22 - 80, 2100 + 80), fill = '#5b5b5d') - self.draw_rectangle ((-22, 1050 - 40), (-22 - 80, 1050 + 40), fill = '#5b5b5d') - self.draw_rectangle ((-22, 500), (-22 - 80, 500 + 80), fill = '#5b5b5d') - self.draw_rectangle ((-22, -80), (-22 - 80, 0), fill = '#5b5b5d') - self.draw_rectangle ((-22, 0), (-22 - 80, 500), fill = '#5b5b5d') - self.draw_rectangle ((-22 - 80 - 250, 0), (-22 - 80, 500), fill = '#6d6dad', stipple = 'gray75') - self.draw_rectangle ((3000 + 22, 2100), (3000 + 22 + 80, 2100 + 80), fill = '#5b5b5d') - self.draw_rectangle ((3000 + 22, 1050 - 40), (3000 + 22 + 80, 1050 + 40), fill = '#5b5b5d') - self.draw_rectangle ((3000 + 22, 500), (3000 + 22 + 80, 500 + 80), fill = '#5b5b5d') - self.draw_rectangle ((3000 + 22, -80), (3000 + 22 + 80, 0), fill = '#5b5b5d') - self.draw_rectangle ((3000 + 22, 0), (3000 + 22 + 80, 500), fill = '#5b5b5d') - self.draw_rectangle ((3000 + 22 + 80 + 250, 0), (3000 + 22 + 80, 500), fill = '#6d6dad', stipple = 'gray75') - # Vertical dispensers. - self.draw_rectangle ((-22, 2100 - 750 - 85 / 2), (0, 2100 - 750 + 85 / 2), fill = '#5b5b5b') - self.draw_circle ((40, 2100 - 750), 40) - self.draw_rectangle ((700 - 85 / 2, 2100), (700 + 85 / 2, 2100 + 22), fill = '#5b5b5b') - self.draw_circle ((700, 2100 - 40), 40) - self.draw_rectangle ((3000 + 22, 2100 - 750 - 85 / 2), (3000, 2100 - 750 + 85 / 2), fill = '#5b5b5b') - self.draw_circle ((3000 - 40, 2100 - 750), 40) - self.draw_rectangle ((3000 - 700 + 85 / 2, 2100), (3000 - 700 - 85 / 2, 2100 + 22), fill = '#5b5b5b') - self.draw_circle ((3000 - 700, 2100 - 40), 40) - # Horizontal dispenser. - self.draw_rectangle ((3000 / 2 - 924 / 2, 2100 + 22), (3000 / 2 + 924 / 2, 2100 + 22 + 80 + 22), fill = '#5b5b5b') - self.draw_rectangle ((3000 / 2 - 924 / 2 + 22, 2100 + 22), (3000 / 2 + 924 / 2 - 22, 2100 + 22 + 80), fill = '#5b5b5b') - self.draw_rectangle ((3000 / 2 - 880 / 2 - 35 - 60, 2100), (3000 / 2 - 880 / 2 - 35, 2100 + 44), fill = '#5b5b5b') - self.draw_rectangle ((3000 / 2 + 880 / 2 + 35 + 60, 2100), (3000 / 2 + 880 / 2 + 35, 2100 + 44), fill = '#5b5b5b') - # Balls. - balls = [ (800, 200, 'rb'), (800, 400, 'RB'), (800, 600, 'ww'), - (1300, 200, 'rb'), (1300, 400, 'rb'), (1300, 600, 'ww'), - (520, 800, 'WW'), (700, 40, 'RB'), (40, 750, 'WW'), - (450, 1120, 'ww'), (750, 1070, 'ww'), (1050, 1020, 'ww'), - (1500 - 72 / 2, -22 - 80 / 2, 'BR'), - (1500 - 72 / 2 - 1 * 73, -22 - 80 / 2, 'RB'), - (1500 - 72 / 2 - 2 * 73, -22 - 80 / 2, 'BR'), - (1500 - 72 / 2 - 3 * 73, -22 - 80 / 2, 'RB'), - (1500 - 72 / 2 - 4 * 73, -22 - 80 / 2, 'BR'), - (1500 - 72 / 2 - 5 * 73, -22 - 80 / 2, 'RB'), - (1500, 1000, 'W'), - ] - balls_config = { 'r': { 'outline': '#bf4141' }, 'R': { 'fill': '#bf4141' }, - 'b': { 'outline': '#4241bf' }, 'B': { 'fill': '#4241bf' }, - 'w': { 'outline': '#bfbfbf' }, 'W': { 'fill': '#bfbfbf' } } - for b in balls: - self.draw_circle ((3000 - b[0], 2100 - b[1]), 72 / 2, - **balls_config[b[2][0]]) - if len (b[2]) > 1: - self.draw_circle ((b[0], 2100 - b[1]), 72 / 2, - **balls_config[b[2][1]]) + # Redraw. + self.reset () + # Table. + self.draw_rectangle ((-22, -22 - 80), (3000 / 2, 2100 + 22), fill = '#ff1f1f') + self.draw_rectangle ((3000 / 2, -22 - 80), (3000 + 22, 2100 + 22), fill = '#201fff') + self.draw_rectangle ((0, 0), (3000, 2100), fill = '#a49d8b') + self.draw_rectangle ((0, -22 - 80), (3000, -22), fill = '#a49d8b') + self.draw_rectangle ((0, 2100 - 500), (500, 2100), fill = '#201fff') + self.draw_rectangle ((3000 - 500, 2100 - 500), (3000, 2100), fill = '#ff1f1f') + self.draw_line ((3000 / 2, -22 - 80), (3000 / 2, 2100 + 22)) + # Axes. + self.draw_line ((0, 200), (0, 0), (200, 0), arrow = BOTH) + # Beacons and baskets. + self.draw_rectangle ((-22, 2100), (-22 - 80, 2100 + 80), fill = '#5b5b5d') + self.draw_rectangle ((-22, 1050 - 40), (-22 - 80, 1050 + 40), fill = '#5b5b5d') + self.draw_rectangle ((-22, 500), (-22 - 80, 500 + 80), fill = '#5b5b5d') + self.draw_rectangle ((-22, -80), (-22 - 80, 0), fill = '#5b5b5d') + self.draw_rectangle ((-22, 0), (-22 - 80, 500), fill = '#5b5b5d') + self.draw_rectangle ((-22 - 80 - 250, 0), (-22 - 80, 500), fill = '#6d6dad', stipple = 'gray75') + self.draw_rectangle ((3000 + 22, 2100), (3000 + 22 + 80, 2100 + 80), fill = '#5b5b5d') + self.draw_rectangle ((3000 + 22, 1050 - 40), (3000 + 22 + 80, 1050 + 40), fill = '#5b5b5d') + self.draw_rectangle ((3000 + 22, 500), (3000 + 22 + 80, 500 + 80), fill = '#5b5b5d') + self.draw_rectangle ((3000 + 22, -80), (3000 + 22 + 80, 0), fill = '#5b5b5d') + self.draw_rectangle ((3000 + 22, 0), (3000 + 22 + 80, 500), fill = '#5b5b5d') + self.draw_rectangle ((3000 + 22 + 80 + 250, 0), (3000 + 22 + 80, 500), fill = '#6d6dad', stipple = 'gray75') + # Vertical dispensers. + self.draw_rectangle ((-22, 2100 - 750 - 85 / 2), (0, 2100 - 750 + 85 / 2), fill = '#5b5b5b') + self.draw_circle ((40, 2100 - 750), 40) + self.draw_rectangle ((700 - 85 / 2, 2100), (700 + 85 / 2, 2100 + 22), fill = '#5b5b5b') + self.draw_circle ((700, 2100 - 40), 40) + self.draw_rectangle ((3000 + 22, 2100 - 750 - 85 / 2), (3000, 2100 - 750 + 85 / 2), fill = '#5b5b5b') + self.draw_circle ((3000 - 40, 2100 - 750), 40) + self.draw_rectangle ((3000 - 700 + 85 / 2, 2100), (3000 - 700 - 85 / 2, 2100 + 22), fill = '#5b5b5b') + self.draw_circle ((3000 - 700, 2100 - 40), 40) + # Horizontal dispenser. + self.draw_rectangle ((3000 / 2 - 924 / 2, 2100 + 22), (3000 / 2 + 924 / 2, 2100 + 22 + 80 + 22), fill = '#5b5b5b') + self.draw_rectangle ((3000 / 2 - 924 / 2 + 22, 2100 + 22), (3000 / 2 + 924 / 2 - 22, 2100 + 22 + 80), fill = '#5b5b5b') + self.draw_rectangle ((3000 / 2 - 880 / 2 - 35 - 60, 2100), (3000 / 2 - 880 / 2 - 35, 2100 + 44), fill = '#5b5b5b') + self.draw_rectangle ((3000 / 2 + 880 / 2 + 35 + 60, 2100), (3000 / 2 + 880 / 2 + 35, 2100 + 44), fill = '#5b5b5b') + # Balls. + balls = [ (800, 200, 'rb'), (800, 400, 'RB'), (800, 600, 'ww'), + (1300, 200, 'rb'), (1300, 400, 'rb'), (1300, 600, 'ww'), + (520, 800, 'WW'), (700, 40, 'RB'), (40, 750, 'WW'), + (450, 1120, 'ww'), (750, 1070, 'ww'), (1050, 1020, 'ww'), + (1500 - 72 / 2, -22 - 80 / 2, 'BR'), + (1500 - 72 / 2 - 1 * 73, -22 - 80 / 2, 'RB'), + (1500 - 72 / 2 - 2 * 73, -22 - 80 / 2, 'BR'), + (1500 - 72 / 2 - 3 * 73, -22 - 80 / 2, 'RB'), + (1500 - 72 / 2 - 4 * 73, -22 - 80 / 2, 'BR'), + (1500 - 72 / 2 - 5 * 73, -22 - 80 / 2, 'RB'), + (1500, 1000, 'W'), + ] + balls_config = { 'r': { 'outline': '#bf4141' }, 'R': { 'fill': '#bf4141' }, + 'b': { 'outline': '#4241bf' }, 'B': { 'fill': '#4241bf' }, + 'w': { 'outline': '#bfbfbf' }, 'W': { 'fill': '#bfbfbf' } } + for b in balls: + self.draw_circle ((3000 - b[0], 2100 - b[1]), 72 / 2, + **balls_config[b[2][0]]) + if len (b[2]) > 1: + self.draw_circle ((b[0], 2100 - b[1]), 72 / 2, + **balls_config[b[2][1]]) class TableView (DrawableCanvas): """This class handle the view of the table and every items inside it.""" @@ -140,102 +140,102 @@ class TableView (DrawableCanvas): YORIGIN = -2100 / 2 def __init__ (self, master = None): - DrawableCanvas.__init__ (self, self.WIDTH, self.HEIGHT, self.XORIGIN, - self.YORIGIN, - master, borderwidth = 1, relief = 'sunken', - background = 'white') - self.table = Table (self) - self.robot = Robot (self.table) - self.robot.angle = 0 - self.robot.pos = (0, 0) - self.drawn = [ ] + DrawableCanvas.__init__ (self, self.WIDTH, self.HEIGHT, self.XORIGIN, + self.YORIGIN, + master, borderwidth = 1, relief = 'sunken', + background = 'white') + self.table = Table (self) + self.robot = Robot (self.table) + self.robot.angle = 0 + self.robot.pos = (0, 0) + self.drawn = [ ] def draw (self): - self.table.draw () - for i in self.drawn: - i.draw () - self.robot.draw () + self.table.draw () + for i in self.drawn: + i.draw () + self.robot.draw () class Arm (Drawable): """The robot arm.""" def draw (self): - self.reset () - self.draw_arc ((0, 0), 0.45, start = 7 * pi / 12, extent = 10 * pi / 12, - style = 'arc', outline = '#808080') - self.draw_arc ((0, 0), 0.45, start = -5 * pi / 12, extent = 10 * pi / 12, - style = 'arc', outline = '#808080') - self.draw_arc ((0, 0), 0.25, start = -7 * pi / 12, extent = 14 * pi / 12, - style = 'arc', outline = '#808080') - self.trans_scale (0.4) - self.trans_rotate (-self.angle) - self.draw_line ((0, 0), (0, 1)) - self.draw_line ((0, 1), (0.3, 1), arrow = LAST, fill = '#808080') - self.draw_line ((0, 0), (cos (pi / 6), -sin (pi / 6))) - self.draw_line ((0, 0), (-cos (pi / 6), -sin (pi / 6))) + self.reset () + self.draw_arc ((0, 0), 0.45, start = 7 * pi / 12, extent = 10 * pi / 12, + style = 'arc', outline = '#808080') + self.draw_arc ((0, 0), 0.45, start = -5 * pi / 12, extent = 10 * pi / 12, + style = 'arc', outline = '#808080') + self.draw_arc ((0, 0), 0.25, start = -7 * pi / 12, extent = 14 * pi / 12, + style = 'arc', outline = '#808080') + self.trans_scale (0.4) + self.trans_rotate (-self.angle) + self.draw_line ((0, 0), (0, 1)) + self.draw_line ((0, 1), (0.3, 1), arrow = LAST, fill = '#808080') + self.draw_line ((0, 0), (cos (pi / 6), -sin (pi / 6))) + self.draw_line ((0, 0), (-cos (pi / 6), -sin (pi / 6))) class Servo: """Servo motor.""" def __init__ (self, coord, l, start, extent): - self.coord = coord - self.l = l - self.start = start - self.extent = extent - self.pos = 0 + self.coord = coord + self.l = l + self.start = start + self.extent = extent + self.pos = 0 def draw (self, d): - d.draw_arc (self.coord, self.l, start = self.start, - extent = self.extent, style = 'arc', outline = '#808080') - a = self.start + self.pos * self.extent - d.draw_line (self.coord, (self.coord[0] + self.l * cos (a), - self.coord[1] + self.l * sin (a))) + d.draw_arc (self.coord, self.l, start = self.start, + extent = self.extent, style = 'arc', outline = '#808080') + a = self.start + self.pos * self.extent + d.draw_line (self.coord, (self.coord[0] + self.l * cos (a), + self.coord[1] + self.l * sin (a))) class Rear (Drawable): """Rear actuators.""" def __init__ (self, onto): - Drawable.__init__ (self, onto) - self.traps = [ - Servo ((-2.5, -1), 0.8, 0, pi/2), - Servo ((-1.5, -0.9), 0.8, 0, pi/2), - Servo ((-0.5, -0.8), 0.8, 0, pi/2), - Servo ((0.5, -0.8), 0.8, pi, -pi/2), - Servo ((1.5, -0.9), 0.8, pi, -pi/2), - Servo ((-2.5, 1.3), 0.8, -pi/6, pi/3), - ] + Drawable.__init__ (self, onto) + self.traps = [ + Servo ((-2.5, -1), 0.8, 0, pi/2), + Servo ((-1.5, -0.9), 0.8, 0, pi/2), + Servo ((-0.5, -0.8), 0.8, 0, pi/2), + Servo ((0.5, -0.8), 0.8, pi, -pi/2), + Servo ((1.5, -0.9), 0.8, pi, -pi/2), + Servo ((-2.5, 1.3), 0.8, -pi/6, pi/3), + ] def draw (self): - self.reset () - self.trans_scale (0.9/5) - for i in self.traps: - i.draw (self) - self.draw_line ((-0.5, 1.5), (-0.5, 0.5), (-2.5, 0.2), - fill = '#808080') - self.draw_line ((-2.5, -1.2), (-2.5, -2.3), (2.5, -2.3), (2.5, 0.2), - (0.5, 0.5), (0.5, 1.5), fill = '#808080') - for i in (-1.5, -0.5, 0.5, 1.5): - self.draw_line ((i, -2.3), (i, -2), fill = '#808080') + self.reset () + self.trans_scale (0.9/5) + for i in self.traps: + i.draw (self) + self.draw_line ((-0.5, 1.5), (-0.5, 0.5), (-2.5, 0.2), + fill = '#808080') + self.draw_line ((-2.5, -1.2), (-2.5, -2.3), (2.5, -2.3), (2.5, 0.2), + (0.5, 0.5), (0.5, 1.5), fill = '#808080') + for i in (-1.5, -0.5, 0.5, 1.5): + self.draw_line ((i, -2.3), (i, -2), fill = '#808080') class ActuatorView (DrawableCanvas): """This class handle the view of the actuators inside the robot.""" def __init__ (self, master = None): - DrawableCanvas.__init__ (self, 1, 2, 0, 0, master, - borderwidth = 1, relief = 'sunken', background = 'white') - self.configure (width = 120, height = 240) - self.arm_drawable = Drawable (self) - self.arm_drawable.trans_translate ((0, 0.5)) - self.arm = Arm (self.arm_drawable) - self.arm.angle = 0 - self.rear_drawable = Drawable (self) - self.rear_drawable.trans_translate ((0, -0.5)) - self.rear = Rear (self.rear_drawable) + DrawableCanvas.__init__ (self, 1, 2, 0, 0, master, + borderwidth = 1, relief = 'sunken', background = 'white') + self.configure (width = 120, height = 240) + self.arm_drawable = Drawable (self) + self.arm_drawable.trans_translate ((0, 0.5)) + self.arm = Arm (self.arm_drawable) + self.arm.angle = 0 + self.rear_drawable = Drawable (self) + self.rear_drawable.trans_translate ((0, -0.5)) + self.rear = Rear (self.rear_drawable) def draw (self): - self.arm.draw () - self.rear.draw () + self.arm.draw () + self.rear.draw () class Inter (Frame): """Robot simulation interface.""" @@ -244,54 +244,54 @@ class Inter (Frame): Frame.__init__ (self, master) self.pack (expand = 1, fill = 'both') self.createWidgets () - self.updated = [ ] + self.updated = [ ] def createWidgets (self): - self.rightFrame = Frame (self) - self.rightFrame.pack (side = 'right', fill = 'y') - self.quitButton = Button (self.rightFrame, text = 'Quit', command = self.quit) - self.quitButton.pack (side = 'top') - self.actuatorview = ActuatorView (self.rightFrame) - self.actuatorview.pack (side = 'bottom', fill = 'x') - - self.sensorFrame = Frame (self.rightFrame, borderwidth = 1, relief = - 'sunken') - self.sensorFrame.pack (side = 'bottom', fill = 'x') - self.jackVar = IntVar () - self.jackButton = Checkbutton (self.sensorFrame, text = 'Jack', - indicatoron = False, variable = self.jackVar) - self.jackButton.pack (side = 'top') - self.colorVar = IntVar () - self.colorButton = Checkbutton (self.sensorFrame, text = 'Color', - indicatoron = False, variable = self.colorVar) - self.colorButton.pack (side = 'top') - - self.tableview = TableView (self) - self.tableview.pack (expand = True, fill = 'both') + self.rightFrame = Frame (self) + self.rightFrame.pack (side = 'right', fill = 'y') + self.quitButton = Button (self.rightFrame, text = 'Quit', command = self.quit) + self.quitButton.pack (side = 'top') + self.actuatorview = ActuatorView (self.rightFrame) + self.actuatorview.pack (side = 'bottom', fill = 'x') + + self.sensorFrame = Frame (self.rightFrame, borderwidth = 1, relief = + 'sunken') + self.sensorFrame.pack (side = 'bottom', fill = 'x') + self.jackVar = IntVar () + self.jackButton = Checkbutton (self.sensorFrame, text = 'Jack', + indicatoron = False, variable = self.jackVar) + self.jackButton.pack (side = 'top') + self.colorVar = IntVar () + self.colorButton = Checkbutton (self.sensorFrame, text = 'Color', + indicatoron = False, variable = self.colorVar) + self.colorButton.pack (side = 'top') + + self.tableview = TableView (self) + self.tableview.pack (expand = True, fill = 'both') def update (self, *args): - """If called with arguments, add them to the list of objects to be - updated. - If called without argument, redraw all objects to be updated.""" - if args: - for i in args: - if i not in self.updated: - self.updated.append (i) - else: - for i in self.updated: - i.draw () - self.updated = [ ] + """If called with arguments, add them to the list of objects to be + updated. + If called without argument, redraw all objects to be updated.""" + if args: + for i in args: + if i not in self.updated: + self.updated.append (i) + else: + for i in self.updated: + i.draw () + self.updated = [ ] if __name__ == '__main__': app = Inter () app.tableview.robot.angle = pi / 3 app.tableview.robot.pos = (700, 700) if 0: - from dist_sensor import DistSensor - ds = DistSensor (app.tableview.robot, (150, -127), -pi / 12, 800) - app.tableview.robot.drawn.append (ds) - app.tableview.drawn.append (Obstacle (app.tableview, (1300, 1200), 150)) - ds.obstacles = app.tableview.drawn + from dist_sensor import DistSensor + ds = DistSensor (app.tableview.robot, (150, -127), -pi / 12, 800) + app.tableview.robot.drawn.append (ds) + app.tableview.drawn.append (Obstacle (app.tableview, (1300, 1200), 150)) + ds.obstacles = app.tableview.drawn app.actuatorview.arm.angle = pi/6 app.actuatorview.rear.traps[0].pos = 1 app.actuatorview.rear.traps[1].pos = 0 -- cgit v1.2.3