I have a list with coordinates and this Euclidean matrix which represents the distance between each point:
[0, 0], [0, 1], [0, 2], [0, 3], [0, 4]
[0. 1. 2. 3. 4.]
[1. 0. 1. 2. 3.]
[2. 1. 0. 1. 2.]
[3. 2. 1. 0. 1.]
[4. 3. 2. 1. 0.]
And what I want to do is check how many sets of two distinct but equal-length line segments which have one shared endpoint exists, for example: As we can see in the following image from the coordinate (0,0) to the coordinate (0,1) there is a distance equal to 1 and from the coordinate (0,2) to the coordinate (0,1) there is a distance equal to 1 (we already have two line segments with the same distance) and both share a point at the coordinate ( 0, 1).
As shown in the following image:
S1 represents the segment from the point (0, 0) to the point (0, 1) and S2 the segment from the point (0, 2) to the point (0, 1).
And what I want as my output is the number of cases that match the requirements that I mentioned above, in the images below we can see that there are 4 cases that match the requirements.
How would it be implemented in python? And is there a library that facilitates this analysis?
I was thinking of divide the euclidean matrix in two halves and then compare if they have the same distance and a zero in the middle, if it's the case then it's a match, but I don't know how to manipulate the matrix in order to do that.
source https://stackoverflow.com/questions/73186540/find-a-set-of-points-with-the-same-distance-in-a-euclidean-matrix-python
Comments
Post a Comment