Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
sympy.geometry solution in Clear category for Shooting Range by rodka81
from sympy.geometry import intersection, Point, Line, Segment
def shot(wall1, wall2, shot_point, later_point):
wall = Segment(wall1, wall2)
trajectory = Line(shot_point, later_point)
intersect = intersection(wall, trajectory)
target = (Point(wall1) + Point(wall2)) / 2
half_wall_length = Point(wall1).distance(wall2) / 2
if Point(later_point).distance(target) > Point(shot_point).distance(target):
return -1
if len(intersect) == 1:
return round(100 - intersect[0].distance(target)*100/half_wall_length)
return -1
Jan. 6, 2017
Comments: