Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

calcul equitime point (ETP)

  • Initiateur de la discussion Initiateur de la discussion nessus
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nessus

XLDnaute Junior
bonjour
je souhaite convertir un code java en VBA
puis-je avoir votre aide

Intersection of two paths given start points and bearings
This is a rather more complex calculation than most others on this page, but I've been asked for it a number of times. See below for the JavaScript.

Formula:

Code
d12 = 2.asin( √(sin²(Δlat/2) + cos(lat1).cos(lat2).sin²(Δlon/2)) )
φ1 = acos( sin(lat2) − sin(lat1).cos(d12) / sin(d12).cos(lat1) )
φ2 = acos( sin(lat1) − sin(lat2).cos(d12) / sin(d12).cos(lat2) )

if sin(lon2−lon1) > 0
θ12 = φ1, θ21 = 2.π − φ2
else
θ12 = 2.π − φ1, θ21 = φ2

α1 = (θ1 − θ12 + π) % 2.π − π
α2 = (θ21 − θ2 + π) % 2.π − π

α1 = |α1|
α2 = |α2|

α3 = acos( −cos(α1).cos(α2) + sin(α1).sin(α2).cos(d12) )
d13 = atan2( sin(d12).sin(α1).sin(α2), cos(α2)+cos(α1).cos(α3) )
lat3 = asin( sin(lat1).cos(d13) + cos(lat1).sin(d13).cos(θ1) )
Δlon = atan2( sin(θ1).sin(d13).cos(lat1), cos(d13)−sin(lat1).sin(lat3) )
lon3 = (lon1−Δlon+π) % 2.π − π

where
at1, lon1, θ1 : 1st point & bearing
lat2, lon2, θ2 : 2nd point & bearing
lat3, lon3 : intersection point

% = mod, | | = abs

note – if sin(α1)=0 and sin(α2)=0: infinite solutions
if sin(α1).sin(α2) < 0: ambiguous solution
this formulation is not always well-conditioned for meridional or equatorial lines


merci a vous
 
Re : calcul equitime point (ETP)

Bonjour,

Je ne connais rien à Java ni à ton problème mais regarde déjà ceci et vérifie si le résultat est bon.

Pour le moment, il faut entrer les données directement dans le code (accessible par ALT+F11). Ce sont les 6 lignes après ' Entrée des données (en radians). Il faut changer les valeurs après le signe =

On verra ensuite ce que tu veux faire...

Cordialement

EDIT : j'ai oublié, au cas où tu ne saurais pas : lancement en mettant le curseur dans la procédure puis appui sur touche F5
 

Pièces jointes

Dernière édition:
Re : calcul equitime point (ETP)

merci pour ton aide precieuse
en fait je n'arrive pas à adapter ton code pour mes donnée .peut etre faudait il une macro pour la lat3 et une autre pour la lon3

ci joint le fichier sur lequel je travaille,

cordialement
 

Pièces jointes

Re : calcul equitime point (ETP)

Bonjour,

Voici ton fichier adapté. Les coordonnées du point 3 sont données par une fonction matricielle s'appliquant aux deux cellules résultats (à noter que je fais appel à une petite fonction ModCorr qui calcule le modulo car, contrairement à la fonction de feuille de calculs Mod , la fonction VBA Mod arrondit à l'entier)

Reste à savoir si les résultats correspondront à ton attente...🙂

Cordialement
 

Pièces jointes

Re : calcul equitime point (ETP)

merci mecano
effectivement c'est ce que je souhaite calculer, sauf que les valeurs genérées par le code sont erronées
je te retourne le fichier avec un exemple calculé sur web
j'ai epluché le code en vue de deceler une erreur (de conversion deg dec )mais malheureusement mes connaissances VBA sont tres limitées
cordialement
 

Pièces jointes

Re : calcul equitime point (ETP)

J'ai recherché sur le Web et j'ai trouvé une application qui calcule : pas trouvé le même résultat et, encore plus bizarre : si tu inverses les trois données de l'un des mobiles avec les 3 données de l'autre, tu n'obtiens pas le même résultat! C'est comme si le résultat devait changer en intervertissant les noms des pilotes 🙂

Ce lien n'existe plus

Il fait référence à ce que j'ai trouvé ci-dessous...


Ensuite, j'ai trouvé dans ceci (à la rubrique Intersecting radials) :

Ce lien n'existe plus

sensiblement la même chose que ce que tu avais en JAVA. J'ai remis tout d'équerre en fonction de cela mais je ne trouve pas les mêmes résultats pour autant... je vais essayer de chercher encore...mais...

Cordialement
 
Re : calcul equitime point (ETP)

Bonjour,

Je pense que j'ai eu sa peau...

Voici ton application avec un traitement issu d'un fichier d'Ed. Williams que je joins. Dans son fichier, il a traité cela dans une feuille de calculs (feuille Intersections) pour cela il utilise des fonctions ( qui font bien d'autres choses) ; j'ai récupéré celles qui étaient utiles et je les ai mises dans ton appli. Cela fonctionne et je trouve bien les mêmes résultats. Cette fois-ci, si l'on inverse l'ordre des points de départ, on trouve bien les mêmes résultats dans des points inverses (c'est pour cela que j'ai fait afficher les coordonnées des deux points d'intersection).
Dans l'appli de Williams, n'oublie pas de mettre 0 en I5 (format degrés décimaux avec N,S,E ou W devant) et de mettre 2 en A2 et A12 (choix d'un point + cap)

Dans ton dernier fichier, je pense qu'il y a une erreur de sens dans tes coordonnées de résultat : tu indiques longitude W avec un valeur négative...(les longidudes ne sont pas dans le sens trigo.)

Cordialement
 

Pièces jointes

Dernière édition:
Re : calcul equitime point (ETP)

merci pour ton aide
je voudrais juste que tu jettes un coup d'oeil sur la methode ;franchement c'est epoustoufflant.

est ce possible de regrouper tous ces calculs intermediaires dans un seul code partant juste des coordonnes origine destination alternate1 alternate2 pour afficher coordonnees de ETP et eventuellement la distance en NM.

cordialement
 

Pièces jointes

Re : calcul equitime point (ETP)

Bonjour,

Voici le fichier avec une fonction CalculETP.

J'ai modifié des choses dans les fonctions car j'ai eu des soucis (et le problème avec les fonctions c'est quelles sortent du code sans dire où est l'erreur ni même qu'il y en a une!) :

- j'ai passé toutes celles du module 4 en double précision sinon cela pose parfois des problèmes (ne passe plus les arguments par référence).
- j'ai changé le nom de ta fonction Modlon que j'ai passé en ModlonDeg car il y a déjà une fonction de ce nom (j'aurais pu la mettre en Private mais ensuite elle ne serait plus visible dans la liste des fonctions à insérer ; c'est moins pratique en travail sur feuille)
- j'ai remis toutes les fonctions dans le module gccode car il y en avait en double...

Il faudrait rechercher d'où vient le faire qu'il faut inverser le sens de LonETP... je n'ai pas cherché...

Si la partie "Calcul intersection" sur la feuille ne te sert plus, tu peux la supprimer (pas le code 🙂 ); elle n'est pas liée à l'autre partie (comme toutes les cellules intéressantes de la feuille sont nommées, il vaut mieux faire "Supprimer", il est plus facile ensuite de retrouver les noms inutilisés (marqués Ref# dans la liste) pour les supprimer)

Vérifie bien tout. Comme je l'ai déjà dit, je n'y connais rien en navigation aérienne...

Cordialement
 

Pièces jointes

Dernière édition:
Re : calcul equitime point (ETP)

merci mecano pour m'avoir aider à realiser cette usine à gaz
en fait je travaille sur un flight planning et je suis entrain dintegrer ta macro dans le fichier
je te tiens en courant

cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
33
Affichages
3 K
Réponses
11
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…