Часть расстояния легка. Перевод от источника дается первыми тремя числами в самом правом столбце. Это представляет перевод в направлениях x, y и z соответственно. В вашем примере положение камеры p = (p x , p y , p z ) = (217.653207, 995.948880, 371.963957). Вы можете взять евклидово расстояние между местоположением камеры и местоположением объекта калибровки (c x , c y , c z ). То есть это будет просто sqrt ((p x -c x ) 2 + (p y -c y ) 2 + (p z -c z ) 2 )
Более сложная часть касается вращения, которое фиксируется в верхних левых 3х3 элементах матрицы. Не зная точно, как они к этому пришли, вам не повезло. То есть преобразовать это обратно в Euler Angles нелегко, если вы этого хотите. Однако вы можете преобразовать эти элементы в Quaternion Rotation , который даст вам уникальный единичный вектор и угол для поворота камеры в эту ориентацию. Специфика расчета приведена здесь . Получив вращение кватерниона, вы можете легко применить его к векторам n = (0, 0, 1), up = (0, 1, 0) и right = (1, 0, 0), чтобы получить нормальное (направление камера указана), вверх и вправо векторов. Правый вектор полезен, только если вы заинтересованы в повороте камеры влево или вправо от ее текущего положения.