. The rules to dispatch the lines are the next:
I start with a list that alternate true/false; like that: true, false, true, false.
If the angles between those lines are greater than 89° I want to inverse the next part of the list:
True, False, True, False, True, False,...
become
True, False, [>89°] False, True, False, True, [>89°] True, False,...
I managed to create a true false list, to check for the greater than 89° angle, to separate the lines relatively to the angles, but I don't know how to inverse part of the list at certain index.
(In the picture, I have written 90° but it should be 89°, I check for greater than 89° and not equal to 90° because in the real rhino model, the lines won't be exactly orthogonal)
If you have another idea to to reach the same result, it's also okay, I tried to find rules to solve the problems, but I may have overlooked other solutions !
And if there is some part of the patch that are correct but there is easier solution, I would love to learn as I am still new to grasshopper.
Thanks for taking the time to read. :)
…
nt B2[i] so B1[i]<=0 means no new connections allowed for point i ,so point i is deleted from B1, B2 updated accordingly.
Initialization:
B1: max number of connections x number of points
B2: all the points
B3: nothing (well null or something, need to create the branch)
Algo:
Get first point in B2, get his allowed number of connections N in B1, find N closest points in B2, create lines in B3, update B2 accordingly. Erase points with max connections (including the first point)
Next
Stop when no points available
At end of loop, B3 stores the created lines.
…