NCF参数化建筑论坛

标题: 嘗試在GH 裡用使用C#找出最短的路徑 [打印本页]

作者: weiwei    时间: 2013-2-19 22:54
标题: 嘗試在GH 裡用使用C#找出最短的路徑
流程步驟 :

1.散佈隨機點在範圍內,
   設index 0 為起始點,
   用index 0 去跟除了自己的點搜尋,找到最近距離,並抽取最近點的index
   把 "起始點(initial Point)" 與 "最近點(closest Point)"連線
注意: 比較距離時,當前點不用與自身相比較,因為與自身比較出來的數值一定是0,也是最小,沒意義。


2. 使用"最近點(closest Point)"搜尋最近點,並連線,找到"下個點(next Point)"
注意: 比較距離時,也不用與使用過的點作比較,因為目的是把最近點找出並當成下條連線的起點。例如: 如圖所示index 0 找到最近點 index 9 ,如果index 9 又與除了自身的其他點比較,將會找到 index0,沒意義。

3. 替換"下個點(next Point)" 當成 "最近點(closest Point)",目的是把"下個點(next Point)"
    做為下次連線的起點

4. 重複1-3步驟,完成最近距離連線

問題 :


在把使用過的index value 取出作檢查時,程式出現問題"索引超出範圍",希望哪位牛哥妙麗可以幫在下解決一下問題!!! 感激不盡。


檔案下載:[attach]37687[/attach]

Blog : http://lochengwei.blogspot.tw/



[attach]37683[/attach]
[attach]37684[/attach]

[attach]37685[/attach]

[attach]37686[/attach]








作者: weiwei    时间: 2013-2-19 22:55
抱歉了,剛上手,有些問題需要高手幫幫忙!
作者: king_tc    时间: 2013-2-20 12:34
不知道楼主做这个的目的是什么,其实楼主现在随机布的点有很大的巧合性,如果在某些位置增加几个点,按照楼主的逻辑最后会形成自交叉的pl,我觉得自交叉是不是楼主不希望出现的情况?
作者: Lxuezhao    时间: 2013-2-20 20:56
是没看明白目的,0到8之间最短路径不是直接连直线么?
作者: 阿浩    时间: 2013-2-22 17:34
有点意思。。。。。。。。。。。。。
作者: wikii    时间: 2013-7-5 19:31
[attach]39320[/attach]
楼主的解题思路不对
显然这个不是最短路径。[attach]39321[/attach]

作者: winkdong    时间: 2013-7-21 18:06
不懂c#,不过用过shortestwalk这个gh的插件,可以解决类似arcmap的最小路径生成问题。




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2