Source code for hop.hexabundle_allocation.general_operations.geometry_intersections.rectangle_with_rectangle

from ...general_operations.geometry_intersections.segment_with_segment import segments_intersection
from ...general_operations.geometry_shapes.segment import segment

# calculating intersection points between two rectangular magnets
[docs]def rectangle_rectangle_intersection(rectangle1, rectangle2): # calculate four corners of the rectangular magnet rectangle1_corners = rectangle1.calculate_4corners() rectangle2_corners = rectangle2.calculate_4corners() all_intersection_points = [] for k,l in zip([0, 1, 2, 3],[1, 2, 3, 0]): for m,n in zip([0, 1, 2, 3],[1, 2, 3, 0]): # creating rectangle magnet sides using rectangular magnet corners rectangle1_side = segment(rectangle1_corners[k], rectangle1_corners[l]) rectangle2_side = segment(rectangle2_corners[m], rectangle2_corners[n]) # solving for intersection points between two rectangular segments point = segments_intersection(rectangle1_side,rectangle2_side) # adding all intersecting points is list if point: all_intersection_points.append(point) return all_intersection_points