在垂直于另一条线的中间的线上找到一个点
Find a point on a line perpendicular and through the middle of another line
在下图中
- 所有点都在 3D 中 space (x, y, z) 并且在同一平面中
- BC 定义一个中点为 A 的向量
- PA 应该垂直于 BC,但是我不知道如何找到 P
- 我需要确定 OA 和 PA 之间的角度
你知道怎么解决吗?如果需要,很高兴提供更多信息。
叉积和标量积的简单使用:
您首先找到由这些点跨越的平面的法向量 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)))
在下图中
- 所有点都在 3D 中 space (x, y, z) 并且在同一平面中
- BC 定义一个中点为 A 的向量
- PA 应该垂直于 BC,但是我不知道如何找到 P
- 我需要确定 OA 和 PA 之间的角度
你知道怎么解决吗?如果需要,很高兴提供更多信息。
叉积和标量积的简单使用:
您首先找到由这些点跨越的平面的法向量 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)))