行首(黄色),轴位于[xc,yc,zc]
行尾为[xp,yp,zc]
。
a
,b
,c
是线在空间中产生的角度。
我需要的是线的投影(黑线)在xy,yz和xz平面上创建的角度。
A_y_to_z
:在xz平面上从y轴到z轴的投影线角度。A_z_to_x
:zx平面上z到x轴的角度。 A_x_to_y
:xy平面上x到y轴的角度。在Matlab
答案 0 :(得分:1)
您可以通过以下方式计算任意平面的投影角度:
获取该行的方向d = (xp - xc, yp - yc, zp - zc)
规范化d
使用飞机的正常计算点积,dot(d, n) = d.x * n.x + d.y * n.y + d.z * n.z
按a = acos(dot(d, n))
最后通过取b = 90 - a
获得与平面的角度(假设单位为度 - NB大多数数学库函数使用弧度)
特殊情况:如果dot(d, n) < 0
,则角度a
将大于90度。在这种情况下,如果您只想要锐角,请b = a - 90
而不是90 - a
。
e.g。要计算与xy平面的角度,请使用n = (0, 0, 1)
,即z轴,这是该平面的法线。