BigDan
05.03.2007, 22:25
Для вращения юзаю эту формулу:
//OX-rotation
X = x;
Y = y*Math.cos(ANGLE_X)-z*Math.sin(ANGLE_X); Z = y*Math.sin(ANGLE_X)+z*Math.cos(ANGLE_X);
x = X;
y = Y;
z = Z;
//OY-rotation
X = x*Math.cos(ANGLE_Y)+z*Math.sin(ANGLE_Y);
Y = y;
Z = -x*Math.sin(ANGLE_Y)+z*Math.cos(ANGLE_Y);
x = X;
y = Y;
z = Z;
//OZ-rotation
X = x*Math.cos(ANGLE_Z)-y*Math.sin(ANGLE_Z);
Y = x*Math.sin(ANGLE_Z)+y*Math.cos(ANGLE_Z);
Z = z;
x = X;
y = Y;
z = Z;
Потом вращяю фигуру сначала на (0.1,0.2,0.3) потом на (-0.1,-0.2,-0.3). По идеи фигура должна вернутся в начальное положение, но этого не происходит. Что подскажите?
//OX-rotation
X = x;
Y = y*Math.cos(ANGLE_X)-z*Math.sin(ANGLE_X); Z = y*Math.sin(ANGLE_X)+z*Math.cos(ANGLE_X);
x = X;
y = Y;
z = Z;
//OY-rotation
X = x*Math.cos(ANGLE_Y)+z*Math.sin(ANGLE_Y);
Y = y;
Z = -x*Math.sin(ANGLE_Y)+z*Math.cos(ANGLE_Y);
x = X;
y = Y;
z = Z;
//OZ-rotation
X = x*Math.cos(ANGLE_Z)-y*Math.sin(ANGLE_Z);
Y = x*Math.sin(ANGLE_Z)+y*Math.cos(ANGLE_Z);
Z = z;
x = X;
y = Y;
z = Z;
Потом вращяю фигуру сначала на (0.1,0.2,0.3) потом на (-0.1,-0.2,-0.3). По идеи фигура должна вернутся в начальное положение, но этого не происходит. Что подскажите?