An O(n) algorithm to detect if a line intersects a convex polygon consists in checking if any edge of the polygon intersects the line, and look if the number of intersections is
take a random two points A and B from convex poligon.
if those two furthest points are on different side of your line, line intersects poligon, otherwise it doesn't
By the way you can also find actual intersection points in O(log n) too.