一、資料結構心得

資料結構可分為以下三種:單實線、雙實線、雙虛線。

grasshopper資料結構研究與pathmapper總結

常見的資料之間的運算,一般可以分為三大類,第一類是兩個輸入端都是雙實線;第二類是兩個輸入端都是雙虛線,且組數相同,組內資料可同可異不做限制;第三類是一個輸入端是雙實線,另一個輸入端為雙虛線,組內資料個數不做限制。其他的,如兩個輸入端都是單實線,或有超過兩個輸入端的,或兩個輸入端的組數不同的等等,這些有的過於簡單有的過於複雜,在實際專案中不常見,就不做解析。本文只對常見的三種的資料結構的型別進行研究。

第一類

:兩個輸入端都是雙實線,運算規則有三大種:Longest List,Shortest List,Cross Reference。

grasshopper資料結構研究與pathmapper總結

這三個運算器都可以右鍵改變運算規則,此段落著重討論常用的Longest List(右鍵repeat last),Shortest List(右鍵trim end),所有的右鍵選項規則研究放在了文末。

預設的運算規則:也就是Longest List(repeat last)

按資料數較多的那一組算,兩組資料按照標號次序,一一進行運算,多出來的資料與最後一個數據運算。

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

Shortest List(trim end)

按資料數少的那一組算,兩個資料按編號一一進行運算,多出來的資料,不參與運算。

grasshopper資料結構研究與pathmapper總結

第一類總結:兩個資料集都為一組,最終獲得的資料集組數也為一,當Longest List(repeat last)的運算規則時,獲得max的組內資料數;當Shortest List(trim end)的運算規則時,獲得min的組內資料數;當兩個資料集的資料數相同時,獲得的組內數保持不變。

第二類

組內資料一一對應:線段按標號次序,一一進行偏移。

grasshopper資料結構研究與pathmapper總結

擴充套件:組內資料2對2,每組的第一和第二條曲線與另一組兩個資料一對一對應偏移。

grasshopper資料結構研究與pathmapper總結

組內資料一對多:預設採用了Longest List(repeat last)的運算規則,按資料長的算,組與組按順序依次對應運算,每組的一條線段偏移兩次。

grasshopper資料結構研究與pathmapper總結

擴充套件:組內資料2對3,即每組有3條曲線,而對應的只有兩個偏移值。

預設採用了Longest List(repeat last)的運算規則,每組的第一和第二條曲線與另一組兩個資料一對一對應偏移,剩下的第三條曲線按最後一個偏移值進行偏移。

grasshopper資料結構研究與pathmapper總結

組內資料2對3,即每組有3條曲線,而對應的只有兩個偏移值。

採用Shortest List(trim end)的運算規則,每組的第一和第二條曲線與另一組兩個資料一對一對應偏移,剩下的第三條曲線不偏移。

grasshopper資料結構研究與pathmapper總結

第二類總結:兩組資料集的組數相同,運算時,兩個資料集的組一一對應運算:當採用預設Longest List(repeat last)的運算規則時,即按資料組內資料個數多的計算,最終獲得的資料集的組數不變,組內資料個數為max;當採用預設Shortest List(trim end)的運算規則時,即按資料組內資料個數少的計算,最終獲得的資料集的組數不變,組內資料個數為min;當祖內資料個數一樣時,則組對組,資料對資料,一一對應計算,最終獲得組數和組內資料數保持不變。

第三類

組內資料3對1:預設採用了Longest List(repeat last)的運算規則,按資料長的算,用加法解析:資料集A(組數為1)內的3個數據都與資料集B(組數較多者)每一組裡面的1個數據相加,獲得3個組,每組3個數據。用曲線偏移解析:1個曲線組內的3條曲線依次與3個數值組內的1個數據運算,即3條曲線與第1組計算,3條曲線都偏移3m並歸到一組,3條曲線與第二組計算,3條曲線都偏移6m歸為第二組,3條曲線與第三組計算,3條曲線都偏移9m歸為第三組。

grasshopper資料結構研究與pathmapper總結

擴充套件:組內資料3對2,預設採用了Longest List(repeat last)的運算規則,按資料長的算,資料集A(組數為一者)的前兩個資料依次與資料集B(組數較多者)的每一組的裡面的兩個資料,對應相加,資料集A內的第三個數在與資料集B的最後一個數相加,獲得3組,3個數。

grasshopper資料結構研究與pathmapper總結

組內資料1對3,採用Shortest List(trim end)的運算規則,按資料短的算。用加法解析:資料集B(組數多者)的每一組裡面的一個數據都只與資料A(組數較少者)的第一個資料相加,獲得3個組,每組1個數據;用曲線偏移解析:3個數值組內的1個數據都與1個曲線組內的第一個資料計算,曲線組內第二和第三個資料不參與計算,即將第一條曲線偏移3成一組,將第一條曲線偏移6成一組,將第一條曲線偏移9成一組,獲得3個組,每組1個數據。

grasshopper資料結構研究與pathmapper總結

第三類總結:資料集B(組數多者)的每一組都要與資料集A(組數為一者)的一組進行運算:當使用預設的Longest List(repeat last)的運算規則,即按資料組內資料個數多的計算,最終可獲得與組數和每組內資料個數都為max;當使用Shortest List(trim end)的運算規則,即按資料組內個數多的計算,最終獲得組數為max,組內資料個數為min;當兩個資料集的組內資料個數一樣時,則資料一一對應計算,最終獲得的組數和組內資料數保持不變。

二、path mapper使用方法總結

1、可以對路徑級進行加減乘除(除法用法見下文);可以砍掉某一路徑級;可以將某一路徑級設為定值,例如圖一是將C=2的歸為一組,其他的成一組。

grasshopper資料結構研究與pathmapper總結

擴充套件:下圖表示,只有A=1的歸為一組,只有B=1的歸為一組,A=B=1的歸為一組,其他的成一組。

grasshopper資料結構研究與pathmapper總結

2、將某個路徑級與 i 互換,i 為組內資料的序號,此用法僅限於每組的資料數都相同。

第一種,最外一層路徑級只分布在一個大組(外二層級)內,舉個例子說就是,如果這個資料集由兩個路徑級組成,如果第一個路徑級都是一個相同的數(一般為0),其他0123。。。都在第二級,即{0;1} {0;2} {0;3} ……,我們把這種資料結構稱最外一層路徑級只分布在一個大組(外二層級)內。此時,將最外一層路徑級 C 與 i 互換,效果是將 4(C)個組,每組 2(i)個數,轉換為2個組,每組4個數。

效果與Flip Matrix運算器相同。

grasshopper資料結構研究與pathmapper總結

第二種,最外一層路徑級分佈在兩個或兩個以上外二層路徑級上,舉個例子說就是,如果這個資料集由兩個路徑級組成,最外一層路徑級分佈在兩個外二層級上(一般為0,1),其他的0123。。。都分佈在第二級,即{0;0} {0;1} {0;2} {0;3} {1;0} {1;1} {1;2} {1;3} 。。。,我們把這種資料結構稱最外一層路徑級分佈在兩個外二層路徑級上。以下舉例說明:

原始狀態:

A={0; }{1; }=2外二層級;

B={ ;0}{ ;1}{ ;2}{ ;3}=x=4;

組內資料個數=i=0,1,2,3,4=5。

在每個外二層路徑級內,有4組,每組5個數。總共有8個組,每組5個數。

grasshopper資料結構研究與pathmapper總結

將 B 與 i 互換後,在每個外二層路徑級內,有5組,每組4個數。總共有10組,每組4個數。

grasshopper資料結構研究與pathmapper總結

將 A 與 i 互換後,將2個外二層路徑集變為5個外二層路徑級,每個層級有4個組,每組有2個數。

grasshopper資料結構研究與pathmapper總結

3、除法 / 的三種用法:

grasshopper資料結構研究與pathmapper總結

4、%n分為n組

grasshopper資料結構研究與pathmapper總結

5、\n每n個數據分為1組,此用法僅限於每組只有1個數據,可以有多個外某層路徑級。

grasshopper資料結構研究與pathmapper總結

6、path_count 提取組數;item_count 提取組內資料數

grasshopper資料結構研究與pathmapper總結

三、註釋:三個運算器的運算規則詳解:

grasshopper資料結構研究與pathmapper總結

當兩組資料集(都為單組)的資料個數不同,他們的運算方式如下,採用兩組點的連線方式來研究:

longest list:

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

first,點數多的一側的末尾點

與點數少的一側的末尾點按順序依次連線,剩下多餘的點與點數少的一側的起始點連結。

grasshopper資料結構研究與pathmapper總結

last(預設選擇),點數多的一側的起始點與點數少的一側的起始點按順序依次相連,剩下的多餘的點與點數少的一側的末尾點相連。

grasshopper資料結構研究與pathmapper總結

interpolate間隔相連,不常用。

grasshopper資料結構研究與pathmapper總結

wrap,點數多的一側的起始點與點數少的一側的起始點按順序依次相連,剩下的多餘點又開始和點數少的一側的起始點按順序依次相連,就這樣,一直迴圈下去。

grasshopper資料結構研究與pathmapper總結

flip,點數多的一側的起始點與點數少的一側的起始點按順序依次相連,剩餘的點又返回去跟最後一次點的前一個點倒序依次相連,再又多餘的再倒回來,這樣來回反覆,知道沒有多餘的點可以連。

shortest list

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

以上三種分別是trim start, trim end, interpolate。

1,由點數少的一側的末尾點與點數多的一側的末尾點開始依次相連,並去掉起始的多餘的點的連線;

2,由點數少的一側的起始點與點數多的一側的起始點開始依次相連,並去點末尾多餘的點的連線;

3,兩側點居中相連。

cross reference

grasshopper資料結構研究與pathmapper總結

grasshopper資料結構研究與pathmapper總結

乘法交叉相連holistic