I need to be able to get the indices of two endpoints that form a straight line in a list of points. It's difficult to describe so I will just say the desired outcome for multiple test cases:
Let's say we have a list of points in 3D space:
[45,45,45]
[45,45,42]
[45,45,39]
[45,42,39]
[45,39,39]
[45,36,39]
[45,33,39]
The expected outcome if the list starts at 0 would be:
(0,2),(3,6)
Because we can form a line between points on indices 0 and 2 without the line leaving the z axis, and we can form a straight line between points on indices 3 and 6 without it leaving the y axis.
The expected input will always be the same format as the above, with only 1 of the axis changing values as you go through the list. Here's another test case:
[30,24,42]
[30,21,42]
[27,21,42]
[27,21,45]
[27,21,48]
[27,21,51]
With the output:
(0,1),(2,5)
I don't know how to begin tackling the problem. I first thought of using a for loop to iterate through every point and store the difference between each consecutive point and checking whether or not the difference between the axis remained the same, but I couldn't figure out how to do it yet. Any help or guidance would be appreciated.
Via Active questions tagged javascript - Stack Overflow https://ift.tt/ohRMi0d
Comments
Post a Comment