看板 MATLAB 關於我們 聯絡資訊
http://imgur.com/ByfHnxS 我想在一個三角型區域內(不能超出),隨機選一個點,點的位置如圖中安排所表示 共14個點 每個點(x1,y1)之間的間隔是δ=25mm 能不能建立一條數學式當我輸入一個δ就能自動建立出點(x1,y1) 並隨機選取 小弟想法是不斷使用 if .....elseif....elseif.....end 去判斷 但試了結果都不做不出來 請教有人能幫忙解答嗎 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.33.82
jatj:第一時間的想法, 先在125x200內隨機選一個點 05/14 03:19
jatj:tx=δ:δ:125; idx=randperm(numel(tx)); x1=tx(idx(1)); 05/14 03:22
jatj:y1亦同理 之後分別檢查x1, y1是否落在你要的三角形 05/14 03:22
jatj:不是的話選取下一個idx, 用while來判斷即可 05/14 03:23
jatj:注意x, y是分別判斷 05/14 03:23
jatj:tx=δ:δ:125-δ; sorry 05/14 03:23
jatj:抱歉想想應該一組一組判斷 所以應該列出idx_x, idx_y 之後 05/14 03:24
jatj:隨機排列所有(x.y)的組合 之後一組一組檢查 05/14 03:25
YoursEver:(1) 根據 \delta 畫 grid point. 05/14 13:19
YoursEver:(2) grid point的座標+三角型頂點座標-->算三角坐標系 05/14 13:20
YoursEver: (barycentric coordinate)的係數. 05/14 13:20
YoursEver:(3) 三角坐標系的係數a,b,c都在[0,1]之間時,點在三角型 05/14 13:22
YoursEver: 內部. 05/14 13:22
YoursEver:(4) barycentric coordinate去找wiki,有closed form. 05/14 13:23