public C3DSize Transforme(C3DSize size) { CVecteur3D vecteur = new CVecteur3D(size.With, size.Height, size.Depth, 0.0); vecteur = this * vecteur; return(new C3DSize((int)Math.Round(vecteur[0]), (int)Math.Round(vecteur[1]), (int)Math.Round(vecteur[2]))); }
public C3DPoint Transforme(C3DPoint point) { CVecteur3D vecteur = new CVecteur3D(point.X, point.Y, point.Z, 1.0); vecteur = this * vecteur; return(new C3DPoint((int)vecteur[0], (int)vecteur[1], (int)vecteur[2])); }
public static CVecteur3D operator *(CTransformation3D matrice, CVecteur3D vecteur) { CVecteur3D newVecteur = new CVecteur3D(0, 0, 0, 0); for (int nLigne = 0; nLigne < 4; nLigne++) { double fVal = 0; for (int nTmp = 0; nTmp < 4; nTmp++) { fVal += matrice[nLigne, nTmp] * vecteur[nTmp]; } newVecteur[nLigne] = fVal; } return(newVecteur); }