From 5c15ce981e9de8432d83714c47790b0f01afdac4 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 29 Apr 2008 09:40:58 +0200 Subject: * host/inter: - added obstacle and distance sensor. --- host/inter/inter.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'host/inter/inter.py') diff --git a/host/inter/inter.py b/host/inter/inter.py index a7d95f82..cde1bd73 100644 --- a/host/inter/inter.py +++ b/host/inter/inter.py @@ -30,6 +30,10 @@ from math import pi, cos, sin class Robot (Drawable): """The robot.""" + def __init__ (self, onto): + Drawable.__init__ (self, onto) + self.drawn = [ ] + def draw (self): self.reset () self.trans_rotate (self.angle) @@ -44,6 +48,22 @@ class Robot (Drawable): 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 + + 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') class Table (Drawable): """The table and its elements.""" @@ -128,9 +148,12 @@ class TableView (DrawableCanvas): 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 () class Arm (Drawable): @@ -263,6 +286,12 @@ 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 app.actuatorview.arm.angle = pi/6 app.actuatorview.rear.traps[0].pos = 1 app.actuatorview.rear.traps[1].pos = 0 -- cgit v1.2.3