CENTRE DE GRAVITÉ D'UNE RÉGION

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 6 janv. 2006 à 18:45
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 - 31 août 2006 à 23:02
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/35429-centre-de-gravite-d-une-region

ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
31 août 2006 à 23:02
et c'est là qu'on voit que ma question était bête. merci. ;-)
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
31 août 2006 à 22:34
Complément,

Ce n'est pas pour insiter, mais mon exemple pourrait passer pour trivial. Voici, un exemple plus parlant :
La figure définie par les points :
0,0
3,4
3,9
7,0
0,0
n'est pas symétrique. Or si on calcul, la somme des X et des Y on obtient le même résultat 13. Et si on change les points, en gardant la même somme, avec ta formule on aurait toujours le même résultat. Or, le CDG à toute les chances de changer... CQFD.

Amicalement,
Us.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
31 août 2006 à 22:11
Bonsoir,

Parce que c'est pas la même chose.
Ta remarque est juste pour 3 points distincts, mais pas dans le cas général. Ici on cherche le CDG d'une surface, et non d'un ensemble de point (massique 1). Bien que ce dernier calcul soit possible.

Exemple simple :
soit les matrices (X,Y) suivant :
0,0
4,6
4,3
4,0
0,0

Ici je réalise un triangle de hauteur 6 et de base 4, dont deux segment se trouve sur la même droite. Je fais cet exemple simple, car il est facile de caluler à la main le CDG, pour marquer la différence entre les 2 calculs.

Avec mon code, on obtient bien la bonne valeur du CDG du triangle, soit (2,666666 ; 2). Avec ton calcul, on a (3 ; 2,25).
On a le calcul : (0+4+4+4)/4 3 et (0+6+3+0)/4 2,25

Bon, à partir de 4 points distincts, on a en principe jamais une corélation entre les 2 calculs quelque soit les valeurs. Par contre, pour 3 points seulement c'est juste.

Amicalement,
Us.
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
30 août 2006 à 22:34
question bête:

pourquoi ne fait on pas:

x gravite = (somme des x)/(nombre de points)
y gravite = (somme des y)/(nombre de points)

?
shivhack Messages postés 11 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 6 septembre 2006
5 mars 2006 à 00:57
une petite remarque s'impose:

les polygones sont centrés sur les coordonnees 0;0.

mais tu peux toujours faire une translation (je te conseille pas, surtout ca agrandira le probleme des precisions).

bonne chance a tous
shivhack Messages postés 11 Date d'inscription mardi 4 octobre 2005 Statut Membre Dernière intervention 6 septembre 2006
5 mars 2006 à 00:55
slt tous le monde

merci pour ce fabuleux car je suis interessé par les maths et je suis en train de coder une dll de math avec interpreteur, etudes de fonctions, geometrie,.... et cette methode je ne la connaissais pas.

pour ce qui est des tests, tu peux utiliser les nombres complexes pour generer des polygones réguliers.

ex. avec un polygone de "n" sommets et de rayon "r" tu mets :

Pi = 3.17 'precisez la valuer de Pi
dim x(1 to n) As Double
dim y(1 to n) As Double

For i=0 To n-1
x(i) = r * cos((2 * Pi * i)/n)
y(i) = r * sin((2 * Pi * i)/n)
Next i

Bonne chance et je promets qu'il y aura pleins de sources et des problemes a resoudre a gogo a partir du 15 mars.

@+
CADRATURE Messages postés 25 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 juin 2009
12 janv. 2006 à 16:49
1 .Je suis d'accord qu'il est normal de tomber un peu à côté de 40-40 suite à la vérification des distances

2. Merci pour les explications précédantes.

3. Je continue à essayer de vérifier avec d'autres contours.
Il me fauddra du temps je suis très occupé en ce moment. Je ferai signe plus tard.


Salutations
CADRATURE
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
11 janv. 2006 à 11:21
Bonjour,

Ah ! je crois avoir dis une bêtisse...(heure tardive).. un polygone régulier devrait être centré sur son centre. Ici 40,40, d'après Cadrature.
Mais pourquoi donc le CdG renvoyé n'est pas sur 40,40 ? Car tout simplement, les coordonnées données ne représente pas un polygone régulier ! Pour s'en convaincre, il suffit de calculer la distance des segments avec pythagore... soit :

X / Y / ((x-x')^2+(y-y')^2)^0,5
60,84656085 / 65,96306069 /
72,48677249 / 46,17414248 / 22,95856726
68,51851852 / 23,4828496 / 23,03566391
51,05820106 / 8,970976253 / 22,70368151
27,77777778 / 8,970976253 / 23,28042328
10,31746032 / 23,4828496 / 22,70368151
6,349206349 / 46,17414248 / 23,03566391
17,72486772 / 65,96306069 / 22,82557678
39,68253968 / 73,87862797 / 23,34085609
60,84656085 / 65,96306069 / 22,59584026

Donc à cause de la trop grande approximation des coordonnées, on tombe un peu à côté de 40,40...

Amicalement,
Us.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
10 janv. 2006 à 00:56
Bonsoir,

Ah oui, désolé j'ai oublié de préciser que la région doit être fermée, comme pour les autres codes... donc à la liste il faut inclure en dernier, le premier, soit 60.8465608465608 65.9630606860158...

Le résultat des calculs renvoit alors 40,3393356374429 et 39,3975575403614. J'ai été étonné que de voir encore une différence encore marquée avec 40,40 ; mais après visualisation de la figure, cela s'explique simplement par le fait que la figure n'est pas symétrique par rapport aux axes... (faut vraiment faire la figure pour comprendre...)

enfin à vérifier...

Le calcul du 'C'entre 'd'e 'G'ravité repose simplement sur le calcul du CdG d'un trapèze. En effet, lorsqu'on regarde 2 points qui se suivent, leurs projections sur les axes X,Y du repère forment un trapèze.

Si on dessine un trapèze classiquement, avec b,B et h (petite base, Grande Base, et hauteur) alors le Cdg suivant X vaut Xg = (h/3)[(B+2b)/(B+b)] ... On retrouve bien celui du triangle si b=0, et celui d'un rectangle si B=b ... Suivant Y, le raisonnemenent est identique mais inversé... Dans le code, on retrouve ce calcul avec 'xx' et 'yy'.

Pour chaque trapèze élémentaire ainsi formé, on calcul aussi leur surface, donnant avec les mêmes notattions : s = h*(b+B)/2. On retrouve ces calculs avec 'sx' et 'sy'.

On calcul également la surface totale de la figure, grâce aux calculs des surfaces élémentaires ci-dessus, en les cumulant. On retrouve ces calculs avec 'St' et 'St2'. Un raccourci de raissonnement nous dirait que St et St2 sont égales ! Oui, sauf... le signe ! Or ce signe dépend du sens dans lequel on tourne, mais aussi des coordonnées (si elles sont négatives, ou tantôt négatives et positives...) Du fait, on ne peut pas savoir en général si 'st' et 'st2' sont du même signe ou de signe opposé... bon, je passe... à creuser si vous ne voyez pas... et voir mon autre code "surface d'une région"...

Le calcul effectif sera obtenu en faissant le cumul des produits de Xg élémentaire par la surface élémentaire des trapèzes ( => moment statique); Le tout divisé par la surface totale.

Voilà, en espérant d'être assez clair...

Amicalement,
Us.
CADRATURE Messages postés 25 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 juin 2009
9 janv. 2006 à 21:54
Le calcul de X me parait bon
Celui de Y n'est pas juste

Avec les données suivantes:
X Y
60.8465608465608 65.9630606860158
72.4867724867725 46.1741424802111
68.5185185185185 23.4828496042216
51.0582010582011 8.97097625329815
27.7777777777778 8.97097625329815
10.3174603174603 23.4828496042216
6.34920634920635 46.1741424802111
17.7248677248677 65.9630606860158
39.6825396825397 73.8786279683377
(C'est un polygone régulier à neuf sommets centré sur le point(40,40) )

On doit obtenir Gx =40 , Gy=40
Or on obtient:
Gx= 40.6646860435321
Gy= 49.7421946430444

Pourquoi ?
(Je cherche)
09-01-2006 21h55

L' idée est bonne.
Tes autres codes sont intéressants.

SALUT
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
9 janv. 2006 à 18:52
Pareil :)
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
8 janv. 2006 à 19:27
Salut !
Tu veux pas donner une explication "française" de la manière dont tu t'y prends pour calculer ton centre de gravité stp ?
Merci.
A+.
Thomas.
CADRATURE Messages postés 25 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 13 juin 2009
7 janv. 2006 à 21:57
Joli. Merci
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
7 janv. 2006 à 21:29
LOL !

Bonsoir ScSami et Ratala,

Euh... oui... htpp... éh bien cela veut dire : "Horeur T'es PéPé !" avec mes 105 années derrière moi... ou non ! plutôt devant moi ! Au vu de ma photo ! -:);
Au fait, pour les 105 ans, c'est "sans 5"... ça complique ?! -:);

Amicalement,
Us.
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
7 janv. 2006 à 15:33
Salut, c'est marrant, ton site c'est du htpp je connaissait pas se protocol ! Sa doit vouloir dire Hyper Text Prensfert Protocol ?
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
6 janv. 2006 à 18:45
Je me disais aussi que le screen-shoot ne m'était pas totalement inconnue... C'est donc dans la lignée de tes autres codes... c'est bien. J'aime bien ton avatar (on sens bien dans son regard qu'il est entrain de pirater une grosse agence internationnale ;-). Mais dis moi, tu as 10,5 ans, 10 doigts et 5 ans ou alors vraiment 105 ans ???
Rejoignez-nous