【问题标题】:compute slope of a 3D plane计算 3D 平面的斜率
【发布时间】:2011-02-05 03:21:21
【问题描述】:

我有一组 (X,Y,Z) 点代表不同的平面特征。我需要使用法线向量计算每个平面的斜率。 我认为斜率是由每个平面的法线向量(NV)与假想水平面的 NV 之间的角度给出的。假设,我使用的平面方程是; Ax+By+c=z。然后我猜我的飞机的法线向量是(a,b,-1)。对于我的平面方程,假想水平面的方程应该是什么?我认为水平面方程是z = c。因此,法线向量为 (0,0,-1)。它是否正确? 那么我的平面和水平面之间的角度是; cos^(-1)⁡〖(a.0+b.0+(-1).1)/(√(〖a1〗^2+〖b1〗^2+〖c1〗^2).√(0 ^2+0^2+1^2 ))

正确吗?请给我评论并给我正确的方程式。

【问题讨论】:

    标签: c++ geometry 3d computational-geometry


    【解决方案1】:

    是的,这基本上是正确的,但是您在将表达式替换为角度时犯了一些小错误。角度为 cos^{-1} [(a * 0 + b * 0 + (-1) * (-1) / (√{a^2 + b^2 + (-1)^2} * √{ 0^2+0^2+(-1)^2}] = cos^{-1}(1/√{a^2 + b^2 + 1})

    【讨论】:

    • 感谢您的回复。希望进一步澄清一些事情。我怎么知道我的法线向量是向外还是向内。这种向内、向外的面向与两个法向量相关。我知道,+ 或 - 会得出结果。那么,斜率可能小于 90 或更大。所以,请帮助我得到确切的情况。
    • 您发布的内容没有“向外”或“向内”(到目前为止)——这些术语只有在您处理身体表面时才有意义。如果您想在不参考任何物体的情况下计算平面特征的斜率,那么根据定义,它们的法线向量与垂直向量形成的 0 和 pi/2 (90°) 之间的正角,在我的回答中,您会自动得到这样的角度是因为余弦总是正的。只有两个向量的相对方向很重要;您可以将它们都反转,这样它们的 z 分量都为 +1,并获得相同的点积和余弦。
    猜你喜欢
    • 2014-07-08
    • 1970-01-01
    • 2012-03-02
    • 2018-07-28
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2013-03-04
    相关资源
    最近更新 更多