投影在空间中的线角

时间:2017-07-04 11:59:54

标签: matlab math geometry projection angle

行首(黄色),轴位于[xc,yc,zc]

行尾为[xp,yp,zc]

abc是线在空间中产生的角度。

我需要的是线的投影(黑线)在xy,yz和xz平面上创建的角度。

  • A_y_to_z:在xz平面上从y轴到z轴的投影线角度。
  • A_z_to_x:zx平面上z到x轴的角度。
  • A_x_to_y:xy平面上x到y轴的角度。

enter image description here

Matlab

上编写代码

1 个答案:

答案 0 :(得分:1)

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

  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. 最后通过取b = 90 - a获得与平面的角度(假设单位为度 - NB大多数数学库函数使用弧度)

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

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