Как преобразовать декартовы координаты в сферические для горячих точек на изображении 360 - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть ровно прямоугольное изображение 360, на которое будут отображаться горячие точки в стандартном координатном пространстве X / Y.

В Unity это изображение будет отображено на сфере, и я расположу горячие точки навнутренняя поверхность сферы.

Мне нужна математика для преобразования этих декартовых координат в сферическую от центра сферы (где будет камера).

1 Ответ

0 голосов
/ 04 февраля 2019

Питер О., конечно, прав, хотя существует простой стандартный способ выполнения обратной прямоугольной проекции.

Существует два основных способа записи сферических координат: «математический» и «физический».».Разница лишь в названии координат.См. Две иллюстрации систем координат в верхней части этой статьи: https://en.wikipedia.org/wiki/Spherical_coordinate_system.

Я предполагаю, что мы используем математическую систему с θ в плоскости xy и φ в (x, y) -z-самолет.Тогда проекция выглядит просто:

θ = 2π * x / w - π, где w - ширина изображения, а x - позиция x в пикселях.Это позволит расположить средние точки на изображении вдоль оси x в сфере, что, вероятно, является предпочтительным.Если система координат принимает значение в [0, 2π] -диапазоне, вы должны вместо этого сделать (2π * x / w + π)% 2π.

φ = π * y / h, где h - этовысота изображения, а y - это y-позиция в пикселях.

А r - это просто некоторая постоянная, которую, конечно, можно свободно выбирать.

Надеюсь, это поможет.

...