Лучше проверять пары отрезков на пересечение.
Разумеется, не надо проверять соседние отрезки, а также уже проверенные пары.
Ещё будет проблема, если два отрезка частично совпадают: тогда множество точек пересечения бесконечно.
Про проверку отрезков можно почитать
на RSDN, там и примеры кода есть. Ну или нагуглить что ещё.