Комментарии 22
Сталкивались ли вы в ходе подготовки статьи, например, с плагинами для Blender, реализующими подобные вычисления?
Конкретно блендером я никогда не пользовался, и поэтому на плагины к нему не смотрел.
Но вообще конечно я далеко не первый, кто решал такую задачу. Есть вот тут https://spaceengine.org/articles/visualizing-general-relativity/ что-то похожее, и по-видимому более оптимальным способом, или вот научная статья: https://arxiv.org/pdf/1109.4769
Но это все уже дополнительные надстройки над просто трассировкой геодезических. Здесь же я хотел решить задачу максимально в лоб, и воспользоваться этим чтобы поизучать OpenGl, и разобраться получше с численными методами.
Для вычисления арктангенса x/y лучше воспользоваться функцией atan2, она хорошо себя ведет в окрестности нуля и бесконечности. В частности, в функции cart_to_sh
не нужно будет шаманить с фи.
atan можно вообще не использовать, если подставить его в синус/косинус, а затем сократить (аналитически). Например:
А atan2 не так работает?
Atan2 просто делит меньший аргумент на больший, чтобы избежать деления на ноль, и высчитывает квадранты исходя из знаков аргументов. А мой комментарий был про другое - в цепочке преобразований угол, как правило, является лишь промежуточным значением, который в конце опять преобразуется в декартовы координаты. В таком случае через экспоненциальную форму можно избавиться от тригонометрических функций и свойственных им неоднозначностей. Ну и функция корня вычислительно проще и быстрее тригонометрических.
Интересно! Наваял как-то библиотеку символьных вычислений (+ кое какие численные метоы на борту) на Расте. Будет интересно повторить Ваш эксперимент...
Не только всю сферу от горизонта видно будет, но и бесконечно много её повторов вон в той внешней полосочке ;)
А вот эта картинка имеет к статье какое-то отношение или это про другое?

Конечно, самое прямое. Добавил диск ради интереса.

И чуть более реалистичная версия, с внутренним краем диска на последней стабильной орбите
Прямо почти ваша картинка

Зачем вычисления в сферических координатах? Не усложняет ли это всё? Вычисления в декартовых координатах обычно ведь проще и быстрее.
Статья интересная, но необходимо указать граничные значения phi, theta для пересчета сферических координат в декартовы.
Не знаю что страшнее то, что я случайно наткнулся на эту статью или то, что я всё понимаю
У вас там опечатка. Уравнение перехода из сферических координат в декартовы в коде не соответствует уравнению на картинке. Фи и тетта местами перепутаны.
Вспомнил первые изображения чёрных дыр, рассчитанные на ibm в 80 годах. Даже на обложку книг эту классику помещали.

Рассчитано компьютером IBM 7040 в 1978 году астрофизиком Жан-Пьером Люмине
Релятивистская трассировка лучей