Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
cinquante trois plus quatre-vingt sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

Noha
02-10-2021 15:57:00

J'ai fait une erreur, autant pour moi :)

    double AB[3] = { TriangulationX[1] - TriangulationX[0], TriangulationY[1] - TriangulationY[0], TriangulationZ[1] - TriangulationZ[0] };
    double AC[3] = { TriangulationX[2] - TriangulationX[0], TriangulationY[2] - TriangulationY[0], TriangulationZ[2] - TriangulationZ[0] };


    double N[3] = { (AB[1] * AC[2]) - (AB[2] * AC[1]) , (-AB[0] * AC[2]) + (AB[2] * AC[0]) , (AB[0] * AC[1]) - (AB[1] * AC[0]) };

    double AP[3] = { *PX - TriangulationX[0], *PY - TriangulationY[0], 0 - TriangulationZ[0] };

    *PZ = ((((N[0] * AP[0]) + (N[1] * AP[1])) * -1) / N[2]) - AP[2] ;

Noha
02-10-2021 12:50:25

Re Bonjour,

Sa Maaaaarche!!!!! Merci beaucoup vraiment Paco vous avez été super!! Votre programme est super intéressant je l'ai téléchargé :)

Voici donc mon code final:

    double AX;
    double AY;
    double AZ;

    double BX;
    double BY;
    double BZ;

    double CX;
    double CY;
    double CZ;

    double PX;
    double PY;


    double AB[3] = { BX - AX, BY - AY, BZ - AZ };
    double AC[3] = { CX - AX, CY - AY, CZ - AZ };


    double N[3] = { (AB[1] * AC[2]) - (AB[2] * AC[1]) , (-AB[0] * AC[2]) + (AB[2] * AC[0]) , (AB[0] * AC[1]) - (AB[1] * AC[0]) };

    double AP[3] = { PX - AX, PY - AY, 0 - AZ };

    double Pr[3] = { (N[0] * AP[0]), N[2] };

    double PZ = (-Pr[0] / Pr[1] - AP[2]);

Je suis en train d'écrire un petit programme qui à pour fonction d'ajuster les niveaux Z d'un Gcode (opération d'usinage CNC) en fonction d'une opération de palpage (et donc un nuage de point).
J'ai presque fini grâce à toi :)

Belle continuation

Noé.

Paco del Rey
02-10-2021 07:44:17

Bonjour Noha.

J'ouvre une session Xcas.

Je pose successivement :
A:=[-11.78,-6.01,-2.17]
B:=[7.41,22.26,1.37]
C:=[16.57,-20.2,3.06]
P:=[4.25,-1.68,z]

Puis je calcule les vecteurs:
u:=B-A
--> [19.19,28.27,3.54]
v:=C-A
--> [28.35,-14.19,5.23]
et leur produit vectoriel
n:=cross(u,v)
--> [198.0847,-0.00469999999768,-1073.7606]
On remarque que la deuxième coordonnée est fausse pour des raisons d'arrondi. Il faudrait lire -0.0047.
Pour éviter ces erreurs, il vaudrait mieux travailler avec des entiers, donc multiplier toutes les coordonnées par 100.
w:=P-A
--> [16.03,4.33,z+2.17]
Je calcule le produit scalaire de n par w. C'est aussi le produit mixte de u, v et w, c'est-à-dire au signe près le volume du parallélépipède construit sur A, B, C et P. Ce volume est nul si les quatre points sont coplanaires.
f:=n*w
--> 3175.27739-1073.7606*(z+2.17)
Je cherche z pour que ce produit scalaire/volume f soit nul. C'est une équation du premier degré :
solve(f=0,z)
--> 0.787155803631

Ce qui nous donne $z=0,79$ à $0,01$ près.

Paco.

Noha
02-10-2021 00:36:50

En fait ce que je cherche à faire est de calculer une des trois coordonnées d'un point coplanaire à trois autres point dont je connait les coordonnées, je trouve énormément d'explications pour définir si 4 point sont coplanaires mais aucun détails sur comment calculer une coordonnée manquante.

Noha
01-10-2021 23:57:09

Re-Bonsoir,

Je reviens bredouille... Je crois que je suis un peu largué.. J'ai beau connaitre le Pz réel je ne parviens pas à faire en sorte que mon produit scalaire soit nul, et je ne suis même pas sûr du résultat du vecteur normal que j'ai défini. Je pensais pas que définir Pz soit si compliqué vu tout les nombres connus!
Enfin bon j'y ai déjà passé une bonne partie de la journée il me faudra attendre d'avoir une aide plus accompagnée à mon niveau je crain.

Merci en tout cas pour les tuyaux, je sais au moins un peu plus dans quelle direction chercher maintenant.

Bonne soirée

Noha
01-10-2021 17:54:30

Merci Paco, quel réactivité :) :)

Je me pencherai dessus plus tard quand les petits serons au lit !

Paco del Rey
01-10-2021 17:42:45

Bonjour Noha.

Je te propose la méthode suivante :

1 - Tu calcules les coordonnées des vecteurs $\overrightarrow{AB}$ et $\overrightarrow{AC}$.
2 - Tu détermines un vecteur normal $\vec n = \overrightarrow{AB} \wedge\overrightarrow{AC}$.
3 - Tu détermines $P_Z$ pour que le produit scalaire $\vec n \cdot \overrightarrow{AP}$ soit nul.

Paco.

Noha
01-10-2021 17:27:56

Bonjour,

Je butte depuis ce matin sur un problème, j'espère sincèrement trouver de l'aide ici :)

J'ai trois coordonnées qui forment un triangle, à l'intérieur de ce triangle, sur le même plan, j'ai un point. Je connait X et Y de mon point, je cherche à obtenir Z.

Voici un exemple: Mes trois cotés du triangle A,B et C. Je veux obtenir PZ.

AX = -11.78;           BX = 7.41;          CX = 16.57;
AY = -6.01;             BY = 22.26;         CY = -20.2;
AZ = -2.17;             BZ = 1.37;          CZ = 3.06;


PX = 4.25;
PY = -1.68;
    //PZ = 0.78

J'ai fait une simulation sur en modélisation 3d, il me dit que pour ces données PZ = 0.78. J'ai essayé dix milles solutions et retourné le problème dans tout les sens je n'arrive pas à trouver la formule dont j'ai besoin.... Il faut dire que je suis hyper loin d'être un crack en mathématiques :p

Au plaisir de lire vos suggestions j'espère que sa ne sera pas trop compliqué :)

Pied de page des forums