Re[3]: проецирование 3D в 2D
От: xmlx  
Дата: 22.09.05 04:59
Оценка:
Здравствуйте, 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);

или у меня алгоритм что-то искажает... но выдает правдоподобную картинку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.