Найдите трехмерную матрицу вращения для плоскости по нормали к поверхности и точке, лежащей на плоскости.

Учитывая две точки п 0 ( Икс 0 , у 0 , г 0 ) и п 1 ( Икс 1 , у 1 , г 1 ) , и будучи п 0 центр тяжести квадрата, ограниченного следующими точками:

( Икс 0 0,25 , у 0 0,25 , г 0 )
( Икс 0 + 0,25 , у 0 0,25 , г 0 )
( Икс 0 + 0,25 , у 0 + 0,25 , г 0 )
( Икс 0 0,25 , у 0 + 0,25 , г 0 )
мы знаем этот вектор п 0 п 1 "=" ( Икс 1 Икс 0 , у 1 у 0 , г 1 г 0 ) должна быть нормалью предыдущей плоскости. Я хотел бы найти матрицу вращения для плоскости, которая решает проблему.

Не совсем понятно, что вы спрашиваете. Вы хотите наклонить квадрат так, чтобы он был перпендикулярен п 0 п 1 ? Или нужно перевернуть п 1 ?
@Andrei Именно в этом и смысл (первый), а п 0 должен быть центром вращения. Извините, если коряво сформулировал вопрос...

Ответы (1)

Нормаль к исходному квадрату равна н "=" ( 0 , 0 , 1 ) . Чтобы вычислить вращение н на п "=" п 0 п 1 , ось вращения определяется выражением п × н . Yo может вычислить угол из скалярного произведения. Вы можете получить матрицу вращения, используя https://en.wikipedia.org/wiki/Rotation_matrix#Rotation_matrix_from_axis_and_angle . Если вы хотите вместо этого повернуть квадрат, это та же ось вращения с противоположным углом знака.

Извините, еще один вопрос. Теперь я могу вращать н делать п новая нормаль моего квадрата, поэтому матрица вращения р то, что я рассчитал, верно. Можно ли использовать р чтобы вычислить новое положение четырех точек, ограничивающих квадрат, или мне нужен другой метод для этой цели?
Вы можете использовать р для площади тоже