# Moving Lists while manipulating them - Permutation of Angles

Hello,

I’d like to make a graphic for a research project:
I want to show all possible combinations of two lines which are rotated around a point in a certain angle - for example 45° degrees.
In theory I get a list of tuples made out of two angles Alpha and Beta, where Alpha stays at a certain angle while Beta goes ‘around the clock’. Then Alpha goes one step further and so on.
It should look something like this:

(45°,45°);(45°,90°);(45°,135°);(45°,180°);(45°,225°);(45°;270°);(45°,315°);(45°360°);
(90°,90°);(90°,135°);(90°,180°);(90°,225°);(90°;270°);(90°,315°);(90°360°);
(135°,135°),(135°,180°) etc…

I made up a GH-Definition where I figured out the first line (Thanks to HS_Kim from this forum) , but I fail to move the series up in the Y-Direction while resetting the Step to itself +1.
I think the solution has something to do with crossreferencing and manipulating Lists or Trees, but I just don’t get it.

Maybe someone here can give me a quick hint? That would be a relief!
The Image showes the result of the definition in blue and the result that i long for in black.

180627_anglearray_simple.gh (10.6 KB)

A bit dirty, but I hope it helps you!

180627_anglearray_simple_rev.gh (13.5 KB)

1 Like

Here’s my approach, although possibly I misundestood your exact requirements: permutations.gh (17.8 KB)

1 Like

Wow! First of all: thank both of you very much for your quick responses! I will check your suggestions as soon as work allows me to!

Thanks a lot, Pietro!

Your Approach seems not too dirty to me gets the result I wanted!

I learnd a lot about how to manipulate Lists from your definition - especially the “reapeat data” operator is great tool I didn’t know yet. I spent quite some time with your solution and messed everything up with a lot of panels to get to know what you did with all the Tree-manipulations

I have to admit that I don’t realy get everything in the late part, after the two rotation functions - It seems to me, that you could just cut the rest and still get the same result on screen. But I think you are doing this to get the structure from one long list back into seperate branches. This probably helps, if i want to keep on working with the data.

Again - Thanksyou! I hope, I can give something back and contribute in this forum, soon.

1 Like

David - a big thank you for your approach, too and kudos for the clean code!

Generating the angles via cull pattern is a smart solution and using vectors is really neat, too. I also understand the Cross Reference function a bit better now.

The key insight (for me) is using a grid instead of arrays. Now I think I could have come up with this - especially since I watched your Data Tree Videos for a few times. (https://youtu.be/SmNPxKTDcQI if anyone else is interested)

But probably its like learning a new language: At least I start to understand it better. Next step is speaking.
Anyhow: Thank you, Sir and keep up the excellent work!