Exemplo n.º 1
0
 def is_higher_than_start_by_bounding_xs(self, start: Point,
                                         finish: Point) -> bool:
     slope = get_slope(start, finish)
     for delta_y in get_deltas_between(start.y, finish.y):
         delta_x_1 = floor(delta_y / slope)
         delta_x_2 = ceil(delta_y / slope)
         if self.map.get_elevation(start.plus(
                 delta_x_1, delta_y)) > self.map.get_elevation(start):
             return True
         if self.map.get_elevation(start.plus(
                 delta_x_2, delta_y)) > self.map.get_elevation(start):
             return True
     return False
Exemplo n.º 2
0
 def is_higher_than_start_by_bounding_ys(self, start: Point,
                                         finish: Point) -> bool:
     """
     use floor and ceil
     """
     slope = get_slope(start, finish)
     for delta_x in get_deltas_between(start.x, finish.x):
         delta_y_1 = floor(slope * delta_x)
         delta_y_2 = ceil(slope * delta_x)
         if self.map.get_elevation(start.plus(
                 delta_x, delta_y_1)) > self.map.get_elevation(start):
             return True
         if self.map.get_elevation(start.plus(
                 delta_x, delta_y_2)) > self.map.get_elevation(start):
             return True
     return False