Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
- Accueil
- » Programmation
- » Tracer une ligne de points tel que ...
- » Répondre
Répondre
Résumé de la discussion (messages les plus récents en premier)
- Wiwaxia
- 03-03-2024 20:36:43
@MJeanne
Merci pour les explications, qui donnent du sens au code !
- MJeanne
- 03-03-2024 19:42:40
Ca peut paraitre magique mais :
Avec :
const PointA = {
latitude: 47.28472371807028,
longitude: 5.029664993763175,
};
const PointB = {
latitude: 47.28978437319045,
longitude: 5.0178937238946935,
};
Si on crée une variable toto en Javascript :
const toto = turf.distance([PointA.longitude, PointA.latitude], [PointB.longitude, PointB.latitude], {units: 'meters'});
On appelle une fonction "distance" (sur notre planète terre) entre deux points ici PointA et PointB
grâce à leur longitude et latitude passées dans la fonction.
En gros toto aura : 1051.1673828014032
Le console.log c'est pour afficher les valeurs de variables.
- MJeanne
- 03-03-2024 19:27:15
Bonsoir Wiwaxia.
Je vais faire une image voir ci dessous, pour rendre plus clair :
La librairie Turf calcule vraiment bien les distances en se basant sur la terre etc (pas qq chose de plat).
AB vaut donc 1051.1673828014032 mètres
BC vaut donc 932.9129563028044 mètres
A->B->C fait 1984.0803391042077 mètres
Donc oui d'autres alternatives à Point B existent. Pour que A->B->C fasse 1984.0803391042077 mètres
C'est cette partie géométrie qui m'échappe (et même pour les IA)
- Wiwaxia
- 03-03-2024 13:22:59
Bonjour,
Pourrais-tu traduire en pseudo-code les six dernières lignes de ton programme ? Il est pour un béotien comme moi totalement inintelligible ...
Je suppose que (AB) et (BC) représentent les longueurs des portions de géodésiques joignant les points (A, B) et (C) situés à la surface de la Terre, en admettant que cette dernière soit sphérique ... Quel est son rayon ?
L'énoncé de ton problème, dont les données ne comportent que des angles, est incomplet: il y manque une distance, le rayon de la planète ...
Il appelle par ailleurs deux remarques:
a) la précision grandiose des données et des premiers résultats me laisse un peu perplexe ... Je sais bien que la géolocalisation réalise des prodiges, mais de là à fournir des résultats comportant 16 ou 17 chiffres significatifs ! Une incertitude de 1 cm rapportée au rayon terrestre (6371 km) correspond au rapport 1.6E-9, donc à une précision de seulement 9 chiffres significatifs ...
b) les distances envisagées, de l'ordre du kilomètre, sont très inférieures au rayon terrestre, ce qui permet de se ramener dans le plan tangent au point (A), et de faire des calculs beaucoup plus simples au prix d'une faible approximation (~ 10-8).
Le lieu des points cherché est une ellipse de foyers (A) et (C), puisque la condition imposée (pour autant qu'on puisse la comprendre) est
AM + MC = Cte ,
plus précisément celle qui passe par le point (B): Cte = AB + BC .
- MJeanne
- 02-03-2024 16:08:16
Bonjour,
MJeanne a écrit :Je suis actuellement confrontée à une prise de tête heu ... problème JavaScript qui implique T
Je regarde ton problème avec curiosité, mon ambition se bornant à saluer ton sens de l'humour ..
;-)
Le plus drôle c'est que les IA ne savent même pas comment appeler ce genre de résolution.
Qq chose me dit, que c'est pourtant pas totalement sorcier.
- Zebulor
- 02-03-2024 13:22:14
Bonjour,
Je suis actuellement confrontée à une prise de tête heu ... problème JavaScript qui implique T
Je regarde ton problème avec curiosité, mon ambition se bornant à saluer ton sens de l'humour ..
- MJeanne
- 02-03-2024 12:16:48
Bonne chance :D
- MJeanne
- 02-03-2024 12:14:42
Bonjour à tous,
Je suis actuellement confrontée à une prise de tête heu ... problème JavaScript qui implique Turf (librairie Javascript).
Mais peut importe, c'est un détail.
Je serais reconnaissante de toute aide ou idée que vous pourriez avoir. Nos chères AI sont incapable de les résoudre (et s'en excuse poliment). Quant à moi j'ai raté qq classes apparemment ;-)
Imaginez ceci :
import * as turf from '@turf/turf';
const PointA = {
latitude: 47.28472371807028,
longitude: 5.029664993763175,
};
const PointB = {
latitude: 47.28978437319045,
longitude: 5.0178937238946935,
};
const PointC = {
latitude: 47.293015382148276,
longitude: 5.029309204206204,
};
const AB = turf.distance([PointA.longitude, PointA.latitude], [PointB.longitude, PointB.latitude], {units: 'meters'});
const BC = turf.distance([PointB.longitude, PointB.latitude], [PointC.longitude, PointC.latitude], {units: 'meters'});
console.log("AB", AB); // AB vaut donc 1051.1673828014032 mètres
console.log("BC", BC); // BC vaut donc 932.9129563028044 mètres
console.log("So A->B->C", AB+BC); // donc logique 1984.0803391042077 mètres
Pour le moment c'est dans mes cordes.
En parlant de corde, est-il possible de tracer une ligne (...) avec des points supplémentaires (donc comme PointB), tout en veillant à ce que A->nouveauB->C donne 1984.0803391042077 mètres ? voire proche ;-)
Ca devrait ressembler à un cercle, une éclipse ? plus ou moins tassée.
Merci pour votre aide