I sorted all branches based on their angle to the center,
so lines of branches only check for intersection with branches next to them.
Also I rewrote the code so that any number of branches are possible from one point:

Now I need to fill the void spaces, preferable with objects of a triangle class which can be subdivided.
When there are three cut points one single triangle object will be created,
if there are four cut points two triangles.
Should there be more than 4 intersections and the number of intersections is even,
I could give each branchpair a triangle based on the intersection points the lines of the branch pair have ( should always be three with my algorythm ).
Then repeat this with the intersection of the lines of the new added triangles until the number of freshly created triangles equals three.
After this I just have to fit one last triangle in the remaining space.
But what to do if it is an uneven number of branches?
Edit: I have just noticed that i can simply fill all void spaces with more than 3 edges by using an additional vertex in the center of the intersection
( like someone would close a cylinders top ).
Edit2: Here is how it looks without subdivided triangle objects yet:
