4

次の問題を解決する方法がわかりません。

3つの既知の頂点位置A、B、Cのそれぞれが不正確である三角形があります。つまり、それぞれが特定の既知の半径rA、rB、rCまで任意の方向にずれることがあります。

そのような三角形が与えられた場合、三角形の2つの特定のエッジの長さの差(たとえば、エッジaとエッジbの長さの差)が最悪の場合にどの程度変化するかを計算したいと思います。この問題に対する洗練された数学的解決策はありますか?

私が考えた素朴な方法は、360 ^ 3の角度の組み合わせをすべて計算し、それぞれの場合のエッジの差を測定することです。これは、かなり高いオーバーヘッドです。

4

1 に答える 1

4

次の画像は解決策を示しています。

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

注意すべきいくつかのポイント:

  1. 線分AC1およびBC1は、|BC|の可能な最大値を表します。-| AC |、線AC2とBC2は可能な最小値を表します。C1では、円の接線はAC1とBC1がなす角度を二等分する必要があります。C2についても同様です。
  2. AC1(破線で延長した場合)とAC2は両方ともAを通過します。同様に、BC1とBC2はBを通過します。中心からの偏差があると、線は最大または最小に長くなります。
  3. 最大と最小の違いは次のとおりです。

    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_)
    

    したがって、最大と最小の違いの違いは次のとおりです。

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

最後のポイントは、中心AとBから解き、半径rArBを追加することで解を見つけることができることを示唆しています。したがって、C1とC2の位置は、Cの境界円の周りを1つの角度だけ変化させることによって、繰り返し(および、互いに独立しているため、別々に)検出できます。

分析的な解決策があるのではないかと思います。これは興味深い問題ですが、この特定のタスクに頭を悩ませるには十分ではありません。ごめん。;-)

于 2010-04-10T10:24:45.420 に答える