Проще всего наверное будет поседеть немного за изучением алгоритмов пересечений...что то типа вот этого
http://algolist.ru/maths/geom/intersect/ ..или ещё есть книги алгоритмы компютерной графики.Можно конечно поискать и готовые решения ,но это плохой совет!