2011-01-24 58 views
10

假設您有一個頂點爲ABC的任意三角形。 This paper (section 4.2)說你可以從三角形ABC內由頂點的下面凸組合生成一個隨機點,P,均勻地:三角形中的樣本隨機點

P = (1 - sqrt(r1)) * A + (sqrt(r1) * (1 - r2)) * B + (sqrt(r1) * r2) * C 

其中r1r2均勻地從[0, 1]繪製的,sqrt是平方根函數。

你如何證明均勻分佈在三角形內的採樣點ABC

編輯

正如評論指出了the mathoverflow questionGraphical Gems discusses this algorithm

+2

這可能更適合http://math.stackexchange.com/ – 2011-01-24 02:54:19

+0

http://math.stackexchange.com/questions/18686/uniform-random-point-in-triangle – dsg 2011-01-24 04:02:17

回答

10

你有一張地圖P(r1,r2)從單位正方形到你的三角形。一律選擇r1和r2給出單位平方中的一個隨機點。三角形中的圖像根據地圖P的雅可比行列式分佈,結果是一個常數。因此圖像分佈也是均勻的。

其實,要驗證這一點,你只需要檢查它的一個三非共線點A,B,C。仿射線性映射具有恆定的雅可比行列式,因此您可以應用其中的一個將任意三元組移動到此標準位置而不影響分佈。

最後,說一句「爲什麼」:考慮三角形由與BC邊平行的線段填充。在P的公式中,變量r1選擇點將位於哪個線段上,而r2決定沿着該線段的位置。爲了保持均勻性,給定片段上的所有點應該平等對待(因此在r2中是線性的)。但是對於r1來說,由於一些細分市場比其他細分市場短,我們需要支持較長的細分市場以獲得均勻的分佈。公式中的sqrt(r1)說明了這一點。