本文源自公众号:ACND STUDIO
简述
通过多种数据结合关系解释Grasshopper基本运算规律
所需软件:Grasshopper
数据类别
通常来说我们可以把总的数据类型分为两种,一种为图左的单一数据,而二为图右侧的树形数据。看到列表顶端深色条纹的一栏右侧带有 {0;0} 或者 {0;0;0} 等,这个为每一组数据的路径。我们也可以以此为依据去区分这个列表内到底有多少组数据。简而言之,列表里只有一组数据为单一数据,有多组数据为树形数据,其实这只是个称号,理解其存在的意义更为重要。
单一列表的计算方式
两个只有单组数据的列表相互运算的情况下是一一对应的关系相互运算,上边组内序号为0的数字对应下边组内序号为0的数字相互运算,以此类推得到右边列表。
当两个列表的数据长度不一致的时候,可以清晰的发现0~4序列的数据还是照常一一对应进行了运算,而较长列表里的5~9的序号则抓着较短列表里的最后一位数字进行累加。
多组数据列表的计算方式
两个多组数据列表的计算方式也是如此,组数相同时,组与组之间一一对应相互计算。
当两列数据内的组的数量不对等的时候,计算方式和前面单一组数之间的计算类似,当长列表内组数超过短列表内组数的部分和短列表内的最后一项计算。
多组数据与单一数据的计算方式
当一列数据为多组数据,而另一列数据为单组数据的情况下,多组数据的每一个小组都会与下面的组单独发生运算。(注意:多组列表内的组与组之间并不会相互影响)
多组数据中的每个小组有多个数据时,外部运算还是一样每一组和下方单组数据运算,内部运算也和之前提及的运算规律一致,长列表的多余的内部数据和短列表的末尾项运算。
数据合并
一般两组数据合并在一起用的最多的是merge运算器(或shift加选),但需要考虑到两组合并数据的匹配性。最需要注意的是数组的序号,需要完全一致最后才能被匹配到同一个小组之内。如图,上方数据和下方数据因为列表序号相同被合并进入了一个组内,排列顺序为输入端D1,D2的接入顺序排列两个列表。
当两组数据列表的组序号不同的情况下,则右端只会将组对应放到一个大列表内(组内并没有融合),组的排布顺序永远是短的路径排在前边(例如图中:{0;0}的列表虽然接入D2但是merge之后也排在列表的最前端)。
当然可以通过simplify与flatten将其路径统一,不过可以观察到右端只是将路径名称相同的数据合并了,其他并没有发生变化。
评论前必须登录!
注册