python - 给定平面法线,沿平面移动顶点

标签 python numpy math 3d

我有一个 3D 矢量和一个 3D 面法线。如何使用 Python(使用或不使用 numpy)沿给定面法线移动该向量?

理想情况下,我会使用带有xy的面法线构建一个矩阵,并将其乘以原始向量或类似的东西,但我可以'我不知道如何构建它。距离线性代数已经有一段时间了。

编辑:

感谢您指出我的问题太宽泛。

我的目标是获得一个新点,即沿法线定义的面距原始点 xy 单位。

示例:如果点为 (0,0,0) 并且法线为 (0, 0, 1),则结果将为 ( x,y,0)

示例 2:如果点为 (1, 0, 0),法线为 (0, 1, 0),则结果将为 (1+x,0,y)

我需要推断它适用于任何正常xy

最佳答案

The projection 向量到由其法线定义的平面是:

def projection(vector, normal):
    return vector - vector.dot(normal) * normal

大概这意味着您想要类似的东西:

x + projection(y, normal)

关于python - 给定平面法线,沿平面移动顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978948/

相关文章:

javascript - Math.floor(Math.random() * 5 + 1) 的操作顺序?

python - 如何在不同目录中从站点包导入模块?

python - Numpy 重新排列的元组列表

python - 检查列表中的值是否位于 numpy 数组的相应行中

python - 从字典列表到 np 数组数组,反之亦然

math - 构造简单的非对称 RSA key 对的示例

python - 为什么我的指数衰减不起作用?

python - Raspberry Pyusb 使资源繁忙

python - 在 2018 年,secrets 模块的默认熵是否仍然足够好?

python格式问题,尝试打印但出现问题