Calcul de la distance minimale entre deux bâtiments en 2D en VBA

Bonjour,

je voudrais calculer en 2D et en VBA, la distance minimale entre deux bâtiments disposant de coordonnées (x,y) pour chaque coin.

je joins un fichier avec les données.

merci

bonjour guidi et bienvenu,

il suffit d'avoir les coordonnées des (4 ou plus) coins des 2 bâtiments par exemple dans le sens des aiguilles d'une montre.

Ils sont où ?

bonjour,

une proposition (non optimisée)

crosspost https://www.developpez.net/forums/d2186479/logiciels/microsoft-office/excel/macros-vba-excel/distanc...

Guidi, si j'avais vu le crosspost avant je ne serais pas cassé la tête pour rien, c'est pas sympa de ne pas le signaler que vous poster dans X forums

Bonjour

image

Sauf si je n'ai pas compris le problème, avec ces 2 bâtiments, vous considérez une distance de 15 m (arrondi sup de racine de 200), alors qu'ils sont à 10 m l'un de l'autre

Autre exemple

Ces 2 bâtiments se touchent et vous les considérez à une unité de distance

image

Sinon, même remarque de Nain Porte koi sur le cross posting

Stéphane

re,

avec uniquement les coordonnées des coins des 2 bâtiments dans le sens de l'horloge

12distance2.xlsb (33.76 Ko)

Bonjour à tous et désolé d'avoir posté également dans X Forum

je vous remercie tous de votre aide.

les formules avec LET et TRANSPOSE, je ne maîtrise pas trop ces formules.

Hello,

en une seule formule ? :

distancebatiments

Ami calmant, J.P

comme la question était "en VBA", sans formules, une fonction personnalisée avec uniquement les coordonnées de 2 polygones (celles du dernier coin sont égales à celles du premier !!!!)

Solution instantanée.

Edit : 11:50 = autre fichier

11distance2.xlsb (48.47 Ko)

Hello,

@jurassic pork, tu la sort d'où cette fonction MATRICEDIST ?

@jurassic pork, tu la sort d'où cette fonction MATRICEDIST ?

D'une extension .xll

Bonjour à tous,

Une proposition alternative pour illustrer une résolution en mode "OOP". Usage IA pour la partie interfacage avec XL (lecture/écriture dans le classeur).

14book1-copie.xlsm (34.94 Ko)

@jurassic pork, tu la sort d'où cette fonction MATRICEDIST ?

D'une extension .xll

Ah ben si les fonctions d'un .xll sont en majuscules comme les fonctions natives je vais souvent reposer la question

Merci

re,

j'ai rélu la question et maintenant je la comprends.

Une solution en VBA en 0.5 sec.

Salut à tous,

Dans le fichier de BsAlv j'ai rajouté un point dont le X et le Y sont identiques et représente le maximum de tous les X et Y présents sur le graphique. Cela permet d'avoir la même échelle dans les 2 directions.

Bravo encore pour ce fichier que je garde précieusement

Merci

@MoiToukoul,

je ne vois pas votre fichier, mais "for the fun", j'ai ajouté un graphique avec les coins des 149 bâtiments

Salut,

J’en était resté à "Distance2", ce fichier m'est très utile, et je lui est rajouté un point au X et Y identiques à la coordonnée la plus grande pour avoir les axes X, Y à la même échelle.

Je vais en profiter pour ausculter votre dernier fichier qui me semble top.

Super boulot

bonjour le fil,

j'en profite pour améliorer mon fichier précédent. On calcule aussi la distance avec le perpendiculaire d'un point d'un bâtiment sur un bord de l'autre bâtiment.

149 bâtiment = environ 11.000 combinaisons, 500 ms pour la distance minimale entre les coins et 1.7 s avec les perpendiculaires. C'était le cas pour environ 600 combinaisons et l'amélioration était max 16 (donc marginal).

Tabel2 montre ces 11.000 combinaisons et les coordonnées de la meilleur distance.

Attention : si un des bâtiments est complètement à l'intérieur de l'autre sans contact avec l'extérieur, la distance n'est pas 0. Cela dépend du point de vue si cela est une erreur ou pas.

PS. la cellule C118 était probablement fausse.

Rechercher des sujets similaires à "calcul distance minimale entre deux batiments vba"