[Java] Procédé de Gram-Schmidt à partir de trois points

Application du procédé d'orthonormalisation de Gram-Schmidt pour obtenir les vecteurs du repère formé par trois points javax.vecmath.Point3d. Cette méthode retourne les trois vecteurs e1,e2,e3 qui composent le repère. Pour plus de détails, voyez l'article sur Wikipédia : Procédé de Gram-Schmidt.

 

public static Vector3d[] gramSchmidt(Point3d o, Point3d a, Point3d b) {

Vector3d e2 = new Vector3d(a);
e2.scale(-1);
e2.add(b);
e2.normalize();

Vector3d AO = new Vector3d(a);
AO.scale(-1);
AO.add(o);

double PS = AO.dot(e2);
Vector3d AC = new Vector3d(e2);
AC.scale(PS);

Vector3d CO = new Vector3d(AC);
CO.scale(-1);
CO.add(AO);

Vector3d e1 = new Vector3d(CO);
e1.normalize();

Vector3d e3 = new Vector3d();
e3.cross(e1, e2);
e3.normalize();

return new Vector3d[] { e1, e2, e3 };

}

About the Author

Ted Marklor est un web designer, un web developer et un génie de la nature. Transcendant le web depuis bientôt 15 ans, Ted est une source d’inspiration et de conseil pour toute une génération de jeunes programmeurs. Le Web 2.0, c’est lui. Dans la vie, il aime aussi faire des avions en papier, s’inventer des pseudonymes et une vie de winner, et surtout parler de lui à la troisième personne. Ça se fait en ce moment sur les blogs…


Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.