2010-04-10 88 views
4

我不知道如何解決以下問題:計算上的三角形邊緣不準確的三角形頂點位置的潛在影響lenghts

我有一個三角形與各三個已知頂點位置A,B,C的是不準確的,意味着它們可以各自偏離到某個已知半徑rA,rB,rC爲任意方向。給定這樣一個三角形,我想計算在最壞的情況下,三角形的兩個特定邊緣長度(例如,邊緣a和邊緣b的長度之間的差異)的差異可能會有多大的變化。有沒有什麼優雅的數學解決這個問題?

我想到的天真的方式是計算所有360^3角度組合並測量每種情況下的邊緣差異,這是一個相當高的開銷。

+0

46,656,000個計算,你只需要在一生中做一次,聽起來不像是一個很高的開銷。 – shoosh 2010-04-10 07:32:12

回答

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的邊界圓僅改變單個角度來迭代地(並且分開地,因爲它們彼此獨立)被發現。

我懷疑有一個解析解決方案。這是一個有趣的問題,但不足以讓我反對這個特殊任務。抱歉。 ;-)

+0

非常感謝您的說明和詳細的答案! 我完全忽略了最後一點! – stingrey 2010-04-10 11:01:27

+0

沒問題,@stingrey。順便說一句,我已經修正了數學(沒有什麼重大的;我只是在減法中交換了d1和d2以更好地匹配討論)。 – 2010-04-10 11:13:53

+0

+1圖表看起來很酷。你使用的任何工具? – 2010-04-10 14:50:42