Also ich würde das so lösen: mache aus dem Polygon eine Ebene und schneide die Gerade bzw. erweiterte Strecke mit dieser. Nun prüfst du, ob der Schnittpunkt im Polygon liegt - wenn ja, dann prüfst du noch, ob der Schnittpunkt auch auf der Strecke liegt