Вам необходим неколлинеарный вектор для построения необходимой точки.
Существует подход для получения перпендикулярного вектора:
make vector d = (x2-x1, y2-y1, z2-z1)
choose component with the largest magnitude (say dy)
and component with the second magnitude (say dx)
make the third (smallest) component zero
exchange two larger components and negate the largest one
p = (-dy, dx, 0)
Он перпендикулярен первому (обратите внимание, что скалярное произведение равно нулю p.dot.d==0
)
Добавьте этот вектор к любой конечной точке, чтобы получить неколлинеарную точку.