2010-04-10 4 views
4

Je ne sais pas comment résoudre le problème suivant:calcul de l'effet potentiel des positions des sommets de triangle fautives sur le bord du triangle Longueurs

j'ai un triangle avec chacune des trois positions des sommets connus A, B, C étant imprécis, ce qui signifie qu'ils peuvent chacun dévier jusqu'à certains rayons connus rA, rB, rC dans des directions arbitraires. Étant donné un tel triangle, je veux calculer combien la différence de deux longueurs d'arêtes spécifiques (par exemple la différence entre les longueurs du bord a et du bord b) du triangle peut changer dans le pire des cas. Y a-t-il une solution mathématique élégante à ce problème? La façon naïve dont je pensais à calculer toutes les combinaisons d'angles à 360^3 et à mesurer les différences de bord pour chaque cas, ce qui est un surcoût plutôt élevé.

+0

46 656 000 calculs que vous avez seulement besoin de faire une fois dans une vie ne ressemble pas du tout à un surcoût élevé. – shoosh

Répondre

4

L'image suivante illustre la solution:

MinMaxEdgeDiff.png http://www.freeimagehosting.net/uploads/b0f0f84635.png

Quelques points à noter:

  1. segments de ligne AC1 et BC1 représentent la plus grande valeur possible de | BC | - | AC |, alors que les lignes AC2 et BC2 représentent la plus petite valeur possible. En C1, la tangente au cercle doit couper l'angle formé par AC1 et BC1; de même pour C2.
  2. AC1 (lorsqu'il est prolongé par la ligne pointillée) et AC2 passent tous les deux par A. De même, BC1 et BC2 passent par B. Tout écart par rapport au centre, et les lignes seraient plus longues ou minimales.
  3. Les plus grandes et les plus petites différences sont les suivantes:

    d1 = |BC1| - |AC1| = (|B->C1| + _rB_) - (|A->C1| - _rA_) 
            = |B->C1| - |A->C1| + (_rA_ + _rB_) 
    
    d2 = |BC2| - |AC2| = (|B->C2| - _rB_) - (|A->C2| + _rA_) 
            = |B->C2| - |A->C2| - (_rA_ + _rB_) 
    

    Ainsi, la variation entre les plus grandes et les plus petites différences est:

    d1 - d2 = (|B->C1| - |A->C1|) - (|B->C2| - |A->C2|) + 2*(_rA_ + _rB_) 
    

Le dernier point laisse entendre que la solution peut être trouvée en résoudre à partir des centres A et B, puis en ajoutant les rayons rA et rB. Ainsi, les localisations de C1 et C2 peuvent être découvertes de façon itérative (et séparément, puisqu'elles sont indépendantes l'une de l'autre) en ne faisant varier qu'un seul angle autour du cercle de délimitation de C. Je soupçonne qu'il existe une solution analytique. C'est un problème intéressant, mais pas assez pour que je me bats la tête contre cette tâche particulière. Pardon. ;-)

+0

merci beaucoup pour la réponse illustrative et détaillée! j'avais totalement oublié ce dernier point! – stingrey

+0

Aucun problème, @stingrey. BTW, j'ai arrangé les mathématiques légèrement (rien de majeur, j'ai juste échangé d1 et d2 dans la soustraction pour mieux correspondre à la discussion). –

+0

+1 Le diagramme a l'air cool. Un outil que vous avez utilisé? –