Automate shape arrangement (convex polygons) iterations grasshopper

How can I arrange a set of 7 surfaces/shapes (born from the interior of a hexagon) into different convex polygons using rhinoceros and grasshopper? The outer angles of the shape should be equal to or more than 180 degrees, and all the shapes should have full contact between edges.
How can I automate this to get n number of iterations?

I must say I am quite new to grasshopper and rhinoceros. For geometry class we need to find as many iterations as possible for a hexagon divided into 7 different shapes (like a Tangram) and I am determined to find a way to automize this process using rhino/grasshopper.

I have created a hexagon and divided it into pieces (tried randomizing the rotation and translation of the pieces, however the move component and rotation are not unified.)

For the rest of the document I have been investigating as to how to put those pieces together and automate it with Anemone but have not achieved it.

I understand this might be a complex task for a beginner as I have multiple hours in front of the screen myself, any help or resources will be greatly appreciated! Bellow are the files =)

HexagramsAutomation.gh (25.1 KB)
HexagramTangram.3dm (224.0 KB)

I hope you realize that statement is meaningless to me.

Had to look up “Tangram”: and found some helpful images (based on a square, not a hexagon):



Hello
I am not sure it is easy to do it with Grasshopper only. Yes Anemone could be useful, but for each polygon you need a sort of grammar, easy here as it is the length. I consider an edge connect annother edge with same length. Ideas like 1 edges is connected by 2 edges smaller seems less easy.

For this kind of job there are some plugins that are intended to solve this type of connexions.
There is WASP
https://www.food4rhino.com/en/app/wasp
I think Monoceros
https://www.food4rhino.com/en/app/monoceros
Perhaps other tools.

If you want to solve it a bit more by yourself, I think coding could be a bit more simple.
A shapes as edges and transform
Edges have a length and are connected (not free) or not (free)

Initialize a list of shape with a single shape.
Do
Take a free edge randomly
search a shape in the list of available shape
look if there is a good edge (same length)
if OK, place this shape (transform to do) and check if new shapes doesn’t cover the others shapes
continue until you have no more shape in the list or if the number of shapes equal a number

Test is whole shape area is the same as convex hull
if true record this shape.

This logic could surely be used in Anemone with more brute force (no check)
The final check is
Sum of all area == area of convex hull

Transform can contain boths, a plane also contain a translation and rotation(s)