Vector 从方向向量计算角度

Vector 从方向向量计算角度,vector,geometry,direction,Vector,Geometry,Direction,我有这样的方向向量(0.000000,0.707107,0.707107),我想把这个向量转换成X,Y,Z方向平面和方向向量(0,45度,45度)之间的角度。请提供数学方程或VBA函数以获得角度 要获得向量D=(dx,dy,dz)和坐标平面之间的角度,可以使用向量的标量积及其在相应平面上的投影 例如,要获得OYZ平面上的投影,只需将x分量设为零即可 P(0yz) = (0, dy, dz) S = D.dot.P = 0 + dy * dy + dz * dz Fi(D, 0yz) = ArcC

我有这样的方向向量(0.000000,0.707107,0.707107),我想把这个向量转换成X,Y,Z方向平面和方向向量(0,45度,45度)之间的角度。请提供数学方程或VBA函数以获得角度


要获得向量
D=(dx,dy,dz)
和坐标平面之间的角度,可以使用向量的标量积及其在相应平面上的投影

例如,要获得OYZ平面上的投影,只需将x分量设为零即可

P(0yz) = (0, dy, dz)
S = D.dot.P = 0 + dy * dy + dz * dz
Fi(D, 0yz) = ArcCosine(S / (length(P) * length(D))  = 
   ArcCosine((dy*dy + dz*dz) / Sqrt((dx*dx + dy*dy + dz*dz)*(dy*dy + dz*dz)))= 
   ArcCosine(Sqrt((dy*dy + dz*dz) /(dx*dx + dy*dy + dz*dz))))= 
   ArcCosine(length(P) / length(D))

您可以为OXY和OXZ平面建立类似的公式

请提供数学方程或VBA函数以获得角度。
-因此不是研究服务。学习一些基本的向量数学/线性代数,并尝试自己编写代码,然后再提问。谢谢@meowgoesthedog。这很简单。Cos(theta)=(U.V)/(U | U | | V |)它确实非常简单——事实上,简单到可以很容易地在谷歌上搜索到。