With my method above you can have any intersection points with any complex surfaces! ;)
Just take more than my few lines and their only one orientation!
No need complex algorithm :)
No vertical here :) Configurations of the Grid's lines are infinite! (Position, orientation, number, ...)

|