Comments 8
Описание луча прямой — не самая светлая идея. Как минимум конус (с большим весом вдоль оси, чем по краям).
Впрочем, если лучей не очень много — можно обойтись без воксельного пространства вообще. "Пересечения" ищутся просто — достаточно искать не точку пересечения, а две ближайшие точки прямых. Проходим по всем парам прямых, считаем, оставляем только те, где расстояние мало (сложность: "малость" расстояния зависит от расстояния до пеленгатора). Потом каждую точку проверяем на близость к остальным лучам (или просто прогоняем по серединам отрезков какой-то алгоритм поиска кластеров).
Но с вокселями код всяко проще отладить.
Меньше, чем кубическую: первый проход — по парам прямых O(nn), из nn точек оставляем m — второй проход O(m*n).
Но всё равно воксельная модель проще (в смысле, в её реализации труднее накосячить).
Нет-нет, такой плохой случай можно исключить сразу. Если у нас получилось n*n равноправных точек — они или все ложные, или все истинные (и тогда можно просто выбрать из них часть более-менее произвольно — например, по 2 точки на прямую).
Впрочем, это всё неважно — у вас уже есть более простой работоспособный алгоритм, позволяющий модификации "малой кровью".
Upd: не туда ответил.
Местоопределение Wi-FI источников в AR и котелок