当前课程知识点:Grasshopper参数化设计与建模 >  第四章 Grasshopper数据结构(一) >  4.3 Dispatch运算器 >  4.3.2

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

4.3.2在线视频

4.3.2

下一节:4.4.1

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

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

在这里我们直接用刚才被替换下来

直接用这个silder去做布尔的判断

用这个做大于等于的判断

其实它不是很严谨

为什么呢因为这里我们得到的数据

其实它到底它的大小的分布是什么样的

我们并不清楚

比如我们可以在display底下

我们可以用这样一个运算器叫bargraph

我们来看一下

我们经过刚才的x坐标

和一个随机数相乘以后

得到的数据分布大概是这样的

也就是说最大值是17最小值是0

那么如果是这样的话我们

如果想做的更严谨

这件事情要想

就这里的程序想编的更严谨的话

我们可以用到一个计算器

在math底下

这个运算器叫remap number

remap number意思是说

在这个运算器这里

我们输入一系列的value 就是一个list

然后在source这个地方

我们输入一个范围

在target这个地方输入另一个范围

我们看到这个图标很形象

就是它会把按照source的范围

和target的范围之间的这种对应关系

一种map的关系

把value map到一个target的范围上去

就是做这样一个map

也许现在说起来比较抽象

我们做一下大家就知道了

我们把value从这儿输入进去

也就是刚才我们这个分布的一些数据

然后这儿需要一个source

这个source是说一般我们会输入

value这些值的一个范围

这里我们会用到一个运算器叫bounds

大家看到这个运算器

它的图标是min和max

所以如果我们把这里的

刚才从这里得到的

就是这个随机数跟x坐标相乘的这个数

从这里输入的话

我们看一下它的这个结果是0到17.34

也就是这里的0到17.34

实际上它把这些value

刚才从这里出来的这些值

它的最小值和最大值求出来了

如果我们把最小值和最大值

从这里给它输入进去

那么这个target呢

我们用缺省值是0到1

我们最后得到的这边输出的这些值呢

就变成从0到1 的分布

不信的话大家可以试一下

我们把这个bargragh

这里输出的这个地方拿过来看一下

它的范围确实变成了从0到1

那么经过remap以后我们就知道

这些数据既然是从0到1

我们把它接过来替换掉

这边我就不需要这个数了

而是可以输入一个1.00

我们常用的silder的这种形式

在一个标准的区间上去对它进行筛选

就是这样一个效果

但是大家可能会说

我对这样一个pattern我还不是特别喜欢

那么如果你不喜欢

你可以利用这里随机数的随机种子

任意给它一个整数

就可以改变这里的pattern

也就是说我们在这里生成的随机数

对这些点进行抽签的时候

对这些点进行加权的时候

我们可以得到不同的pattern

大家选中一个自己喜欢的pattern

就可以往下进行

那么OK

我们在这里得到的这些点

后面是一些扩展的内容
我们在这里得到的这些点

后面是一些扩展的内容

其实我们可以对它做一些表现

让它显得比较有趣

比如说我们基于这些点

可以在每个点上画个小方块

这些小方块我们可以在surface底下

使用plane surface

我们把p给这些点

然后它需要输入x y的范围

我们在这里使用一个

我们用什么值来做y的一个范围呢

我们可以

比如说我们设定一个0.5

然后把它组合成一个domain

因为这里我们的x和y

都是需要是一个范围
因为这里我们的x和y

都是需要是一个范围

我们把0.5从两边输入到这个domain

当然它会组合成从0.5到0.5的这样一个范围

跟这里我们需要的

从负数到正数这种方式还不太一样
跟这里我们需要的

从负数到正数这种方式还不太一样

所以我们在A这里输入一个expression

输入一个公式

这个操作大家注意看

输入一个-x

也就是说对于任意从A这里输入的数据

经过一个加上负号乘上-1的操作

那右边就得到了从-0.5到+0.5

然后再把得到的这个结果输入到p

输入到plane surface这个运算器去

会得到现在这样一个结果

把这个点的预览关掉

这个结果可能我们可以加一点其它的效果

比如说这里不一定是0.5

我们其实可以用这里的y值

我们先用一个number

把这个y的数值接下来

我这里重新做一下

那么相当于我们可以做类似的一个操作

就是把这个y的数值
那么相当于我们可以做类似的一个操作

就是把这个y的数值

我们把它压缩到一个范围

比如从0到0.5之间的一个范围

然后让它变成一个我们这个方块的大小

怎么来做这个操作呢

我们把y的输出对它做一个操作

做一个除法的操作

让它除上这个数值

就是这里的y方向一共有多少格
让它除上这个数值

就是这里的y方向一共有多少格

其实也就是它的最大值

经过相除以后

然后再把这个数从这里输入进去

我们看一下它的结果

这个silder我们就可以不要了

我们在这里看到的这个结果

看起来图案比较有趣

但实际上它是出了问题的

我们看到本来希望

我们的这个方形的平面呢

它是跟y轴坐标是有关系的

但是现在我们看到的结果是

好像是一个非常散乱的关系

而且在右上角

有一个颜色非常深的好多层的块

那么这是什么原因呢

实际上这个原因是说

我们在这里大家看到

在这个Plane Surface的运算器这里

变成了黄色

是因为我们的数据的组合上有问题

我们看到在这里

我们一共有96个surface

然后在这里的X有189个

Y也是189个

也就是出现了前面我们说到的多对多

但是数据量又不一至的情况

那么在这种情况之下

那么会由少的这边96根

189个就是xy这里输入的数据的

前面的96个去跟这96个去对应

然后从第97个开始

189个里面的第97个开始

都去跟这个P里面的第96个去做对应

所以就会导致我们的这个图案上

大家看到在这里

会有一个重叠了非常多的

平面的这样一个结果

那么这种结果其实在你们编程的时候

可能会经常会遇到

当你编程不小心

你就会发现当你的数据组合

出现问题的时候
你就会发现当你的数据组合

出现问题的时候

就会在某个地方会聚集很多的这个数据

在某一个点上聚集很多的数据

这个就是我们上次课讲到的

前面讲到的

当多对多数据又不一致的时候这个结果

而这个结果往往是出错的

所以大家看到这种结果的时候

可能要回想一下

看看你的数据上是不是有问题

那我们这个问题到底在哪儿呢

大家看一下

其实问题在于说

我们从这里接过来的这个点

包括这个Y呢

它是所有的刚才在这个平面范围内

整个的这些189个点
它是所有的刚才在这个平面范围内

整个的这些189个点

而在这边接过来的点呢

实际上是经过dispatch以后的点
而在这边接过来的点呢

实际上是经过dispatch以后的点

也就是说只剩下了

我经过划分以后

满足条件要显示出来那些点

这两边的数据量是不一致的

那么为了解决这个问题

我们需要对这里的点

再做一个

从它开始再做重复刚才的操作

重复哪些操作呢

把它分解成xyz的坐标

然后用这个y坐标去替代这边的

大家看这个是从这里的y过来的

所以我们把这个

经过dispatch以后的点的坐标

然后把它替换过来

替换过来以后大家看到

这个结果基本上就看起来就像是
替换过来以后大家看到

这个结果基本上就看起来就像是

我们想要的这样一个结果了

就是没有再出现对应不上的这些问题

没有再出现大小跟y方向坐标

没关系的这种问题

当然这里出现了一个小的
没关系的这种问题

当然这里出现了一个小的

还有一个问题就是这里

看起来它还是黄色

这个运算器还是黄色

说明它还是有一些没有正常工作的

一些警告的信息
说明它还是有一些没有正常工作的

一些警告的信息

那是为什么呢

实际上是因为我们在这里的x和y呢

它有0的情况 有0 to 0的情况

因为y坐标有0的时候

所以得到了很多的0的大小的范围

所以这里的p呢有些是画不出来的

我们看这里有null

那也就是说是空值

为了解决这个问题呢

我们可以在这里的y值上

我们给它做一个小的调整

我们可以在这里输入一个expression

看看行不行

不行那就是我们在这一侧

输入一个expression

让这个输入一个括号

y加上一个0.5吧

然后再除上3

那看到这里出现红色

是为什么呢

是因为其实在输入一个公式的时候

我们注意在expression里面

在新版的grasshopper里面
我们注意在expression里面

在新版的grasshopper里面

这里自变量都应该是x

如果输入y的话它就不认了

虽然这里的变量标的是y

但是这实际上是
虽然这里的变量标的是y

但是这实际上是

就是它变量在外面显示是y

但是实际上在每一个公式里头

都应该用x

不管是从输入端还是从输出端

这样的话我们这个程序看起来

就这个pattern就没有问题了

我们可以对它的数值再做一些调整

比如说除3 不要除3了

除2看好不好

除2的话就会更大一些

那么包括这个加0.5可以加上1

然后再除上3

让它更饱满一些

当然你还可以让这些块呢

再做一个随机的移动

让它有一个translation

这个T呢

我们给它一个微小的振动

这个振动可以是一个随机数

这个随机数是多少个呢

List Length

我们得到了一个随机数

然后这个随机数让它乘上一个π

应该乘上一个2π

所以在这里我输入一个2

虽然这里看不到任何的变化

但是这个N这儿输入的是2

所以这里是2π

那么我们的生成的一个

从0到1之间的数乘上一个2π以后

得到一个0到2π之间的一个随机数
从0到1之间的数乘上一个2π以后

得到一个0到2π之间的一个随机数

那么这个随机数呢我们就可以生成一个

xyz的一个向量

而这个向量的x方向呢是它的cos

这个角度的cos

y方向呢是它的sin值

然后得到一个vector

然后设定一下这个vector它的大小

在vector里面我们看到有设定

vector length

这里用amplitude来设定一个vector的大小

在这儿用一个0.2的一个slider的一个大小

我们把这里的translation给它

可以把原来这个关掉

让它一个随机的振动

然后大家可以去调整一下前面的

随机的pattern

可以调整一下振动的一个幅度

得到不同的pattern

这个就是我们这里要讲的一个案例

好 总结以下本节的要点

我们在这节学习了

dispatch运算器的做用

也就是在设定的某个条件下

对数据进行分流

我们也使用一个

筛选点阵的案例

对dispatch的运用

进行了进一步的说明

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物理模拟--第九章习题

期末作业

-期末作业: 综合运用

--期末大作业

4.3.2笔记与讨论

也许你还感兴趣的课程:

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