grasshopper中点阵生成曲面的算法
这个算法用Surface From Points(点阵生成曲面运算器)来完成的。
运用这个算法要满足三个个条件
- 点阵要是线性数据(Flatten Tree)
- 点阵序号排列必须如下图所示,否则会正常扭曲的曲面
- 生成的曲面的U方向分段数量要与点的数量一致(算法图中的15是Grid的分格数量,点的数量要比分格数量大1个)
完成的曲面

点阵序号显示



grasshopper中点阵生成曲面的算法
这个算法用Surface From Points(点阵生成曲面运算器)来完成的。
运用这个算法要满足三个个条件
完成的曲面

点阵序号显示



grasshopper中点重新排列
在grasshopper里随机产生无序的点非常容易,但是我们在做建筑设计往往要把无序的点组合变成按照我们想要的点组合,这样建筑的表面变化才会随我们的想法而改变。
Populate 2D就可以生成无序随机点,让这生成输入“Sort Along Curve(沿着曲线排列)”,最终输出点就是经过重新排列的了。

但是这个运算器仅仅只支持点的重新排列,如果其实已经存在的非点对象应该怎么处理呢?
我们观察Sort Along Curve这个运算器后面的输出端口有“I”的参数,这个参数就是输出改变后点的地址(Index)的排列顺序,我们只要用“List Item”运算器在重新“读取”一次原有列表就可以重新排列非点对象物体了 http://http://pic-7niu.3dscg.com/sortpoint006.png

grasshopper获取分组数据任何一个分支数据上的元素的方法。
如果我们想获取分组数据任何一个分支数据上的元素,一般有怎么几个方法:
被替换的数据点


用grasshopper制作的软包算法,用这个算法可以制作表皮曲面上鼓包的效果,比如水立方的表皮,沙发或者床背景等。
算法原理:
把曲面分割成多个小四边形面,再将四边形面划分等分点,选择曲面最中心的等分点(假设为点C),把中心等分点C沿着小四边形面的中心法线运动,运动后得到的点数据(假设为点Y)去替换原四边形面的中心等分点C,最终的点阵列重组(Surface FromPoints运算器)为一个曲面。
运算结果:


grasshopper按分组生成模型。
该算法也是比较实用的,通过这个算法可以把一个分组数据按照特定的分组分离出来,从而可以的针对各组进行变化,如下图,网格按照间隔的排列生成不同的形态,当然如果有必要的话也可以随机生成不同的模型。

算法解释:
首先有一串数据(网格点),默认生成的网格点是按一排为一组的数据构成的,这组数据输入“Param Viewer(数据观察运算器)”,Param Viewer可以查看数据的路径构成和所属路径下的Item(元素)数量,它输出的是路径数据。
把路径数据再输入“Dispath”里面,路径数据被Dispatch分流为两路数据(数据分流不单单用dispatch的,也可以用其他的代替)。分流后的数据导入Tree Branch中,Tree Branch 会根据导入的数据路径对原分组数据流(网格点)进行筛选,最终得到的就是按分组的数据流了,没有数据流分支都可以独立操作和修改。
关键字:grasshopper教程,grasshopper算法教程

如何获取grasshopper分组数据的路径
在grasshopper中经常会遇到数据的分组,而且会不停的对数据进行抽取,筛选,再组合等一系列操作,而这个编辑过程如果能借助“路径”的力量,编辑分组数据那肯定是事半功倍的。
路径它记录是每一个分组数据在“大数据”中的位置,数据之间“匹配关系”都跟路径的位置很有关系。
路径的表现:大括号{路径}
如下图:下图是一个树形数据结构,数据第一层路径是{0},第二层数据是{0;0}….{0;4},{0;0}….{0;4}里面分别有一些数据,这些数据的数量都不禁相同。

获取路径数据我们一般使用Param Viewer,数据导入Param Viewer后得到下列的几个数据Structure (Paths = 5)
path {0;0} (N = 4)
path {0;1} (N = 3)
path {0;2} (N = 5)
path {0;3} (N = 2)
path {0;4} (N = 3)

如果需要把已知的物体定位到另一些已知点位(也就是平面)上,最简单的方法就是使用点坐标定向运
算器(orient)
[box type=”info”] 使用方法:先找出定位的点,定位的物体(G)的基准点(比如中心点)连入A端口
,重新定位的目标点连入B端口,非常的简单就完成了,如上图所示[/box]
[intense_image imageurl=”https://pic.yupoo.com/ycds_v/DBfInTiS/15xxAa.jpg” shadow=”1″ /]
orient的单词解释
[intense_image imageurl=”https://pic.yupoo.com/ycds_v/DBfImGlf/B8uni.jpg” shadow=”1″ /]

如果在空间上已知两个点的位置,这样可以拾取这两个点生成贝塞尔曲线,免得又在犀牛编辑曲线了。
用法如上,点的位置基本上是固定的,而我们通过调整这两个的点曲线方向从而画出不同形状的曲线
[intense_image imageurl=”https://pic.yupoo.com/ycds_v/DB8cBEv8/RhcXl.jpg” shadow=”2″ /]

昨天我分享一种数据组合方法《grasshopper自由组合数据方法之一》,这种方法相比我今天介绍的方法之二会稍微复杂一些,但容易理解。
今天介绍的这个方法是使用Path Mapper运算器来改变数据的分组的。
Path Mapper这个运算器是用来改变分组数据的路径,改变数据路径后从而改变数据的组合情况,它的功能非常强大,但原理比较复杂,这个我在以后的文章我再做详细的剖析。
今天使用Path Mapper仅仅只是让一个分组列表的每紧挨的三个数据组分到一个数据组里面,分组的方法如上图所示。
其中Path Mapper运算器是要设定内部参数的,双击Path Mapper运算器后可看到两个栏目,左边的栏目填入{a;b;c}(abc分别代表分组数据的路径,比如本例中的路径是{0;0;0}),右边的栏目填入{a;b;int(c/3)},右边的是改变后的路径情况,意思ab两个路径保持不变,而c的路径变成c/3取整数,c/3取整数相同的结果归为一组。

假设我们需要这样的一个数据组合
[code]有数据列表0,1,2,3………,58,59,要把这个数列分为每三个连续的数字为一个小组数据,既(0,1,2) ;(3,4,5 );………(57,58,59)[/code]
方法:先创建三个等差数列,公差都为2, 而等差数列的数据起始值不同,分别三个数列做分组处理,最后三个数列汇入合并数列运算器(merge)就可以了