double n_x,n_y,n_z; //компоненты нормального вектора N к плоскости P (ед. вектор)
double x_0,y_0,z_0; // координаты точки проецируемой на плоскость P
double s_x,s_y,s_z; // координаты точки вектора N (точка S)
double l; // расстояние от проецируемой точки до точки S
double Xp,Yp; // координаты на плоскости P
double Y_x,Y_y,Y_z; // направление оси Y на плоскости P (ед. вектор)
double vx,vy,vz,vl;
double cf_a=0.001;
// проецирование на плоскость
// точка с коорд. (x0,y0,z0) в точку на плоскости (Xp,Yp)
void 3Dto2D()
{l=fabs(n_x*(x_0-s_x)+n_y*(y_0-s_y)+n_z*(z_0-s_z));
vx=x_0-s_x-n_x*l;
vy=y_0-s_y-n_y*l;
vz=z_0-s_z-n_z*l;
vl=sqrt(vx*vx+vy*vy+vz*vz);
vx=vx/(cf_a*l);
vy=vy/(cf_a*l);
vz=vz/(cf_a*l);
Yp=vx*Y_x + vy*Y_y + vz*Y_z;
Xp=vx*(n_y*Y_z-n_z*Y_y)+vy*(n_z*Y_x-n_x*Y_z)+vz*(n_x*Y_y-n_y*Y_x);
};
кто-нибудь знает лучший алгоритм?
мой email
xmlx2005@goolook.ru