示例#1
0
 public virtual void setVector(Vecteur v)
 {
     this.x = v.x;
     this.y = v.y;
     this.z = v.z;
     this.w = v.w;
 }
示例#2
0
        public virtual double distance(Vecteur v)
        {
            Vecteur res = this;

            res.minus(v);
            return(res.length());
        }
示例#3
0
 public Matrice(Vecteur x, Vecteur y, Vecteur z)
 {
     this.l1 = x;
     this.l2 = y;
     this.l3 = z;
     this.l4 = new Vecteur(0, 0, 0, 1);
 }
示例#4
0
 public Matrice(Vecteur x, Vecteur y, Vecteur z, Vecteur w)
 {
     this.l1 = x;
     this.l2 = y;
     this.l3 = z;
     this.l4 = w;
 }
示例#5
0
        public virtual Vecteur getNormalisation()
        {
            Vecteur res = new Vecteur();

            res.x = this.x / this.length();
            res.y = this.y / this.length();
            res.z = this.z / this.length();
            return(res);
        }
示例#6
0
 public Matrice(double x11, double x12, double x13,
                double x21, double x22, double x23,
                double x31, double x32, double x33)
 {
     this.l1 = new Vecteur(x11, x12, x13, 1);
     this.l2 = new Vecteur(x21, x22, x23, 1);
     this.l3 = new Vecteur(x31, x32, x33, 1);
     this.l4 = new Vecteur(0, 0, 0, 1);
 }
示例#7
0
 public Matrice(double x11, double x12, double x13, double x14,
                double x21, double x22, double x23, double x24,
                double x31, double x32, double x33, double x34,
                double x41, double x42, double x43, double x44)
 {
     this.l1 = new Vecteur(x11, x12, x13, x14);
     this.l2 = new Vecteur(x21, x22, x23, x24);
     this.l3 = new Vecteur(x31, x32, x33, x34);
     this.l4 = new Vecteur(x41, x42, x43, x44);
 }
示例#8
0
        public Vecteur multiplyVect(Vecteur v)
        {
            Vecteur res = new Vecteur();

            res.x = (this.l1.x * v.x + this.l1.y * v.y + this.l1.z * v.z);
            res.y = (this.l2.x * v.x + this.l2.y * v.y + this.l2.z * v.z);
            res.z = (this.l3.x * v.x + this.l3.y * v.y + this.l3.z * v.z);
            res.w = v.w * this.l4.w;
            return(res);
        }
示例#9
0
        //Fonction surement fausse
        public virtual Matrice43 transpose()
        {
            Matrice43 res   = new Matrice43();
            Vecteur   resL1 = new Vecteur(this.l1.x, this.l2.x, this.l3.x, this.l1.w);          //Création des valeurs transposées à chaque ligne de la matrice
            Vecteur   resL2 = new Vecteur(this.l1.y, this.l2.y, this.l3.y, this.l2.w);
            Vecteur   resL3 = new Vecteur(this.l1.z, this.l2.z, this.l3.z, this.l3.w);

            res.l1 = resL1;
            res.l2 = resL2;
            res.l3 = resL3;
            return(res);
        }
示例#10
0
        public new Matrice44 transpose()
        {
            Matrice44 res   = new Matrice44();
            Vecteur   resL1 = new Vecteur(base.l1.x, base.l2.x, base.l3.x, this.l4.x);          //Création des valeurs transposées à chaque ligne de la matrice
            Vecteur   resL2 = new Vecteur(base.l1.y, base.l2.y, base.l3.y, this.l4.y);
            Vecteur   resL3 = new Vecteur(base.l1.z, base.l2.z, base.l3.z, this.l4.z);
            Vecteur   resL4 = new Vecteur(base.l1.w, base.l2.w, base.l3.w, this.l4.w);

            res.l1 = resL1;
            res.l2 = resL2;
            res.l3 = resL3;
            res.l4 = resL4;
            return(res);
        }
示例#11
0
 public virtual bool egal(Vecteur v)
 {
     return(this.x == v.x && this.y == v.y && this.z == v.z && this.w == v.w);
 }
示例#12
0
 public virtual double getAngleScalar(Vecteur v)
 {
     return(Math.Acos(this.getScalarAlgebr(v)
                      / (this.length() * v.length())
                      ));
 }
示例#13
0
 public virtual double getScalarGeoAngle(Vecteur v, double angle)
 {
     return(this.length() * v.length() * Math.Cos(angle));
 }
示例#14
0
        protected double getCofacteur(int x, int y)
        {
            Vecteur c1 = new Vecteur();
            Vecteur c2 = new Vecteur();

            double[] r1;
            double[] r2;

            switch (x)
            {
            case 1:
                c1 = this.l2;
                c2 = this.l3;
                break;

            case 2:
                c1 = this.l1;
                c2 = this.l3;
                break;

            case 3:
                c1 = this.l1;
                c2 = this.l2;
                break;
            }

            switch (y)
            {
            case 1:
                r1 = new double[2] {
                    c1.y, c1.z
                };
                r2 = new double[2] {
                    c2.y, c2.z
                };
                break;

            case 2:
                r1 = new double[2] {
                    c1.x, c1.z
                };
                r2 = new double[2] {
                    c2.x, c2.z
                };
                break;

            case 3:
                r1 = new double[2] {
                    c1.x, c1.y
                };
                r2 = new double[2] {
                    c2.x, c2.y
                };
                break;

            default:
                throw new System.ArgumentException("Les valeurs de x et y doivent être entre 1 et 3");
            }

            return(Math.Pow(-1, x + y) * ((r1[0] * r2[1]) - (r1[1] * r2[0])));
        }
示例#15
0
 public virtual void add(Vecteur v)
 {
     this.x += v.x;
     this.y += v.y;
     this.z += v.z;
 }
示例#16
0
 public virtual bool sup(Vecteur v)
 {
     return(this.length() > v.length());
 }
示例#17
0
 public virtual void minus(Vecteur v)
 {
     this.x -= v.x;
     this.y -= v.y;
     this.z -= v.z;
 }
示例#18
0
 public virtual double getScalarAlgebr(Vecteur v)
 {
     return(this.x * v.x + this.y * v.y + this.z * v.z);
 }
示例#19
0
 public Matrice33(Vecteur l1, Vecteur l2, Vecteur l3) : base(l1, l2, l3, new Vecteur(0, 0, 0, 1))
 {
 }
示例#20
0
 public Matrice44(Vecteur l1, Vecteur l2, Vecteur l3, Vecteur l4) : base(l1, l2, l3)
 {
     this.l4 = l4;
 }