Сорри, забыл добавить точку центра координат плоскости P
double x_0,y_0,z_0; // координаты точки, проецируемой на плоскость P
double s_x,s_y,s_z; // координаты точки вектора N (точка S)
double X_x,X_y,X_z; // направление оси X на плоскости P (ед. вектор)
double Y_x,Y_y,Y_z; // направление оси Y на плоскости P (ед. вектор)
double Xp,Yp; // координаты на плоскости P
void 3Dto2D() {
Xp = (x_0 - s_x) * X_x + (y_0 - s_y) * X_y + (z_0 - s_z) * X_z;
Yp = (x_0 - s_x) * Y_x + (y_0 - s_y) * Y_y + (z_0 - s_z) * Y_z;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>