投影线的角度 Space

Projections' Angle of Line in Space

线的起点(黄色)和轴在 [xc,yc,zc]

行尾在 [xp,yp,zc]

abc 是直线在 space.

中形成的角度

我需要的是线的投影(黑线)在 xy、yz 和 xz 平面上形成的角度。

正在 Matlab

上编写代码

您可以通过以下方式计算到任何平面的投影角度:

  1. 获取直线方向,d = (xp - xc, yp - yc, zp - zc)

  2. 规范化d

  3. 用平面的法线计算点积dot(d, n) = d.x * n.x + d.y * n.y + d.z * n.z

  4. 通过a = acos(dot(d, n))

  5. 计算与法线的角度
  6. 最终通过取 b = 90 - a 获得与平面的角度(假设单位为度 - 注意大多数数学库函数使用弧度)

特例:如果dot(d, n) < 0,则角度a将大于90度。在这种情况下,如果您只想要锐角,请执行 b = a - 90 而不是 90 - a.

例如要计算与 xy 平面的角度,请使用 n = (0, 0, 1),即 z 轴,它是该平面的法线。