I have a list of co-ordinates that I need to group, then sort within each group. I have an associated list of integers which indicates the group each co-ordinate is to be assigned to and another list of real numbers whose ascending values indicate the sorted order.
I can use a path mapper to split each list and then sort, as illustrated here:
But this only works if the groups are all the same size and that size is known in advance. In a full implementation that will not be the case so I need another way to do this. I would rather avoid writing code to create a solution if I can.
Any suggestions as to a better approach would be most welcome, preferably without using third-party plugins.
Still uses the Create SetMember IndexList Item pattern that @inno showed to do the initial grouping of the points.
Points are grouped by angle measured from the World XY plane then sorted by distance from origin. Then some DataTree manipulation to get the points arranged into groups that form the spiral shapes.
Data in the panels at the end is created from the grouped and sorted points. The “Sequence” panel is calculated by distance from origin re-mapped to a 0-1 domain. It differs from the data you provided beyond the 3rd decimal place.
Thank you for putting time and effort into this. However at first glance it looks more complicated than Inno’s so I’ll be sticking with his in the production model.
I shall put time and effort into understanding your approach, so I thank you for another learning opportunity.
As @kev.r has demonstrated , the data comes from points on spirals: in detail, from the intersections of polar arrays of clockwise and anticlockwise spirals.
I was exploring solutions for a a parametric way to generate stylized frames around quadrilateral spaces arranged in such a fashion, in response to another person’s post on discourse. They’ve subsequently deleted their post, possibly because they came up with their own solution.
Rather than waste the work I’ve done (or @inno 's) I’ll post the outcome here so you can see what you’ve contributed to: