Здравствуйте, dsorokin, Вы писали:
D>Сорри, забыл добавить точку центра координат плоскости P
D>D> double x_0,y_0,z_0; // координаты точки, проецируемой на плоскость P
D> double s_x,s_y,s_z; // координаты точки вектора N (точка S)
D> double X_x,X_y,X_z; // направление оси X на плоскости P (ед. вектор)
D> double Y_x,Y_y,Y_z; // направление оси Y на плоскости P (ед. вектор)
D> double Xp,Yp; // координаты на плоскости P
D> void 3Dto2D() {
D> Xp = (x_0 - s_x) * X_x + (y_0 - s_y) * X_y + (z_0 - s_z) * X_z;
D> Yp = (x_0 - s_x) * Y_x + (y_0 - s_y) * Y_y + (z_0 - s_z) * Y_z;
D> }
D>
так это не эквивалентное преобразование! Yp здесь будет меньше на (n_x*l*Y_x+n_y*l*Y_y+n_z*l*Y_z)
моё значение Yp=(x_0-s_x)*Y_x + (y_0-s_y)*Y_y + (z_0-s_z)*Y_z — (n_x*l*Y_x+n_y*l*Y_y+n_z*l*Y_z);
или у меня алгоритм что-то искажает... но выдает правдоподобную картинку...