将一个向量沿另一个向量的方向投影到平面上的公式

Formula to project a vector onto a plane in the direction of another vector

我的目标是获取 3D 向量 v space,将其投影到提供的具有法线 N 的平面 P 上,但要沿着方向向量 D 进行投影。

也就是说,我想获得一个点在平面上的倾斜(非正交)投影。

我已经查看了 this question,但是使用带有一些简单示例值的公式会导致分母为 0 的输出很差,我觉得我遇到了概念上的错误。

下图描述了问题。

n•p = n•w(因为 pw都在平面上)
= n•(v + kD)
= n•v + kn•D
kn•D = n•(p - v)
k = n•(p - v) / (n•D)
w = v + (n•(p - v) / (n•D))D