Polar Rotation Duplication

I’ve recently been looking at the Op Art movement and thought that as a lot of it is based on geometry, it might be a good motivation to try and learn some Grasshopper in my free time.

I found the generative landscapes blog and have been playing round with some of the things on there, and have started to try and come up with something from scratch on my own, but have very quickly reached the limit of my understanding.

This is an example of the kind of thing I was aiming to achieve:Example-1

I thought I would try to start simple to try and get a basic concept to refine later on, so went with a polar grid and some polygons, scaled towards the centre with an attractor - I’m trying to rotate the polygons so that they are aligned with each spoke, rather than the Y plane, and it almost works, except one spoke has each polygon with the 18º rotation applied locally 180 times, but I have no idea how or why.


if anyone can point me in the right direction, without duplicating me 180 times, that would be greatly appreciated!

Also if anyone has any other tips or resources for this kind of pattern generation, that would be great.

Many thanks!

Hello,
I think your duplication problem comes from your tree structure, but it is hard to see without a GH file.

Another method to avoid this would be to first make one row of polygons, then use polar array to duplicate them, like this :

Thanks for the reply, I’ll give that a look!

Here’s the GH file if that’s any usePolar rotation.gh (11.3 KB)

I didn’t have the component you used to make the polar grid, but I managed to recreate it and found your problem.
At the output of your Polygon component, you have a datatree structure with 20 branches and 10 items in each, which means in each branch you have the 10 polygons alined from the center.
You want all polygons on the same line (ie in the same branch) to rotate with the same value.
But what you did was create a different value for each item of the branch (with your series component) and then graft these values.
So your polygons tree had 20 branches, and your rotation angles tree had 20*10=200 branches. Grasshopper works branch by branch, so it worked fine for the first 20 branches, but after it kept repeating the last branch of your polygons with the 180 remaining angles.
What you need to do is have one angle value per branch of polygons tree, and your can do it with the TreeStatistics component :


I hope my explanations make sense!
Good luck!

Thank you for taking time to have a look for me, I’ll give that a go!