Джедай Миха
Наконец-то отладил движение по кубику. Последняя проблема заключалась в том, что вообще говоря, на многограннике для любых двух точек геодезическая, которая их соединяет, не может проходить через вершину. Но то в теории. А когда я управляю точкой и посылаю её на вершину того же кубика, то программа должна сделать что-то адекватное. Адекватных решений не так уж и много. Рассмотрим путь, при котором точка обходит вершину справа, и путь, при котором она обходит вершину слева. Рассмотрим предельный переход при стремлении расстояния от пути до вершины к нулю. Получим, что предел слева не равен пределу справа. В итоге, адекватно будет из двух полученных "усов", торчащих из вершины, выбрать один. Что я и сделал.
Радостно запустил точку гулять по сфере. Начались проблемы. Во-первых, на кубике каждая грань состояла из двух полигонов. Причём, они с отличной точностью лежали в одной плоскости. Поэтому при переходе с полигона на полигон мне было достаточно сравнения векторного произведения нормалей полигонов с некоторым эпсилон, который я нашёл в Mathf. Когда на сфере я столкнулся с ситуацией, где два полигона почти лежат на одной плоскости, то оказалось, что этот эпсилон просто чудовищно мал (1e-45!!). Исправил, стало легче. Дальше поборол ещё пару ошибок. Точка начала лихо нарезать круги где-то рядом с экватором... а потом, внезапно, сорвалась с поверхности сферы и улетела (видать, набрала первую, а вообще-то и вторую космическую). Что случилось? Прааально. Точка попала в вершину сферы (ну модельки :) ), и что-то там сломалось... Будем посмотреть...