当前课程知识点:Grasshopper参数化设计与建模 >  第六章 Grasshopper数据结构(二) >  6.1 Grasshopper树状数据结构(1) >  6.1.1

返回《Grasshopper参数化设计与建模》慕课在线视频课程列表

6.1.1在线视频

下一节:6.1.2

返回《Grasshopper参数化设计与建模》慕课在线视频列表

6.1.1课程教案、知识点、字幕

6.1节,在这一节

我们将给大家首先讲解

Grasshopper 当中的

复杂数据结构的简析

接下来

讲解如何查看、更改

Grasshopper当中的数据结构

第三点

PathMapper路径映射

与复杂数据流的匹配

同学们好

在新的一章里

我们将给大家介绍

grasshopper

数据结构的第二部分内容

也可以说是高级应用部分的内容

我们知道在grasshopper中

数据结构起到了两个重要的作用

一个是管理数据

也就是说数据是如何分组的

第二个重要的作用是组织程序的流程

在grasshopper这样的

图形化的编程环境当中

程序流程是借用了数据结构的方式

来进行管理的

具体来讲

就是运算器中的数据是如何匹配的

对于grasshopper来讲

掌握数据结构的应用是用好它的关键

因此希望大家能够

认真学习本章的内容

我们在这一章里

将先对grasshopper

数据结构的高级内容进行讲解

之后还会结合一些

在曲面上做参数化表皮的案例

进行讲解

希望大家能够对这部分内容多多练习

掌握好本章的内容

我们看一下这里的两张图

左边的这个程序展示了

我们在前面对于数据结构学习所知道的

就是多个数据可以结合为一个列表

这里是用一个panel来显示一组数据

一个list它的内容

同时我们也可以用这里的

PARAM viewer 这样一个电池

来显示数据的结构

这里是五个数组成的列表

具体的数据显示在panel里

那么对于panel来讲

我们还会在列表的顶上有一个标题

或者说显示的是这个数据组成的列表

它所在的路径叫path

那么相应的在PARAM viewer下面

我们也能够看到显示的数据结构

大家可以注意到

在PARAM viewer下面

它不会具体的去显示这些数据

而是只表示这个数据结构

所以在panel里我们看到这样一个路径

它是由(0,0)两层的数字

来表示的一个两层的数据结构

因此相应的

在PARAM viewer底下

我们能看到是

由两个节点组成的一个

双层的数据结构

而具体的数据呢

我们可以理解

它是装载在这两个节点上的

只是没有做具体的显示而已

当然在panel里面

我们还能看到的就是

每个数据有一个编号

有一个index

这是它的顺序号

那么在右边这个数据结构里

这是一个更复杂的数据结构

它分成了1 2 3 4 5五个路径

每个路径都有相应的编号

五个list

每个list有一个相应的路径

这个路径的编号是

比如说(0,0,0)(0,0,1)

(1,0,0)(1,0,0,0)(1,0,0,1)

所以我们在这里的路径有两种情况

一种是三位的 一种是四位的
所以我们在这里的路径有两种情况

一种是三位的 一种是四位的

因此相应的在PARAM viewer下

我们能看到
因此相应的在PARAM viewer下

我们能看到

有的路径是由三个节点组成的

有的路径是由四个节点组成的

这就是一种对应的关系

相应的这是每一个path下

它的具体的list

这些数据以及数据的编号

如果我们把右边这个复杂的数据结构

它的PARAM viewer

在grasshopper中不断地放大

我们就会看到在这些路径上

会显示一个编号

这个编号实际上是跟

我们在panel里看到的

数据的路径是一一对应的

比如说

三位的数据编号是跟

这边的两个节点对应的

因为它是三位

所以我们看到这条路径上

一共是三个节点

1 2 3

这条路径是三个节点

它的路径编号是标在这条线上

(0,0,0)和(0,0,1)

它们的上一级是(0,0)

具体的数据我们可以理解

是装载在这两个节点上的

这个list和这个list

装载在这两个节点上

那么对于四位的路径呢

它们对应的节点在这里

这是路径的编号

因为是四位的路径

所以一共是四个节点

路径的编号(1,0,0,0)

和(1,0,0,1)在这里

比较有趣的是这个(1,0,0)

这样一个三位的编号

这个路径在哪里呢

这个list对应的点在这里

我们说(1,0,0)

数据装载在这个节点上

我们看到(1,0,0)

和后面这两个路径的前三位

是一致的

所以实际上它们共用了一段路径

这是在grasshopper的界面中

我们显示一下刚才的两个数据结构

对于这个PARAM panel

如果我们zoom in的话

就会看到刚才介绍的

具体的数据路径的编号

那么我们也可以介绍一下

如果是单个数据

比如说

我们在这里鼠标右键Set integer

我们设定一个7

用一个panel来看一下它的具体内容

对于单个数据来讲

当然它的数据结构很简单

那么在这里我们会注意到

一个有趣的差别

是单个数据的时候我们看到

数据的连线是一根实线

如果是多个数据的时候

这条线就变成了双实线

如果是多个数据而且是多个list

或者说是一个复杂的数据结构的时候

这条线不仅是双线而且是虚线

那么在grasshopper里面

这样一种设定

它能够帮助我们在编程的时候

更直观地认识到数据结构的不同

对于编程来讲是非常有帮助的

这样一种显示呢

在grasshopper里面是可以设置的

我们在Display里头

看到这里有Draw Fancy Wires

如果我们把这个选项取消的话

我们看到所有的数据的连线的显示

都是一样的单实线

一般来讲还是建议大家选中

Draw Fancy Wires

对于编程来讲是有帮助的

Param Viewer这个运算器

它在哪里呢?

我们看一下

它在parameter底下这个像树一样的

这样一个电池

如果我们把数据接上来

我们看到了如果直接接上去的话

看到是Param Viewer的

它的另外一种显示方式

也就是说显示具体的路径

和路径里头数据的数量

如果我们双击它

它就会变成一个数据结构的图

同样对于刚才我们显示的

这两个数据结构

我们也可以去双击它

让它呈现出另外一种

以文字的形式来描述数据结构的方式

此外很重要的

我想大家在前面的应用当中

练习当中也都注意到了

如果我们点击鼠标右键

不管是在数据的输入端

还是在数据的输出端

我们在这里都有几个常见的选项

reverse flatten graft和simplify

reverse我们前面已经用过很多次

就是将数据列将list颠倒过来

把它的顺序颠倒过来

下面我们讲讲flattengraft和simplify

这几个选项它的意义是什么

关于flatten

那么这是我们鼠标右键的时候

我们看到的flatten

除了在数据的输入端和输出端

可以用鼠标右键去选择以外

我们也有这样的电池

是专门用来做flatten这个操作的

这是flatten对应的电池

flatten的作用是拍平

或者说抹去原有的数据结构

将所有的数据放到

一个最简单的就是

0的这样一个数据的路径之下

我们看一下

这是一个flatten的例子

如果我们这边有一个数据结构

我们这里的数据写的是字母

第一个list里面是两个X

第二个list里面是两个Y

第三个list里面两个Z

那么它的路径是000

010和020

注意到这这里头3个路径

分别存了6个数据

那么如果经过flatten

就会把所有原来的数据结构都抹掉

然后把所有的数据装在一个list里面

而这个list它的pash

它的路径是0

所以原来的数据结构三层的数据结构

在这里变成了一个单层的数据结构

我们看到这是没有点的只有这有点

这是一个单层的数据结构

所有的数据都装载在这个节点上

用图示来显示的话呢

显示这个数据的层级关系的话

在000我们看到三层的数据结构里头

XX,YY,ZZ分别存放在三个路径底下

经过flatten以后变成了

在一个简单的路径底下

装着6个数据

我们再来解释一下

这个图为什么画成这样

三个数据路径在它的第一位都是0

所以它们共享了最初的这一个数据路径

所以我们把它装在同一个框里头

那么在它的第二位呢

就分成了三个组0 1和2

所以我们把它分成三组

那么在第三层里头呢又都一样了

但这个一样呢是说

在相应的第三个路径底下

没有再做进一步的分层

所以我们在这个路径底下

就只有一个分叉

所以这个数据结构就用这张图来表示

那么我们再看看如果是这样一种情形

如果我们有一个两层的数据结构

但是只有一个list

也就是说数据都在同一个路径底下

那么这个路径是一个两层的编号

经过flatten以后

我们看到这个两层的数据结构

变成了单层的数据结构

00变成了0

这边的图相应的也发生了这样的变化

那么这个数据结构

和它的数据结构是一致的

就是只有一个list

我们再看看如果是一个

非常复杂的数据结构

那么这个数据结构里头

是跟我们刚才

在前面演示的那个复杂数据结构

是非常相似的

00 01这只是多了一个02

那么这样一个数据结构

它有3层的还有4层的

它的编号也有各种变化

那么我们做flatten的时候

一样非常鲁棒地

把里面的所有数据结构都抹平

然后把所有的数据装在一个path

名为路径的一个list里面去

所以不管是什么样的数据结构

经过flatten之后

得到的结果都是一样的

Grasshopper参数化设计与建模课程列表:

第一章 参数化设计简介

-1.1 参数化设计简介

--1.1

--模型文件

第二章 Grasshopper简介

-2.1 Grasshopper简介

--2.1

-2.2 Grasshopper界面与基本操作

--2.2

-2.3 Bake与Internalize Data操作

--2.3

-第二章习题--作业

第三章 Grasshopper基本数据类型

-3.1 Math运算器

--3.1.1

-3.2 点与向量

--3.2.1

--3.2.2

-3.3 Grasshopper曲线运算器

--3.3.1

--3.3.2

-3.4 Grasshopper曲面运算器

--3.4.1

--3.4.2

-3.5 案例:水波

--3.5

-3.6 案例:螺旋曲面

--3.6

-第三章习题--作业

第四章 Grasshopper数据结构(一)

-4.1 Grasshopper数据结构基础

--4.1

-4.2 数据流匹配

--4.2

-4.3 Dispatch运算器

--4.3.1

--4.3.2

-4.4 案例:项链

--4.4.1

--4.4.2

--4.4.3

-第四章 Grasshopper数据结构(一)--第四章习题

第五章 Nurbs曲线与曲面建模

-5.1 Nurbs原理简介

--5.1

-5.2 Nurbs建模演示

--5.2

-5.3 Evaluate操作

--5.3

-5.4 由点建立曲线

--5.4

-5.5 Nurbs与向量

--5.5.1

--5.5.2

-5.6 案例:凤凰中心曲线环廊

--5.6.1

--5.6.2

-5.7 案例:鸟巢表皮钢结构

--5.7.1

--5.7.2

-第五章习题(一)--作业

-第五章 Nurbs曲线与曲面建模-- 第五章习题(二)

期中大作业

-期中作业:工艺品设计

--期中作业

第六章 Grasshopper数据结构(二)

-6.1 Grasshopper树状数据结构(1)

--6.1.1

--6.1.2

--6.1.3

-6.2 案例:2016年BIG事务所蛇形画廊

--6.2.1

--6.2.2

-6.3 Grasshopper参数化表皮

--6.3.1

--6.3.2

-6.4 案例:凤凰中心表皮结构

--6.4.1

--6.4.2

-第六章 Grasshopper数据结构(二)--第六章习题

第七章 Grasshopper建模技巧

-7.1 Image Sampler

--7.1.1

--7.1.2

-7.2 案例:望京soho表皮

--7.2

-7.3 Vironoi运算器

--7.3

-7.4 Metaball运算器

--7.4

-7.5 参数化设计在大型项目中的应用案例-“红飘带”景观装置

--7.5

--第七章 Grasshopper建模技巧--第七章习题

第八章 Mesh建模基础

-8.1 Mesh原理

--8.1

-8.2 SubDivision与银河Soho案例

--8.2

-8.3 地形建模

--8.3

-8.4 面板划分:以银河soho为例

--8.4.1

--8.4.2

-第八章 Mesh建模基础--第八章习题

第九章 Kangaroo物理模拟

-9.1 Kangaroo插件简介

--9.1

-9.2 悬链线

--9.2.1

--9.2.2

--9.2.3

--9.2.4

-9.3 张拉膜,充气膜与可受弯面

--9.3.1

--9.3.2

-9.4 CirclePacking

--9.4

-结语

--9.5

-第九章 Kangaroo物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

6.1.1笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。