Exemplo n.º 1
0
 def ball_area(self):
     front_left = (self.x + self._catcher_area['front_offset'] + self._catcher_area['height']*1.5, self.y + self._catcher_area['width']/2.0)
     front_right = (self.x + self._catcher_area['front_offset'] + self._catcher_area['height']*1.5, self.y - self._catcher_area['width']/2.0)
     back_left = (self.x - self._catcher_area['front_offset'], self.y + self._catcher_area['width'])
     back_right = (self.x - self._catcher_area['front_offset'], self.y - self._catcher_area['width'])
     area = Polygon((front_left, front_right, back_left, back_right))
     area.rotate(self.angle, self.x, self.y)
     return area
Exemplo n.º 2
0
 def catcher_area(self):
     front_left = (self.x + self._receiving_area['front_offset'] + self._receiving_area['height'], self.y + self._receiving_area['width'] / 2.0)
     front_right = (self.x + self._receiving_area['front_offset'] + self._receiving_area['height'], self.y - self._receiving_area['width'] / 2.0)
     back_left = (self.x + self._receiving_area['front_offset'], self.y + self._receiving_area['width'] / 2.0)
     back_right = (self.x + self._receiving_area['front_offset'], self.y - self._receiving_area['width'] / 2.0)
     area = Polygon((front_left, front_right, back_left, back_right))
     area.rotate(math.pi / 2 - self.angle, self.x, self.y)
     return area
Exemplo n.º 3
0
 def get_generic_polygon(self, width, length):
     '''
     Get polygon drawn around the current object, but with some
     custom width and length:
     '''
     front_left = (self.x + length / 2, self.y + width / 2)
     front_right = (self.x + length / 2, self.y - width / 2)
     back_left = (self.x - length / 2, self.y + width / 2)
     back_right = (self.x - length / 2, self.y - width / 2)
     poly = Polygon((front_left, front_right, back_left, back_right))
     poly.rotate(self.angle, self.x, self.y)
     return poly[0]
 def get_generic_polygon(self, width, length):
     '''
     Get polygon drawn around the current object, but with some
     custom width and length:
     '''
     front_left = (self.x + length/2, self.y + width/2)
     front_right = (self.x + length/2, self.y - width/2)
     back_left = (self.x - length/2, self.y + width/2)
     back_right = (self.x - length/2, self.y - width/2)
     poly = Polygon((front_left, front_right, back_left, back_right))
     poly.rotate(self.angle, self.x, self.y)
     return poly[0]
Exemplo n.º 5
0
 def test_generic_polygon(self):
     '''
     Checks if the points returned by the
     generic polygon method are correct
     '''
     angles = ([0, pi/6, pi/4, pi/2, pi/2 + pi/6, pi/2 + pi/4,
                 pi/2 + pi/3, pi, pi + pi/6, pi + pi/4, pi + pi/3,
                 3*pi/2, 3*pi/2 + pi/6, 3*pi/2 + pi/4, 3*pi/2 + pi/3])
     for angle in angles:
         p_object = PitchObject(50, 50, angle, 0, 40, 20, 10)
         poly = Polygon(((60, 70), (60, 30), (40, 70), (40, 30)))
         poly.rotate(angle, 50, 50)
         assert_almost_equal(p_object.get_polygon(), poly[0])
Exemplo n.º 6
0
 def catcher_area(self):
     front_left = (self.x + self._receiving_area['front_offset'] +
                   self._receiving_area['height'],
                   self.y + self._receiving_area['width'] / 2.0)
     front_right = (self.x + self._receiving_area['front_offset'] +
                    self._receiving_area['height'],
                    self.y - self._receiving_area['width'] / 2.0)
     back_left = (self.x + self._receiving_area['front_offset'],
                  self.y + self._receiving_area['width'] / 2.0)
     back_right = (self.x + self._receiving_area['front_offset'],
                   self.y - self._receiving_area['width'] / 2.0)
     area = Polygon((front_left, front_right, back_left, back_right))
     area.rotate(math.pi / 2 - self.angle, self.x, self.y)
     return area
Exemplo n.º 7
0
 def test_generic_polygon(self):
     '''
     Checks if the points returned by the
     generic polygon method are correct
     '''
     angles = ([
         0, pi / 6, pi / 4, pi / 2, pi / 2 + pi / 6, pi / 2 + pi / 4,
         pi / 2 + pi / 3, pi, pi + pi / 6, pi + pi / 4, pi + pi / 3,
         3 * pi / 2, 3 * pi / 2 + pi / 6, 3 * pi / 2 + pi / 4,
         3 * pi / 2 + pi / 3
     ])
     for angle in angles:
         p_object = PitchObject(50, 50, angle, 0, 40, 20, 10)
         poly = Polygon(((60, 70), (60, 30), (40, 70), (40, 30)))
         poly.rotate(angle, 50, 50)
         assert_almost_equal(p_object.get_polygon(), poly[0])