I think I’ve got a better idea of your problem now.
As I see it - you’re after the inverse of the convex hull - the largest polygon that doesn’t contain any other point, rather than the smallest that does contains every other point. You also got the hexagon requirement.
It’s probably worth checking that you can’t just brute-force it : calculate the 6-subsets of the intersections, generate the convex hull of those points, check that it’s a hexagon, check for point inclusion, choose the largest.
If that’s a no-go (probable, there’s a maximum of 21!/(15!*6!) = 54264 subsets to check) you can start being clever about choosing the six points: the six nearest the average of the intersections, the six nearest the line origins (if the line origins have any bearing on the desired output) etc
Alternatively, I’m pretty sure the Delaunay triangulation would be handy. Your desired output is the result of choosing an interior triangle and using its 3 neighbours to form a hexagon, so you’d have to check a maximum of 40 - 2*convexHullVertexCount triangles to see if the resulting hexagon is convex and choose the largest.
edit: actually, it isn’t necessarily one triangle’s three neighbours, so you’d have to check sets of 4 adjacent triangles.