- Avoid manully
Partition
and construct the graph.
*
linesClear["Global`*"];
pts1 = MeshPrimitives[DiscretizeGraphics@curves{{0, 1];
data0}, ={1, Region`Mesh`SplitIntersectingSegments[lines];1}, {2, -1}, {3, 0}, {5, 2}, {6, -1}, {7, 3}};
ptspts2 = data[[1]];{{5, -2}, {0, 0}, {1, 2}, {5, 1}, {2, 2}, {4, 3}, {5, 4}};
splitspts3 = data[[2]];{{4, 2}, {3, 2}, {2, 3}, {-1, -3}};
regcurves = MeshRegion[pts{curve1, Line@splits];
graphcurve2, curve3} = MeshConnectivityGraph[reg];
Graphics[ BezierCurve /@ {HatchFilling[]pts1, pts2, pts3};
reg = BoundaryMeshRegion[pts,RegionUnion[DiscretizeGraphics /@ curves];
g = Graph[MeshPrimitives[reg, Line@Append[#1] /. Line -> Apply@UndirectedEdge, First@#]
&[PlanarFaceList[graph][[2]][[;; VertexCoordinates -> MeshCoordinates[reg]];
faces = PlanarFaceList[g];
Graphics[{curves, HatchFilling[], 2]]]]EdgeForm[Cyan],
curvesPolygon@faces[[2]]}]