2015-03-11 2 views
1

В диаграмме нижеНайти точку на линии, перпендикулярной и через середину другой линии

  • всех точек в 3D пространстве (х, у, г) и в той же плоскости
  • BC определяет вектор с серединой
  • PA должна быть перпендикулярна к ВС, однако я не знаю, как найти P
  • мне нужно, чтобы определить угол между ОА и ПА

Вы знаете, как это можно решить? Рад предоставить дополнительную информацию, если необходимо.

enter image description here

+0

Я полагаю, все они лежат в одном и том же самолете. – knedlsepp

+0

они могут не находиться в одной плоскости, они могут находиться в разных плоскостях вдоль трехмерного пространства – pepe

+0

Тогда проблема не определена. Поскольку 'P' вращается вокруг оси' BC', угол 'PAO' изменится. – knedlsepp

ответ

3

Это простое использование кросс-продукта и скалярного продукта:

Вы сначала найти нормальный вектор N плоскости, натянутой на этих точках. Это делается с помощью перекрестного продукта B-A и O-A. Затем вектор направленности AP можно найти в виде перекрестного произведения N и B-A. Для нахождения угла возьмем скалярное произведение нормированных векторов AP и AO, применим acos и преобразуем в градусы.

%// Example data 
A = [0,0,0]; 
B = [-1,0,0]; 
C = [1,0,0]; 
O = [-1,-1,0]; 
%// Computation 
normalize = @(X) X/norm(X); 
N = normalize(cross(B-A,O-A)); 
AP = cross(N,B-A); 
phi = (180/pi)*acos(dot(normalize(AP),normalize(O-A))) 
Смежные вопросы