当前课程知识点:Grasshopper参数化设计与建模 > 第九章 Kangaroo物理模拟 > 9.4 CirclePacking > 9.4
返回《Grasshopper参数化设计与建模》慕课在线视频课程列表
返回《Grasshopper参数化设计与建模》慕课在线视频列表
这一节讲解了一个案例
CirclePacking
最后再给大家介绍一个
使用kangaroo来实现
circlepacking的案例
所谓circlepaking
就是用很多的圆在一个表面上进行堆积
尽量紧密地让这些圆组合在一起
形成特殊的这种图案
我们来到rhino
和grasshopper的界面
我在这里已经做了一个曲面的形态
然后把它拿到grasshopper里面来
我们可以使用vector里面的
populate geometry
在上面生成若干这个随机分布的点
我们可以在kangaroo2里头
找到这个运算器
它是什么
它可以让很多的object
很多的物体
按照一定的半径
一定的radius
相互堆积在一起
可以做这样的一种物理的模拟
实际上是一种碰撞模拟的效果
我们把这里的点给它输入到object上面去
然后这里有一个缺省的值是1
我们先不修改它
然后把这些点
给它吸附到一个表面上去
我们这里用基础的曲面做mesh
然后把这些点输入过去
注意这里需要输入的是一个mesh
它实际上
这里的surface做了一个强制类型转换
我们下面把bouncysolver挪过来
我们把这两个物体
这两个goal object
都输入到bouncysolver里面去
现在我们如果在这里的count
点的数量
我们可以增加到一个200的数量
可以把这个slider改一下
它的上限改到200
不要太多
然后用一个botton
来重启这样一个模拟的过程
我们看一下这些点已经开始有些运动
我们可以把这里的半径给它增加一点
让这些点更密集
我们看到
点就会在曲面上
自己去找位置、找平衡
把前面的输入关掉
这个曲面可以预览打开
我们看一下
这样一个优化的结果
在右边
我们可以输入
利用这里的输出
这些点的输出
去找一下它们在曲面上相应的位置
用cp
这是我们的surface
这边是点
找到最近点
找到曲面上的最近点
然后在这里用evaluate surface的方法
找到曲面上的
其实我们可以在这里双击得到一个节点
然后就把这个数据分开
然后把uv坐标接上去
点所对应的曲面上的uv坐标接上去
这样这边就得到了相应的点
它的法线方向和一些切线的方向
我们在这里construct一个plane
用这里的点作为原点
然后u和v分别作为x和y
然后在这里再画上一个circle
大家看到这是现在的一个效果
我们可以把这边输入的点的半径接上来
我们就会看到实际的结果是
我们在这个曲面上分布了200个圆
这些圆的半径大概是1.68的样子
是一个满铺的状态
这就是我们说的circlepacking的效果
我们可以用一个toggle
先暂停一下这样一个模拟
我们先让它随机地生成点
reset以后
然后我们启动circlepacking的模拟
就得到这样的效果
当然
我们也可以去生成一系列随机的半径
我们可以用random
运算器来生成200个随机数
这里的半径的范围我们可以用
一个domain把它构造出来
用两个slider去构造它的
半径的下限和上限
这时候的下限可以是一个比较小的数
上限可以稍微大一些
构造出来的半径去替换这里的radius
同样替换右边画圈用的半径
现在是这样一个效果
我们reset一下
先把模拟暂停下来
然后reset一下
大家看到是这样一种杂乱的分布
然后我们让它去运转
这个程序就自动地生成了
这样一种分布
大家现在也许觉得还不够紧密
就可以去增加这里半径的大小
再大一点这些圆就会有些重叠
再小一点它们就会是一种相对松散的状态
这时候我们可以把其他的预览都关掉
然后看一下
这样一个circlepacking在曲面上
满铺大小不同的圆的效果
总结一下这个案例的步骤
首先使用Populate Geometry运算器
在曲面上生成
分布均匀的点
接下来
使用Kangroo中的Collider和OnMesh
将点约束在曲面上
第三步
通过Kangroo的动态模拟
生成曲面上满铺的圆环
最后
我们尝试添加随机半径
调整CirclePacking的效果
-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物理模拟--第九章习题
-期末作业: 综合运用
--期末大作业