Или меньше?
Да, действительно. Конечно меньше, раз делим на
. Значит должно быть вообще хорошо (по крайней мере в случаях, когда ошибки ведут себя близко к предположению).
Скажите, пожалуйста, а есть ли какое-то представление матрицы поворотов с не большим числом переменных
, чтобы любое расстояние векторов
по
-норме не сильно отличалось от сравнения либо векторов, составленных из элементов самих матриц, или из пар синус-косинус?
Собирался предложить axis-angle, где единичный вектор оси вращения умножается на угол, но с нормой будет плохо, потому что повороты с углами, близкими к
, имеют далёкие друг от друга представления. Можно
попробовать сделать из матрицы поворота (единичный) кватернион, но там тоже есть проблема, хотя и куда меньше: отличающиеся знаком кватернионы задают одно и то же вращение, так что может быть придётся считать минимум из расстояний между кватернионами
и
.
Хотя вообще единичные кватернионы, если их рассматривать как четырёхмерные векторы, образуют трёхмерную сферу, так что для них естественно брать мерой отличия угол между одним и другим (обычным образом через скалярное произведение, и тут заодно можно убрать разницу из-за знаков, беря модуль скалярного произведения). Но это же арккосинус считать, может оказаться дорого (хотя можно просто вычесть тот модуль скалярного произведения из единицы и уже будет не очень дурная метрика — 0 для совпадающих с точностью до знака кватернионов и 1 для ортогональных).
Или если взять
(потому что единичные), это даст кватернион, соответствующий вращению
, и из того кватерниона можно например выделить угол поворота, что тоже скажет, насколько далеко одно вращение от другого. Этот угол получается как двойной арккосинус первой компоненты кватерниона, и мы пришли к тому же углу, который я предлагал абзацем выше (только в два раза больше). Так что проще будет считать тот, а то в произведении кватернионов будет вычисление трёх ненужных нам компонент.