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
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
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]
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])
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])