Здравствуйте. Встала задача поворота системы координат по осям. Очевидно, что нужно использовать матрицы поворота, последовательно перемножив их по каждой из осей, только вот никак это у меня не получается. Из начальных данных имеются координаты ( Х, Y, Z ) пунктов в истинной ( начальной ) системе координат и координаты тех же пунктов, но уже в условной системе координат. Задача состоит в том, чтобы перевести координаты пунктов из условной системы координат в истинную.
Алгоритм моего решения следующий:
1) В связи с тем, что ориентирование осей в пространстве у меня немного отличается от стандартного ( см. изображение ), то мне необходимо отзеркалить относительно плоскости ZoX
Из-за зеркального отражения углы вращения вокруг осей поменяют свои направления на противоположные.
2) Вычисляю приращения координат в каждой из СК, направляющие углы. Их разность дает нам углы, на которые необходимо довернуть условную СК.
3) Повороты вокруг осей провожу в следующем порядке: X-Y-Z.
Матрицы поворота в моем случае должны выглядеть следующим образом:
S(x)
S(y)
S(z)
4) После вычисления конечной матрицы поворота
, я умножаю ее на вектор приращений координат и суммирую с координатами начального пункта:
Полученные координаты никак не хотят сходиться (точность должна составлять порядка 0.5 см, но они даже близко не похожи), что я делаю не так?