First, there are three corner cases in your idea, that must be dealt with:
- the vertical line intersects above and below, you must choose one
- the vertical line could intersect with a vertex not an edge
- the vertical line could intersect with an edge that is also vertical (so that there is an infinity of common points)
This said,
Say you find an edge below the point. So you found 1 edge and 2 vertices. You can select the left vertex, compute the angle of the found edge relative to each segment originating from this vertex, and select the segment with the lowest angle. Then you follow this new edge to find a new vertex, and iterate.