当前课程知识点:Grasshopper参数化设计与建模 > 第三章 Grasshopper基本数据类型 > 3.5 案例:水波 > 3.5
返回《Grasshopper参数化设计与建模》慕课在线视频课程列表
返回《Grasshopper参数化设计与建模》慕课在线视频列表
本节我们将介绍一个案例
环形水面波纹的这样一个案例
经过前面的教学呢我们学到了
关于grasshopper的一些
基本的建模的技术
关于grasshopper的一些
基本的建模的技术
可以开始做一点
相对完整的设计案例
下面我就教大家做一个水波
就是水面的波纹
做水波我们可能先要
想到的就是要
怎样来生成一条波纹的曲线
一般来讲我们会使用正弦曲线
或者余弦曲线
这样我们就先找到
余弦cosine curve
cos我们需要输入一个x
也就是输入它的基本的量
然后得到一个y的值
那么我们如果要是在这边输入x的时候
因为需要生成一条cos曲线
所以需要输入一系列的点
因为需要生成一条cos曲线
所以需要输入一系列的点
然后把这些点连接在一起
得到这个curve
我们现在用一个叫做range
用一个叫做range的component
来生成一系列的点
这个点是什么我们看一下
它是从0到1之间的十一个数
从0 0.1 0.2一直到0.9到1
如果把这个数输入到x里去
就会得到y的值
那么如果我们说想
变成一条cos曲线的话
我们可以用一个xyz
叫construct point
这个也是我们常用的
一个基本的运算器
把x给它 把y接上去
其实我们应该把它接到那个上
我们看一下
在原点附近就生成了这样一条
比较短的曲线
所以这就是cos的一部分
还不是曲线是一系列的点
我们把它聚焦到这些点上
把range的视图聚焦到这些点上
我们可以把这些点连在一起
用前面学过的curve底下的
interpolate
这样就得到了cos曲线的一部分
它的横坐标是x
纵坐标z方向是cosx
也就是这边的y值
如果我们现在增加这个range
他的输入是domain
一个范围从0到1
以及0到1之间多少份
现在说分十份
所以它就得到了十一个数
从0到1之间分成十段
如果想换一个比较长的曲线
我们可以一个是可以增大
domain的范围
一个是增加取点的数量
我们对domain做一个
construct domain
或者直接输入domain 范围
我们看到一个叫construct domain
这个图标也很形象
我们输入左边的起点和右边的终点
就会得到一个范围
我们输入左边的起点和右边的终点
就会得到一个范围
它的缺省值这是0这是1
我们可以给它一个比较大的量
比如说10.00
我们可以给它一个比较大的量
比如说10.00
好这样我们就会在0到10之间取十个数
看下这个结果就变成这样
好这样我们就会在0到10之间取十个数
看下这个结果就变成这样
就很像一条cos曲线
我们也可以在这边增加steps
比如说100
用更多的点去描绘这条曲线
可以增加或者减少点
当点比较少的时候这条线就不太精确
那这个domain可以给它加大一点
还是100.00
这样我们得到了基本水波纹
所需要的基本形态
那么为了要得到水波纹呢
其实我们想做的是
假如一块石头从这儿扔下去
那么得到的这个波纹呢
会一圈一圈地展开
所以现在要做的事情是
把一圈圈的波纹做出来
这个怎么来做呢
我们前面学过的circle
那么我们需要给它一个基本的坐标系
以及一个半径
在这里只要把
一个数据的关系转换一下
也就是在这里的x和z的
关系转换一下
我们需要构造的是
一个围绕原点的一圈一圈的水波纹
但是它要有高低
所以在这里构造一个圆的圆心
这个圆心就是
我们构造一个xyz的点
这个点它的x坐标始终是0
我们构造一个xyz的点
这个点它的x坐标始终是0
但是y坐标呢
跟这边的这个点是一致的
所以把它给它
然后这是我们的圆心
同时我们需要一个半径
这个半径是什么
其实它就是x
或者说这个方向的值
我们把它接上去
大家一看就明白
这样的话我们就得到了
水波纹的效果
这个数据的关系大家可以回去再想想
好那么现在都是一些线
这些水波纹都是一些线
当我们想把它连成一个曲面的时候
我们可以用loft
我直接把这些线给它
我们就得到了一个loft生成的曲面
注意在这里这个loft生成的曲面
它是是黄色的
为什么呢它出现一点小问题
是因为在这里生成的这些curve
第一条curve叫做invalid curve
为什么它是invalid curve呢
是因为我们的第一个点
它的半径是零
所以实际上不存在这条curve
半径是0的圆其实是没有curve的
为了避免这个问题呢做一点小的调整
就是在一开始生成
我们算cos值的时候
输入的横坐标是从零开始
我们在这儿给它输入一个很小的数
我们可以用panel
0.01 就是说把起点变成0.01
以后这边就正常显示了就没有问题了
好 当我们有了这样一个水波的效果以后
可以把前面输入的这些预览都把它关掉
然后得到这个水波的这样一种效果
当然我想可能很多人都会想
其实这个水波并不完美
因这个水波在所有地方都是一样高的
其实我们希望的是一个
在水面上看到的那种水波
可能中间会高一点边上会低一点
那么为了达到这种效果
我们就需要对水波它的振幅
在不同位置做一个调整
怎么来做这样的调整呢
我们实际上需要对z方向的
就是这里的构造的这个z值做一个调整
那么基本的来讲
Cos算出来的值我们是不能去调整的
但是我们可以给它乘上一个系数
这个系数是多少呢
这里我们可以用我特别喜欢用的
叫Graph Mapper
Graph Mapper我们在前面提到过
但是没有使用过
好 Graph Mapper当我们把这里的
在这边输入一个数据
那么它就会从函数图像上
读出一个相应的数据从右边输出出来
比如说当我们输入一个Linear
然后我们把它调整成这样的形状的时候
我们可以说
它就会生成一个
左边高右边低的一个函数
那么这个函数如果我们把它跟这边的
我们说振幅乘在一起的话
两个相乘的话
那么实际上就起到了
对波形进行调整的一个作用
当然这里我们直接做还不行
这里我们需要考虑的问题是
Graph Mapper在这里显示
它右下角显示0到1
是说它的x输入是从0到1
右边显示0到1呢是它的输出
Y是这边输出的范围是0到1
所以我们需要对输入的范围
数据输入的范围做一个标准化
也就是让它都压缩到0到1之间
我们看到在这边我们的数据
输入的时候是0.01到29
我们要对这个数据进行一个压缩
所以会用到一个工具
我们在Maths底下有Remap Numbers
Remap Numbers
它的作用是把一系列的值
这个值是0到29,
这个0到29是从这里来的
从这个范围里来的
然后要根据它的范围
压缩到另外一个范围上去
我们先把这些数据
它的基本的范围求出来
这个范围是叫Bounds
当我们输入很多个数给它的时候
右边会输出它的最小值和最大值
构成的一个范围
这里是0.01到29.28
我们把这样一个范围给它
给这个Source
那么同时呢这边有个缺省值
就是它的输出范围是0到1
那么这样我们就会得到
右边跟这个v是完全对应的
但是呢经过压缩的范围经过压缩
等比例压缩的一个数据
这个数据就可以输入到
Graph Mapper里头去
进行计算了
当然这个地方我们可以多说一点
就是我们可以来对比一下两边的数据
是这里
这是我们从v这输入的数据
以及我们从r这得到的这个数据
这两个数据实际上是一一对应
但是经过了一个等比例的压缩
或者我们可以用Display底下的
用折线图的方式来显示一下我们的数据
这个数据因为是一个等比例间隔的数据
这个不太好这个看不太出来我们换一个
我们这不显示了 把这段切掉
好
那么这是一个相互对应的一个数据的关系
那么在右边我们就会得到
相应的在0到1的范围之内
取到的这个y的值
好
我们把这样一个经过压缩的这样一个比例
挪一下
把经过压缩的比例
和cos函数得到的这个值乘在一起
乘法 输入一个星号
把它跟它组合在一起以后变成我们的z
大家看到那起到的作用就是
我们对这个水波进行了压缩
它在中心的时候比较高
在边上比较低
这是一个比较理想的水波的一个状态
当然实际上你还可以做更有趣的事
就是为什么我在这用Graph Mapper呢
因为Graph Mapper
可以提供更有趣的一种对应关系
比如说我们把它改成贝塞尔曲线
那么贝塞尔曲线你看到
现在是右边高左边低
也就是说中心比较低
边缘反倒比较高
这 是水波在向外扩散的时候
中间已经比较平静
但边上又比较高的一种状态
当然我们还可以对它做这样的调整
就是我们让它中心点也不是最高
但是在中间的部分比较高
所以我们就可以得到
各种有趣的水波的形态
根据 你的喜好 根据你的愿望
来生成这个水波
现在这个水波有点矮 有点矮
大家也可以给这个水波再加上一点
乘上一个系数
比如说现在这种状态我们可以在
还是乘法 乘上一个5
然后把乘完以后的这个数据给它
我们再调整一下这个水波的振幅
这个大家可以根据你的设计来发展
好 这个就是水波的案例
我们总结以下
这个案例的思路
第一步我们使用loft生成曲面
生成一条波纹线
接下来我们使用circle
来生成围绕原点的水波纹
并使用loft生成曲面
第三步呢
我们使用graph mapper
调整水波纹的振幅
我们使用graph mapper
调整水波纹的振幅
使它看起来更加自然
-1.1 参数化设计简介
--1.1
--模型文件
-2.1 Grasshopper简介
--2.1
-2.2 Grasshopper界面与基本操作
--2.2
-2.3 Bake与Internalize Data操作
--2.3
-第二章习题--作业
-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
-第三章习题--作业
-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数据结构(一)--第四章习题
-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曲线与曲面建模-- 第五章习题(二)
-期中作业:工艺品设计
--期中作业
-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数据结构(二)--第六章习题
-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建模技巧--第七章习题
-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建模基础--第八章习题
-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物理模拟--第九章习题
-期末作业: 综合运用
--期末大作业