Как повернуть уравнение плоскости относительно точки? Добрый день. Есть уравнение плоскости вида Ax+By+Cz+D=0 так же есть её базисы, если нужно, есть некоторая точка M(x, y,z) необходимо повернуть эм уравнение плоскости на угол Y U W (относительно осей ox, oy, oz) Подскажите, пожалуйста, алгоритм. P.S. Кватернионы не предлагать =) Скорее всего мне помогут матрицы...
Для поворота уравнения плоскости относительно точки M на углы Y, U, W можно воспользоваться матрицами поворота.
Найдите матрицы поворота относительно каждой из осей ox, oy, oz на углы Y, U, W. Например, матрица поворота относительно оси ox на угол Y будет:Rox = [[1, 0, 0],
[0, cos(Y), -sin(Y)],
[0, sin(Y), cos(Y)]]
Аналогично найдите матрицы Rоy и Roz для поворота относительно осей oy и oz на углы U и W соответственно.
Переведите координаты точки M и базисы плоскости в матричную форму:M_matrix = [[x],
[y],
[z]]
Базисы плоскости преобразуйте в матрицу 3x3, где каждый столбец - это координаты базисного вектора.
Умножьте матрицы базисов плоскости и точки M на полученные матрицы поворота Rоx, Rоy, Roz:M_rotated = Rox M_matrix
Basis_rotated = Rox Basis_matrix
После этого повторите процедуру для матриц Rоy и Roz.
Найдите новые координаты точки M и базисы плоскости после всех поворотов.
Составьте новое уравнение плоскости с использованием новых коэффициентов A', B', C', D':
A'x + B'y + C'z + D' = 0
Таким образом, вы получите уравнение плоскости, повернутое относительно точки M на заданные углы Y, U, W.