看板 MATLAB 關於我們 聯絡資訊
假設小弟目前用matlab寫出一個code 是模擬一個box 三個維度 X Y Z (box的尺寸已知) 然後一次一個將模擬成圓盤的物件 (圓盤的尺寸都為已知) 隨機random圓盤中心點的座標及方向角,加入盒子中 (座標方向角已知) 假設圓盤可以互相穿透重疊,並且認為兩圓盤碰觸/重疊為形成通路                *兩圓盤至少要碰觸才算是形成通路 在這樣假設條件下,持續一直丟圓盤進box裡面 直到第一條通路形成穿透兩側 (無論X Y Z方向都可),此次模擬結束。 *很多個圓盤互相碰觸並且連成一條通路,連接盒子的兩側 問題點是卡在,我必須要怎麼判斷第一條通路形成是哪時候? 原本想說是不是可以在每次加disk進box裡面之後 將互相穿透/碰觸的disk合併成為一個物件,然後再下去看是否有穿透box了 不過還是沒有個明確檢測的辦法... 有請各位板上的神手們給小弟一點指點了!! m(_ _)m 非常感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.156.84
diva:我猜可以用找路徑的方式解決 如果a->b有路徑的話 就通路了 11/13 01:58
diva:或許你可用shortest path當關鍵字google看看 11/13 01:59
ashioulou:感謝 我試試看!!!! 11/13 13:14
rannin:主要兩個問題是合併和穿透計算,合使用併聯立求解可行吧? 11/15 10:29
rannin:穿透只要x,y,z任一為0或上下邊界值即為穿透(或碰觸)了,代 11/15 10:33
rannin:入計算可知道,只是這樣是逐一判斷,不知道有更快方法? 11/15 10:34