我正在尝试采用一系列3D点和一个平面,并根据它们所在平面的哪一侧将点分成2个阵列.在我进行大量调试之前,我想发布我正在计划做的事情,以确保我对如何做到这一点的理解能够奏效.
基本上我有3分的飞机,我使用(伪代码):
var v1 = new vector(plane.b.x-plane.a.x, plane.b.y-plane.a.y, plane.b.z-plane.a.z);
var v2 = new vector(plane.c.x-plane.a.x, plane.c.y-plane.a.y, plane.c.z-plane.a.z);
Run Code Online (Sandbox Code Playgroud)
我取这两个向量的交叉乘积来得到法向量.
然后我循环遍历我的点阵并将它们转换为向量并根据法线计算点积.
然后我使用点积来确定该点所在的一侧.
这听起来像它会起作用吗?