从一个法向量计算平面的斜率

3
我有一组3D网格点的法向量,并需要计算每个点下方区域的坡度。我不知道如何做到这一点。我不需要X或Y坡度,我只需要问题点的总倾斜度(尽管老实说,我不知道如何从X和Y坡度中单独推导出总坡度,这是我的问题之一)。我看到了这篇文章,但我真的无法理解...这些向量是朝外的。如果有人能帮我解释这个问题,我会非常感激。
1个回答

7
如果您已经有法向量,那么您已经接近成功了。现在您需要的是法向量和一条竖直线(竖直的确切含义取决于您的应用程序)之间的角度(查找点积)。 如果您的法向量实际上是归一化的(长度为1),而竖直方向是(0 0 1),则斜率角的余弦值就是法向量的z坐标。
为了证明这一点:拿起一支笔,让它站在你的桌子上。这就是您桌子的法向量。这个向量和竖直线之间的夹角为零,因为您的桌子完全没有倾斜。如果您将桌子倾斜一定角度,法向量和竖直线之间的角度也会增加同样的角度。

我的向量已经被归一化了。至少应该是这样,假设我之前的步骤没有出错(考虑到我在这项工作中的表现,这也不是确定的,但我们会继续进行)。因此,为了获得斜率角度,我只需要像这样做 - J.Swersey
斜率 = math.cos(vector3.z坐标) - J.Swersey
1
不,z坐标就是余弦值,所以你需要对z取反余弦。 - Christoph
你如何应用它来获取指南针度数中的x/y角度,而不是Z轴上的斜率? - Fra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接