public double ProdScalaire(iVecteur vec)
 {
     return((X * vec.X) + (Y * vec.Y) + (Z * vec.Z));
 }
 public iPointOnSpline(double x, double y, double z, double dist, double param, iVecteur derivee1, iVecteur derivee2)
 {
     X = x; Y = y; Z = z; Distance = dist; Param = param; Derivee1 = derivee1; Derivee2 = derivee2;
 }
 public double Angle(iVecteur vec)
 {
     return(Math.Acos(ProdScalaire(vec) / (vec.Longueur * Longueur)) * 180.0 / Math.PI);
 }
 public iPoint DeplacerC(iVecteur v)
 {
     return(new iPoint(X += v.X, Y += v.Y, Z += v.Z));
 }
 public void Deplacer(iVecteur v)
 {
     X += v.X; Y += v.Y; Z += v.Z;
 }
            public double DeviationP3()
            {
                iVecteur vP3 = new iVecteur(Centre.X - P3.X, Centre.Y - P3.Y, Centre.Z - P3.Z);

                return(Math.Abs(vP3.Angle(P3.Derivee1) - 90));
            }
            public double DeviationP1()
            {
                iVecteur vP1 = new iVecteur(Centre.X - P1.X, Centre.Y - P1.Y, Centre.Z - P1.Z);

                return(Math.Abs(vP1.Angle(P1.Derivee1) - 90));
            }
 public static MathVector MathVector(this iVecteur v)
 {
     return(Mu.CreateVector(v.X, v.Y, v.Z));
 }