Разделите Сферу Юнит

Я хотел бы сделать таблицу поиска для единичных векторов. Каждый единичный вектор будет отображаться в ячейку в этой таблице, и ячейка будет содержать некоторую информацию для небольшого набора векторов с одинаковыми направлениями.

Я мог бы легко представить вектор с помощью ($\theta$, $\phi$, 1), а затем нарезать диапазоны углов на бины, чтобы создать 2D-таблицу поиска (поэтому первый бин - это тета в диапазоне от 0 до $2*\pi / N$, где N - количество ячеек, которые я хочу для направления тета). Проблема в том, что я думаю, что некоторые ячейки будут представлять большие области на поверхности сферы юнитов, чем другие, и я хотел бы получить области примерно одинакового размера.

Я ошибаюсь, полагая, что равномерное деление диапазона углов может привести к тому, что некоторые корзины будут больше других? Если нет, кто-нибудь знает лучший способ сделать эту таблицу поиска?

Я нашел несколько статей и презентаций, подобных этой, но я не собираюсь лгать, я не понимаю этого (я слышал о мере Лебега, но будь я проклят, если знаю, что это значит), и это все равно не выглядит особенно многообещающе.

1 ответ

Решение

Если вы разделите долготу на N Сегменты одинакового размера, поэтому, чтобы получить равные области доменов на единичной сфере, вам понадобятся "неровные" сегменты вдоль измерения широты. Площадь сферического сегмента между двумя линиями постоянной широты (параллели) зависит только от "высоты", т. Е. Длины проекции сегмента на вертикальную ось. Это означает, что если вы разделите вертикальную ось на части равной длины, то вы будете разбивать сферу на домены равной площади.

Суть в следующем: следующее N*M домены имеют равные площади:

  • 2*k*pi/N < longitute < 2*(k+1)pi/N, k=0...N-1
  • -1 + 2*j/M < sin(latitude) < -1 + 2*(j+1)/M, j=0...M-1
Другие вопросы по тегам