Я пытаюсь взять массив трехмерных точек и плоскость и разделить точки на 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);
Я беру поперечное произведение этих двух векторов, чтобы получить нормальный вектор.
Затем я просматриваю свой массив точек и превращаю их в векторы и вычисляю точечный продукт на нормальный.
Затем я использую точечный продукт, чтобы определить сторону, в которой находится точка.
Звучит ли это так, как будто это сработает?