作者Leon (Achilles)
站內MATLAB
標題Re: [討論] 圓內隨機取N個座標點的問題
時間Tue Aug 14 02:50:14 2012
※ 引述《tomichy (絕倒!天然度max!)》之銘言:
: 我想這應該是個歸類為演算法的問題吧?
: 我利用簡單的關係式
: X=r*cos(theta)+a & Y=r*sin(theta)+b, 0<=r<=R
: 在一個半徑R的圓內 任意指定N個座標點 (N large)
: 隨機變數有 r 以及theta 兩個 分別隨機取然後得到(X,Y)
: "以如此方式產生的座標點(X,Y)的密度靠近(a,b)的區域
: 相對於其他地方都來得高"
: (以座標點密度對半徑作圖, 會類似常態分布)
: 而這不是我想要的結果
你做錯了
因為兩個作標系統的 Jocobian, 你得去查 學一下這個作標函數轉換
這應該在微積分有.
Quick hint: unit area in (x,y) is dx*dy
but in (r, theta) is r dr*d(theta)
: 請問各位有沒有經驗或可以明示一下
: 如果想寫一個 when N large
: 在圓內座標點幾何分布密度會趨近於定值的的一個座標指定方式
: (以座標點密度對半徑作圖, 呈現接近水平線)
It's not correct.
If you want uniform inside circule area, the
density should be prop to r.
There are so fancy methods here.
Google is always your best friend.
http://stackoverflow.com/questions/5837572/generate-a-random-point-within-a-circle-uniformly
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 205.226.66.120
1F:推 tomichy:讚 你這個回答(網頁)是我想要的~ thx 08/22 14:39