Bonjour tout le monde!
J'ai un cube dans l'espace. A partir de n'importe quel point de l'espace, je souhaiterais obtenir le point associé à une des faces du cube.
Pour cela je pensais faire une projection orthogonale d'un point 3D sur un plan (une des faces de mon cube) puis projeter le point obtenu dans la face associé à mon plan.
Voici une image résumant (ou tout essaye de rendre compréhensible ce que j'essaye d'expliquer):
J'ai réussi à obtenir l'équation du plan à partir de trois points d'une des faces:
Je pense que le calcul de l'équation du plan est correct mais je ne comprends pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public static void getEquationPlane(Vertex3D p1, Vertex3D p2, Vertex3D p3, DoubleBuffer equationPlane) { //v0 est le vecteur P1P2 Vector3D v0 = new Vector3D(p2.getX()-p1.getX(), p2.getY()-p1.getY(), p2.getZ()-p1.getZ()); //v1 est le vecteur P2P3 Vector3D v1 = new Vector3D(p3.getX()-p2.getX(), p3.getY()-p2.getY(), p3.getZ()-p2.getZ()); Vector3D n = new Vector3D(v0); n.cross(v1); double A = n.getX(), B = n.getY(), C = n.getZ(); double D = - (A*p1.getX() + B*p1.getY() + C*p1.getZ()); //L'équation du plan : Ax + By + Cz + D = 0; equationPlane.put(A); equationPlane.put(B); equationPlane.put(C); equationPlane.put(D); }
1> comment faire pour calculer le projeté orthogonal de n'importe quel points de l'espace?
2> comment faire une translation du projeté vers la face du cube (si et seulement si le projeté n'est pas déjà dans la face).
3> Est-il possible de passer du point A (sur la figure) au point A" en un seul système d'équation (matrice de projection + translation?)?
Merci d'avance.
Partager