CALCUL DE LA DISTANCE MINIMALE ENTRE UN POINT ET UNE DROITE DANS L'ESPACE - COOR

Messages postés
55
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
17 août 2006
- - Dernière réponse : lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
- 30 janv. 2012 à 22:21
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/35053-calcul-de-la-distance-minimale-entre-un-point-et-une-droite-dans-l-espace-coordonnees-du-point-le-plus-proche-sur-la-droite

fireuo
Messages postés
55
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
17 août 2006
-
Jolie mais j'aimerait savoir ou que je pourait trouver toute les formules (bien expliquer) pour ce qui concerne end 3d : La distance entre un point et une droite (comme toi), distance entre 2 points, longeur d'une droite, etc.. (si y en a d'autre)

Merci bien

EN passant 10 / 10 ;)
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Salut.
Voilà la méthode de calcul de la distance d'un point à un plan (dans l'espace).

Il faut un plan carctérisé par:
-son équation ax+by+cz+d=0
-un point A(X,Y,Z)

si le plan est caractérisé par 3 points, alors

1) on a ces 3 points :
A(q,s,m)
B(f,g,h)
C(j,i,l)

2) on vérifie que les 3 points définissent bien 1 plan, en démontrant que les vecteurs AB et BC ne sont pas colinéaires.
Donc si il existe k (réel) tel que (f-q)=k(j-f) and (g-s)=k(i-g) and (h-m)=k(l-h) alors pas de plan ==> exit problème

3) on cherche le veteur N normal au plan, tel que N.AB=0 and N.BC=0 (produits scalaires). On résoud ce système de deux équations, et on obtient le vecteur N de composantes (a,b,c), coefficients de l'équation du plan. On calcule d en sachant que le points A (ou B ou C) appartient au plan, donc qu'il vérifie aq+bs+cm+d=0 ==> on en déduit d

4) la distance est finalement donnée par
D=abs(aX+bY+cZ+d)/sqr(a*a+b*b+c*c)

Très simple, donc. Mais quand même bien plus long et intéressant que de calculer la distance entre 1 droite et 1 point.

Donc tu devrais mettre à jour ton prog et proposer d'autres calculs possibles, parce que là c'est très léger...

Ah oui, au fait, ta déclaration de variables est mauvaise.
Dim d1, d2, d3, m2, xh, yh, zh, dh As Double
ne déclare que dn en Double et tout le reste en Variant
A revoir donc...

@+
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Salut.
Faire un programme qui permet de faire plusieurs types de calculs
dans l'Espace avec par exemple des points, des droites, des plans
des cônes, des sphères etc ... c'est intéressant, mais il faut d'abord mettre au point les différents programmes spécifiques avant de les regrouper et il faut prendre le temps
pour cela
Je retiens ta méthode pour le calcul de la distance d'un point à un plan
Merci de tes remarques
violent_ken
Messages postés
1822
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
-
Mais de rien ! Les commentaires sont faits pour çà.
Bonne prog! @+
brunomoraut
Messages postés
16
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
17 mai 2011
-
Très bon exemple d'application des mathématiques. Pour ma part (je fais de la 3D pour m'amuser) je prends le temps de faire un document qui explique la résolution mathématiques employée.
Pour répondre à la remarque du "programme qui fait tout", pour les résolutions dans l'espace, les gros logiciels utilisent le calcul matriciel.
Il ont donc écrit des routines qui calcules des opérations sur les matrices (additions, produits, déterminant et que sais-je), et si on avance en mathématique, on s'apperçoit que (par exemple) un déplacement d'un point, c'est tous simplement l'addition de la matrice de ses coordonnée, avec la matrice du (vecteur) déplacement.
On trouve sur les sites des grandes écoles, ces résolutions mathématiques, mais c'est dommage que des exemples de petits programmes comme tu l'as fait, ne leur soient pas associées.
Cependant, ce type de programmation à un inconvénient, car on fait beaucoup d'appels à des routines, ce qui ralenti les programmes, et aussi on utilise une routines qui fait un calcul complet, alors que la solution est plus simple, et n'a pas besoin d'utiliser toutes les boucles (ex: déplacement sur l'axe X, il suffit d'ajouter le déplacement à la coordonnées X...)
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Il est vrai que le calcul matriciel est la base de toute application
3D et apporte des solutions plus simples.
Pour ma part je n'ai pas écarté l'emploi de ce type de calcul.
Mais j'aime bien revenir aux sources en utilisant d'abord le calcul vectoriel et avec une démarche personnelle.
Avant tout programme j'écris des documents explicatifs que je vais intégrer au zip bientôt pour mieux voir la méthode employée.
Tes commentaires sont interressants.
Merci.
brunomoraut
Messages postés
16
Date d'inscription
jeudi 10 novembre 2005
Statut
Membre
Dernière intervention
17 mai 2011
-
Je suis d'accord pour les documents explicatifs, celà parait une perte de temps au départ, mais pour des problèmes de 3D assez difficiles, j'ai passé une semaine à écrire les démonstrations mathématiques et les algorhytmes, mais après, en 2h (le temps de la saisir) la routine tournait sans bug... alors que pour la même taille de routine, j'avais mis le double ou le triple de temps en ne fesant pas ce travail préalable.
Et puis celà facilite la création de la notice du logiciel...
evignola4540
Messages postés
2
Date d'inscription
jeudi 6 avril 2006
Statut
Membre
Dernière intervention
7 avril 2006
-
comment faire pour lire se programme? je doit admettre que je suis un newb ....
evignola4540
Messages postés
2
Date d'inscription
jeudi 6 avril 2006
Statut
Membre
Dernière intervention
7 avril 2006
-
comment faire pour lire se programme? je doit admettre que je suis un newb ....
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Bonjour.

Si tu as téléchargé le ZIP (voir un peu plus haut sur cette page),
et si tu l'as décompréssé avec Winzip ou Winrar (par exemple),
Il te faut encore avoir Visual Basic 5 ou 6.
Sinon, essaie de trouver une version d'evaluation de VB mais je pense qu'elle n'est pas gratuite.
Autrement il existe des livres avec des CD permettant de travailler avec VB.
A+
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Bonjour.
Voici l'adresse où l'on peut télécharger la version
installable du programme "Distance point droite":

http://jolopop31.free.fr/JP/VB6/Distance point droite/Point-droite.rar

Extraire les fichiers du .rar
Il faut ensuite lancer l'installation par le setup.exe.
Puis quand l'installation est terminée,
Faire: Démarrer ... Tous les programmes ... projet1 ... projet1

A plus
JP
lexsty
Messages postés
173
Date d'inscription
samedi 10 décembre 2005
Statut
Membre
Dernière intervention
18 juin 2017
-
Bonjour, suite à une remarque de Renfield :
Voici l'adresse où l'on peut télécharger la version
installable du programme "Distance point droite":

http://jolopop31.free.fr/JP/VB6/Distance point droite/Point-droite.rar

Extraire les fichiers du .rar
Il faut ensuite lancer l'installation par le setup.exe.
Puis quand l'installation est terminée,
Faire: Démarrer ... Tous les programmes ... Dist point droite ... Distance point droite

A plus