Suite

Comment calculer le centre et le rayon d'un cercle à partir de points


J'ai un ensemble de points lat/long. Je dois calculer le point central et le rayon d'un cercle qui englobera tous les points.

Le système de coordonnées utilisé est la latitude/longitude selon google maps.

J'utilisais auparavant Think-Geo MapSuite où je pouvais appeler une fonction, fournir une collection de points et recevoir une boîte englobante. J'utiliserais le cadre de délimitation pour indiquer à la carte de s'afficher à un emplacement et à une échelle particuliers.

L'outil que j'utilise maintenant est Xamarin Forms. Il s'agit d'un outil multiplateforme qui fournit un wrapper de haut niveau sur les plateformes mobiles. Pour iOS, il s'agit de Apple Maps, Android de Google Maps et Windows Phone de Bing Maps. C'est un nouvel outil donc le wrapper est très basique pour le moment. Je ne peux fournir qu'un point central et un rayon pour indiquer à la carte où afficher.

J'ai finalement besoin de code C# mais du pseudo-code, ou toute autre saveur serait d'une grande aide.


Vous devez d'abord calculer le centroïde de votre polygone, c'est-à-dire votre ensemble de Lon/Lat. Ce sont des mathématiques simples, voir Wikipedia par exemple : Centroid of polygon

Calculez ensuite la distance de ce centroïde à chaque coordiante de votre ensemble en utilisant simplement Pythagore. La plus grande valeur sera le rayon de votre cercle.

1 degré de latitude équivaut à 111 km, 1 degré de longitude équivaut à environcos(Lat)*111km

Remarque, puisque vous avez des coordonnées géographiques Lat/Lon (et non des valeurs cartésiennes), ce calcul n'est pas exact à 100 %. Cependant, il devrait satisfaire vos besoins tant que la zone n'est pas trop grande (disons quelques kilomètres).


Je pense que vous n'avez pas vraiment besoin d'un cercle / rayon. Si l'objectif est simplement d'obtenir tous les points à l'écran, vous pouvez simplement calculer la zone de délimitation, et à partir de cela, calculer la position centrale et l'étendue (distance du centre au bord le plus éloigné).

Bien sûr, l'API est terrible et vous devez fournir une distance en mètres, mais vous ne l'avez qu'en degrés. Ainsi, une multiplication approximative de la plus grande des distances en degrés par 111 319,9 pour obtenir des mètres sera probablement nécessaire.

La boîte englobante sur les points est simple - commencez par les coordonnées du premier point, puis itérez sur tous les autres points et étendez la boîte englobante si le point se trouve en dehors de la boîte englobante que vous avez.

C'est assez basique, mais si vous en avez besoin en C#, veuillez publier la structure de données initiale que vous avez et je peux rédiger quelque chose.


Vérifiez si l'approche ci-dessous fonctionne

  1. Trouver l'enveloppe convexe de ces points
  2. Trouvez le centre de gravité du polygone à enveloppe convexe - qui devient le centre
  3. La distance la plus éloignée du centre de gravité à l'ensemble de points est le rayon du cercle souhaité

Pour C#, référez-vous à ce sujet ou à ce


Xamarin.Forms Map Polygones et Polylignes

Les éléments Polygon , Polyline et Circle vous permettent de mettre en évidence des zones spécifiques sur une carte. Un polygone est une forme entièrement fermée qui peut avoir une couleur de trait et de remplissage. Une polyligne est une ligne qui ne délimite pas complètement une zone. Un cercle met en évidence une zone circulaire de la carte :

Les classes Polygon , Polyline et Circle dérivent de la classe MapElement , qui expose les propriétés pouvant être liées suivantes :

  • StrokeColor est un objet Color qui détermine la couleur de la ligne.
  • StrokeWidth est un objet flottant qui détermine la largeur de la ligne.

La classe Polygon définit une propriété pouvant être liée supplémentaire :

De plus, les classes Polygon et Polyline définissent toutes deux une propriété GeoPath, qui est une liste d'objets Position qui spécifient les points de la forme.

La classe Circle définit les propriétés pouvant être liées suivantes :

  • Center est un objet Position qui définit le centre du cercle, en latitude et longitude.
  • Le rayon est un objet Distance qui définit le rayon du cercle en mètres, kilomètres ou miles.
  • FillColor est une propriété Color qui détermine la couleur dans le périmètre du cercle.

Si la propriété StrokeColor n'est pas spécifiée, le trait sera par défaut noir. Si la propriété FillColor n'est pas spécifiée, le remplissage sera par défaut transparent. Par conséquent, si aucune propriété n'est spécifiée, la forme aura un contour noir sans remplissage.


Rayon et diamètre

Le rayon est une ligne allant du centre d'un cercle à n'importe quelle partie du cercle. C'est probablement le concept le plus simple lié à la mesure des cercles, mais peut-être le plus important.

Le diamètre d'un cercle, en revanche, est la distance la plus longue d'un bord du cercle au bord opposé. Le diamètre est un type spécial de corde, une ligne qui relie deux points quelconques d'un cercle. Le diamètre est deux fois plus long que le rayon, donc si le rayon est de 2 pouces, par exemple, le diamètre serait de 4 pouces. Si le rayon est de 22,5 centimètres, le diamètre serait de 45 centimètres. Pensez au diamètre comme si vous coupiez une tarte parfaitement circulaire au centre de sorte que vous ayez deux moitiés de tarte égales. La ligne où vous coupez la tarte en deux serait le diamètre.


Comment calculer le centre et le rayon d'un cercle à partir de points - Systèmes d'Information Géographique


Cette calculatrice utilise ces équations :

  longueur de l'arc   =   [rayon • angle au centre (radians)]

  longueur de l'arc   =   circonférence • [angle au centre (degrés) ÷ 360]
  où circonférence   =   [2 • π • rayon]

Connaissant deux de ces trois variables, vous pouvez calculer la troisième. Encore plus facile, cette calculatrice peut le résoudre pour vous.

Commencez par cliquer sur "Longueur d'arc", "Rayon" ou "Angle central".
Saisissez les 2 lignes de données.
Cliquez sur "CALCULER" et vous avez votre réponse.
Cliquer sur "RESET" efface toutes les cases.

Exemples de problèmes 1) Un cercle a un rayon de 7 et un angle au centre de 2 radians. Quelle est la longueur de l'arc ?
Cliquez sur le bouton "Longueur de l'arc", entrez le rayon 7 et l'angle au centre =2.
Cliquez sur "CALCULER" et votre réponse est 14.
Cette calculatrice accepte également les entrées en degrés ainsi qu'en radians.
Pour ce problème, essayons de nouvelles données.
1b) Rayon = 3,6   angle au centre 63,8 degrés. La longueur de l'arc est-elle égale ?
Cliquez sur le bouton "Longueur de l'arc", entrez le rayon 3,6 puis cliquez sur le bouton "DEGRÉS". Entrez l'angle central = 63,8 puis cliquez sur "CALCULER" et votre réponse est Longueur de l'arc = 4,0087.

2) Un cercle a une longueur d'arc de 5,9 et un angle au centre de 1,67 radians. Quel est le rayon ?
Cliquez sur le bouton "Rayon", entrez la longueur de l'arc 5,9 et l'angle central 1,67.
Cliquez sur "CALCULER" et votre réponse est rayon = 3,5329.
Essayons à nouveau de saisir les degrés. 2b) La longueur de l'arc d'un cercle est de 4,9 avec un angle au centre de 123 degrés. Quel est le rayon ?
Cliquez sur le bouton "Rayon", entrez la longueur de l'arc = 4,9 puis cliquez sur le bouton "DEGRÉS". Entrez l'angle central = 123 puis cliquez sur "CALCULER" et votre réponse est Rayon = 2,2825.

3) Un angle a une longueur d'arc de 2 et un rayon de 2. Quel est l'angle au centre ?
Cliquez sur le bouton "Angle central", entrez la longueur de l'arc =2 et le rayon =2.
Cliquez sur "CALCULER" et votre réponse est 1 radian et 57,296 degrés.


3 réponses 3

Voici une ligne simple pour obtenir une équation cartésienne implicite :

À partir de là, nous pouvons utiliser la technique de cette réponse :

Le massage manuel de ce résultat conduit à la forme

ce qui signifie que le résultat est un cercle de centre <(a^2 + 1)/(a^2 - 1), 0>et de rayon Abs[2 a/(1 - a^2)] .

Pour les valeurs concrètes de a, cela peut être fait comme suit.

J'ai appris quelque chose de vraiment cool, mais je ne trouve pas la référence. Probablement de l'un des auteurs des Perles d'Indra.

Il existe une correspondance bijective entre les cercles et les matrices hermitiennes de déterminant négatif. Ainsi, tout cercle peut être représenté par la matrice hermitienne

où le nombre complexe $p$ est le centre du cercle et le nombre réel $r$ est le rayon du cercle.

Le mappage d'un cercle d'entrée à un cercle de sortie est accompli par $G=(M^<-1>)^ cdot H cdot M^<-1>$ , où $M=<,>$ dans la transformée de Mobius. Sous forme de composant,

$ G = gauche[ egin d^* & -c^* -b^* & a^* end ight] cdot left[ egin 1 & -p -p^* & |p|^2-r^2 end ight] cdot left[ egin d & -b -c & a end droit] $

où l'exposant $*$ indique une conjugaison complexe. Le résultat est une autre matrice hermitienne

$ G = gauche[ egin A & B B^* & C end ight] = left[ egin 1 & -q -q^* & |q|^2-s^2 end droit] $

correspondant à un nouveau cercle de centre $q$ et de rayon $s$ .

MobiusMap trouve les coefficients $$ de la matrice hermitienne $G$ , et forme le cercle de sortie à partir d'eux. Il existe un cas particulier lorsque $A=0$ , ce qui donne une ligne $U x+V y+W=0$ . Les rapports pris pour former le cercle de sortie sont indépendants du fait que le mappage a ou non un déterminant d'unité.

Votre mappage est $M=<<1,1>,<1,-1>>$ . La matrice hermitienne correspondant au cercle cartographié est $G=<<1 - r^2, 1 + r^2>, <1 + r^2, 1 - r^2>>$ . Ainsi, le centre $q=-/A=frac$ , et le rayon $s=frac<2r>$ .


Comment calculer le centre et le rayon d'un cercle à partir de points - Systèmes d'Information Géographique

Exemple : Saisissez ces trois points (5, 8) (7, 6) et (9, 2) cliquez sur "ENTER"
Le centre du cercle est situé à (-2, -1) avec un rayon = 11,402 et
l'équation du cercle est (x +2)² + (y +1)² = 130

Prenons trois points et trouvons le centre et l'équation d'un cercle.

Point A (9, 2)
Point B (3, -4)
Point C (5, -6)

Tout d'abord, nous devrons déterminer le pentes de deux droites - droites AB et BC.

Maintenant, nous devons trouver le coordonnée 'x' du centre du cercle qui est :

xctr = [pente AB * pente BC * (Y3 -Y1) + pente AB * (X2 +X3) -pente BC * (X1 +X2)] ÷ [2 * (pente AB -pente BC)]
xctr = [ (1 * -1 * (-6 -2)) + (1 * (3 + 5)) - (-1 * (9 + 3))] ÷ 2 * (1 -1)
xctr = (-1 * (-8)) + 8 -(-12) ÷ 4
xctr = (8 + 8 + 12) ÷ 4
xctr = 7

Pour trouver le coordonnée "y" du centre du cercle, nous utilisons cette formule :

yctr = -(1/pente AB)*(xctr-[(x1 +x2)/2)] + (y1 +y2)/2
yctr = -(1/1) * (7 -[(9 +3)/2]) + (2 -4)/2
yctr = (-1 * (7 -6)) -(2/2)
yctr = (-1 * 1) -1
yctr = -2

Le Circle's Center est situé au : (7, -2)

Enfin, pour calculer le rayon du cercle, on utilise cette formule :

rayon = racine carrée [(x1 -xCtr)^2 + (y1 -yCtr)^2)]
où (x1, y1) peut être quelconque des trois points mais utilisons (9, 2)
rayon = racine carrée [(9 -7)^2 + (2 -2)^2)]
rayon = racine carrée [(2)^2 + (4)^2)]
rayon = racine carrée (20)
rayon = 4.472135955

Pour calculer le équation du cercle, insérez ces trois nombres dans cette équation.


Votre saisie : recherchez le centre, l'aire, la circonférence (périmètre), le rayon, le diamètre, les abscisses x et les ordonnées à l'origine du cercle $$ x^ <2>+ y^<2>=9 $$ .

Graphique: pour tracer le cercle, visitez la calculatrice graphique de cercle (choisissez l'option "Implicite").

Centre : $$ left(0,0 ight) $$ .

Rayon : $$ 3 $$ .

Diamètre : $$ 6 $$ .

Circonférence : $ 6 pienviron 18,8495559215388 $$ .

Superficie : $ 9 pienviron 28.2743338823081 $$ .

Excentricité : $$ 0 $$ .

Excentricité linéaire : $$ 0 $$ .

x-intercepts : $$ left(-3, 0 ight),left(3, 0 ight) $$ .

ordonnée à l'origine : $$ left(0, -3 ight),left(0, 3 ight) $$ .


Essayez-le vous-même

Mais vous pouvez voir une équation circulaire et ne le sais pas!

Parce qu'il n'est peut-être pas dans le "Formulaire Standard" ci-dessus.

À titre d'exemple, mettons des valeurs à a, b et r, puis développons-le

C'est une équation circulaire, mais "déguisée" !

Alors quand tu vois quelque chose comme ça pense "hmm. ça force être un cercle!"

En fait, nous pouvons l'écrire dans "Forme générale" en mettant des constantes à la place des nombres :

Remarque : la forme générale a toujours x 2 + y 2 pour les deux premiers termes.


Comment fonctionne la calculatrice

Le calculateur calcule le point médian géographique en se basant sur l'hypothèse d'une terre sphérique. Le point médian géographique de deux points quelconques de la surface de la terre est situé à mi-chemin le long de la route du grand cercle qui est la route la plus courte qui relie les deux points, et serait comme étirer une ficelle entre les deux points d'un globe terrestre puis trouver le milieu de la chaîne. Le point médian géographique de trois points ou plus sur la surface de la Terre est le centre de gravité (centre de masse ou emplacement moyen) de tous les points.

Pour aider à visualiser le concept de centre de gravité, imaginez qu'un petit poids est positionné à l'emplacement de diverses villes sur un globe terrestre. Imaginez maintenant que le globe puisse tourner librement jusqu'à ce que la partie la plus lourde du globe soit tirée par gravité jusqu'à ce qu'elle soit tournée vers le bas. La partie la plus basse (et la plus lourde) du globe est le centre de gravité et le milieu géographique de toutes les villes pondérées. Voir Méthodes de calcul pour une description détaillée.


Calcul des points de grand cercle intermédiaires

Dans certaines circonstances, vous pouvez souhaiter diviser un grand cercle en intervalles pairs. La fonction Intermediate Great Circle Points fera exactement cela. Vous pouvez activer cette fonction en sélectionnant Calculs -> Intermediate Great Circle Point dans le menu de la fenêtre principale.

En plus des coordonnées géographiques de deux points à la surface de la Terre, le calcul des points intermédiaires du grand cercle vous oblige à saisir le pourcentage de la distance le long du grand cercle, reliant la position 1 et la position 2, à laquelle se trouve la position 3. Après avoir sélectionné vos unités de sortie et votre sphéroïde, appuyez sur le bouton Calculer pour calculer les résultats. Ce calcul renverra la distance orthodromique entre la position 1 et la position 2 la distance orthodromique entre la position 1 et la position 3 et la longitude et la latitude pour la position 3.


Voir la vidéo: Ympyrän yhtälö keskipistemuotoon (Octobre 2021).