return *this;
}
Matrix3D& Matrix3D :: operator *= ( const Matrix3D& a ) {
Matrix3D c (*this );
x[0][0]=c.x[0][0]*a.x[0][0]+c.x[0][1]*a.x[1][0]+
c.x[0][2]*a.x[2][0]; x[0][1]=c.x[0][0]*a.x[0][1]+c.x[0][1]*a.x[1][1]+
c.x[0][2ra.x[2][1]; x[0][2]=c.x[0][0]*a.x[0][2]+c.x[0][1]*a.x[1][2]+
c.x[0][2]*a.x[2][2]; x[1 ][0]=c.x[1 ][0]*a.x[0][0]+c.x[1 ][1 ]*a.x[1 ][0]+
c.x[1][2]*a.x[2][0]; x[1][1]=c.x[1][0]*a.x[0][1]+c.x[1][1]*a.x[1][1]+
c.x[1][2ra.x[2][1]; x[1][2]=c.x[1][0]*a.x[0][2]+c.x[1][1]*a.x[1][2]+
c.x[1][2]*a.x[2][2]; x[2][0]=c.x[2][0]*a.x[0][0]+c.x[2][1]*a.x[1][0]+
c.x[2][2]*a.x[2][0]; x[2][1 ]=c.x[2][0]*a.x[0][1 ]+c.x[2][1 ]*a.x[1 ][1 ]+
c.x[2][2ra.x[2][1]; x[2][2]=c.x[2][0]*a.x[0][2]+c.x[2][1]*a.x[1][2]+
c.x[2][2]*a.x[2][2];
return *this;
}
Matrix3D& Matrix3D :: operator *= (float a ) {
x [0][0] *= a; x[0][1]*=a; x [0][2] *= a; x[1][0] *=a; x[1][1]*=a; x[1][2]*=a;

Компьютерная графика. Полигональные модели х [2][0] *= а; х[2][1]*=а; х [2][2] *= а;

return *this;
}
Matrix3D& Matrix3D :: operator/= (float a ) {
x [0][0] /= a; x[0][1]/=a; x [0][2] /= a; x[1][0] /=a; x[1][1]/=a; x[1][2] /= a; x [2][0] /= a; x[2][1]/=a; x [2][2] /= a;
return *this;
};
void Matrix3D :: invert () {
float det; Matrix3D a;

// compute a determinant det = x [0][0]*(x [1][1]*x [2][2]-x [1][2]*x [2][1]) -x [0][1]*(x [1][0]*x [2][2]-x [1][2]*x ЩО]) + x [0][2]*(x [1][0]*x [2][1]-x [1][1]*x [2][0]);

a.x [0][0] = (x [1][1]*x [2][2]-x [1][2]*x [2][1]) / det; a.x [0][1] = (x [0][2]*x [2][1]-x [0][1]*x [2][2]) / det; a.x [0][2] = (x [0][1]*x [1][2]-x [0][2]*x [1][1]) / det; a.x [1][0] = (x [1][2]*x [2][0]-x [1][0]*x [2][2]) / det; a.x [1][1] = (x [0][0]*x [2][2]-x [0][2]*x [2][0]) / det; a.x [1][2] = (x [0][2]*x [1][0]-x [0][0]*x [1][2]) / det; a.x [2][0] = (x [1][0]*x [2][1]-x [1][1]*x [2][0]) / det; a.x [2][1] = (x [0][1]*x [2][0]-x [0][0]*x [2][1]) / det; a.x [2][2] = (x [0][0]*x [1][1]-x [0][1]*x [1][0]) / det;
*this = a;
}
void Matrix3D :: transpose () {
Matrix3D a;
a.x [0][0] = x [0][0J; a.x[0][1] = x[1][0]; a.x [0][2] = x [2][0]; a.x [1][0] = x[0][1]; a.x[1][1] = x[1][1]; a.x[1][2] = x[2][1]; a.x [2][0] = x [0][2]; a.x [2][1] = x[1][2];

⇐ Предыдущая| |Следующая ⇒