Несколько разных способов поиска по вашим треугольникам. Я бы начал с устранения невозможностей.
Найдите левый нижний угол для каждого треугольника и удалите все, что находится выше и / или справа от вашей точки. продолжайте поиск с другими треугольниками, и вы должны устранить подавляющее большинство исходных треугольников.
Возьмите то, что у вас осталось, и используйте полярную систему координат, чтобы собрать остальную необходимую информацию, основанную на углах между углами и точкой (в Java есть некоторые инструменты для этого, я не знаю о других языках).
Некоторые вещи, на которые стоит обратить внимание, - это выпуклая оболочка (другая, но несколько полезная), треугольники Бернулли и некоторые методы сортировки, вероятно, будут полезны.