一个3D向量的问题

如何将一个向量在某个方向上的分量置为零,只保留与这个方向垂直的平面上的分量。
例如1:消除向量(1,2,3)在(0,-1,0)上的分量,剩下的分量为(1,0,3)
例如2:消除向量(1,1,1)在(0,-2,-2)上的分量,剩下的分量为(1,0,0)
Vec3里面有这种API吗,如何实现这个功能?

有个思路用方向向量作为x轴构建一个空间坐标系P,然后把消除向量变换到P坐标系下再把P下的x轴方向消除,在变换回原坐标系就可以了

这个方法可以吗 v3(5,2,3).multiply3f(1,0,0) ==== v3(5,0,0)

那个方向不一定和坐标轴平行,也许是(0,1,2),也许是(-99,2,4174)

我的方案可以

1 个 API 搞定
https://docs.cocos.com/creator/3.7/api/zh/class/math.Vec3?id=projectOnPlane

2赞

谢谢,以前没用过这个api :rofl: