标签: grasshopper

  • grasshopper中让你意想不到的取整数方法

    grasshopper中让你意想不到的取整数方法

    在grasshopper中想要割舍方法取得整数位是比较麻烦的,以前我是看过某些论坛用计算公式的方法取得数值的整数位,但是那些都太麻烦也太难以理解了。

    今天我给大家带来一种最最最简单的方式就能获得数字的整数位。

    算法大家就看看上面的算法就可以了。

    基本上的思路也很简单的

    大家可以看看我下面列举这条方程式:

    设定区整数位的数字为X,

    X+0.5=Y。

    Grasshopper思维:X加上0.5,X后面的小数位会发生变化,比如X=2.34,加上0.5后是Y=2.84

    Y再四舍五入取整

    Y=2.84,根据Grasshopper默认的取整规则是四舍五入的,那Y四舍五入后Y=3

    Y-1=Z,Z就是我们要的整数值了。

    Y=3,Y再减去1,就可以得到最终的整数位2了。

    那我们再那几个数字代入X

    比如4.57

    4.57+0,5=5.07

    四舍五入等于5

    5-1=4获得小数点前面的整数。

    Grasshopper算法.png

    关键字:Grasshopper教程,Grasshopper算法

  • 我自己开发的一个筛选数据的Grasshopper小插件(猫头鹰筛选插件)

    我自己开发的一个筛选数据的Grasshopper小插件(猫头鹰筛选插件)

    我自己开发的一个筛选数据的Grasshopper小插件,使用的方法如上图所示,第一端口连接要筛选的物体,其他端口根据需要连接数据就好了。

    不过这个插件还不是太完善,如分组数量过多会产生特别多无用的数据,这些数据会把前面的数据覆盖掉,后面找个时间再更新吧。

    下图是滑动一个数据控制条产生不同的效果小动画。

    下载地址:猫头鹰筛选3dscg.com.zip

  • Grasshopper时间运算器Timer的使用教程

    Grasshopper时间运算器Timer的使用教程

    Grasshopper时间运算器Timer的使用教程

    今天介绍Timer运算器,Timer运算器是一个时间计量工具,它会按照运算器设置时间间隔运行发送数据,发送的数据经过“Data Recorder”(数据记录仪)把每一个时间间隔的数据记录并输出。

    简单运算用法看上图,把输出值赋予到“累加运算器”上得到一个按时间计量的数字。

    对Timer运算器点击右键的Interval参数还能设定时间间隔

    blob.png

    利用Timer运算器还能做一些简单的动画,比如下面的这个。

    把输出的数据连入Z高度方向,小球就按Z轴方向移动,算法如下图

    blob.png

    关键字:Grasshopper教程、Grasshopper运算器教学

  • 瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    瑞士再保险公司总部大楼(英国小黄瓜大楼)grasshopper算法教程

    1.jpg

    24根主钢架螺旋形状排列

    658_2.jpg

    分享个grasshopper的算法,算法下载链接:http://pan.baidu.com/s/1bpHVPRT

    密码:r9tg

    算法预览.png

    其中猫头鹰是自己创建的小插件,其插件内部算法是紫色背景的现实的电池图

    制作插件教程点击打开:GRASSHOPPER封装教程

    blob.png

  • grasshopper开放曲面斜向连线

    grasshopper开放曲面斜向连线

    今天,我们来研究这个:

    于是乎,很多对GH有一定了解的朋友一定会说:“小菜一碟”

    没错,这是一盘小菜,不过有好多碟,好多种思路,挺有趣的一道数学题。

    作者收集几位同学的思路与大家一同分享,同时希望能拓宽同学们的思路,欢迎大家分享你们的想法!

    在此之前,我们先弄清楚Divide Surface这个运算器(就这个:

    注意我们输入的UV值,反应的是对面“分成多少块”,与UV方向上的点数是X+1的关系

    好啦,感受一下就是啦~自己试试就知道啦~~

    思路一:递减

    1,我们来观察一下当UV数值相差1及相等时的数据特点:

    且不要管这一连串的算法,我们将面按U=5,V=4分割好,并把获取到的点反转一下再压扁(反转与否由你决定),得到这么面上这么一组数据

    2,我们可以发现从0端开始的对角位置开始,往左右两个方向前进,这些连线的连接点数是在递减的,

    3,在这个思路下,我们可以将左右两边筛选出来进行各自单独的连线:

    (Divide Surface输入端的UV是分别附加了X-1,Series星端中除了左下角两个是X-1,外其余星端都是X+1)

    都怪小编截图没作好—_—!大家实际操作一下,其实就懂了~

    4,我们可以看到Polyline这个运算器是橙色的,说明有问题,问题很简单就是有一些组里只有一个点,运算后是nuLL空集。

    与此同时,这种思路是有局限性的,当UV不相等且相差大于1时,会出现错误(图中白色箭头处,出现了两条连接点相同的线),

    递减的思路在这里就不可以实现了,随着UV间距离拉大,这种相同连接点的线将随之增加

    5,也就是这种算法是有局限性的,但是算法并无好坏,每一种思路都有其存在的合理性,或许在另外一个算法中起到关键作用

    思路二:偏移

    1,大家是不是觉得上面的案例有点像广州塔,我们就试试看呗

    2,同样是看数据,不看算法。好吧,相信大家看出端倪了,我们想作的偏移实际与广州塔的偏移是有差别的,这里的偏移是01010……(会懂的),广州塔的偏移是11111且并不舍弃数据的,我们作了舍弃数据的作法在后面连线时就不能按广州塔的作法,舍弃数据对数据结构的破坏对我们接下来进行操作带来不少的麻烦,但是我们从这里也可以看出封闭面与开放面在数据处理的那细微又巨大的不同

    思路三:单纯的点对点连接

    1,一个本来看起来简答的东西被我们这么一折腾好像又变复杂了,然而简单往往是一个算法制胜的关键。那么,我们就先静下心来,观察一下

    这当中的数据特点。我们以单纯的“点对点”连接思路看,我们需要作的仅仅是将点筛选成两组,然后点对点连线

    2,筛选出这么两组点

    3,最后,连线。没错结束啦(星号都是X+1)

    4,这是针对开放面,斜向连线,较佳的算法,回归到数据本身,同时纯粹的找点连线的思路清晰明朗

  • grasshopper曲线函数运算器-点阵生成曲面

    grasshopper曲线函数运算器-点阵生成曲面

    grasshopper曲线函数运算器-点阵生成曲面

    主要运用到的运算器是曲线函数,曲线函数生成数据导入点运算器里生成点,最后用点阵曲面生成运算器形成曲面。

    效果

    关键字:grasshopper运算器,曲线函数运算器,grasshopper教程

  • grasshopper封装教程

    grasshopper封装教程

    grasshopper封装教程

    对于一些比较复杂的算法要重复调用的话使用起来并不方便,每次调用都是一堆的电池网,因此我们在调用常用算法的时候有必要对算法做封装处理。

    先看看原先的算法文件,下图我们看到很多个数值滑竿是可以调整数据的,这些数据接口是就是我们要预留的数据输入接口

    选择所有的运算器点击鼠标中键或者空格键选择封装(一个箱子图标)如下图,但是我们看到箱子两端都是断裂的,说明封装时没有预留数据接口,不要紧。接下来双击鼠标进入封装算法内部

    在grasshopper第一页的Util中看到下图两个一黑一白两个箭头,这两一个输入接口,一个是输出接口,把他们两放到界面上。

    如下图,把所有的输入端都替换为输入接口,把最后的替换为输出接口,替换完成后点击左上角点击保存退出。

    封装后

    把所有接口修改为可辨认的名称,以便以后使用。

    本期算法文件

    fengzhuang.gh

    ​关键字:grasshopper教程,grasshopper教学,grasshopper算法

     

  • grasshopper空间上随机生成不同方向的圆圈或平面

    grasshopper空间上随机生成不同方向的圆圈或平面

    空间上随机生成不同方向的圆圈或平面空间上随机生成不同方向的圆圈或平面

    算法如上图所示

    算法详解

    创建一个点,在点上创建一个中心点盒子(Center box)在中心点盒子上创建随机点,随机点运算器是Poplate3D,Populate3D输出一些点坐标,当这些点的作品被输入Plane Normal的时候回自动转化为向量(Vector),Plane Normal最终生成就是平面了,最后在平面上绘制圆圈。

    效果图

    关键字,grasshopper教程,grasshopper算法,grasshopper教学

  • grasshopper数据列表位置调整算法-数据混合

    grasshopper数据列表位置调整算法-数据混合

    今天写一个有趣的grasshopper小算法,是关于数据列表位置调整的。

    算法描述:已知数列“0,1,2,3,4,5,6,7,8,9”,经过算法调整之后得到一个新的数列“1,0,3,2,5,4,7,6,9,8”。

    算法详解:已知数列用Series得到,把“0,1,2,3,4,5,6,7,8,9”分流(Dispath)为“0,2,4,6,8”和“1,3,5,7,9”两个数列。用Weave混合两个数列,Weave运算器“0”和“1”端口输入列表,P端口输入两个整数但是只能是0或者1,0和1顺序决定了混合后新列表的数字排序。算法如上图

  • grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    grasshopper渐变的并且随机不等数量边数的多边形阵列算法

    案例描述

    一个有渐变机理的多边形阵列,自下而上多边形的边数逐渐增加形成变化的机理。


    算法

    1. 建立网格点
    2. 在网格点上生成多边形
    3. 多边形的段数(Segment)端口输入随机的数值
    4. 随机数值要重新按最小到最大排列,使用的运算器是Sort List

    效果图

    关于Sort List

    Sort List是做数据列表索引位置重排的运算器

    默认情况的是把数据按从小到大的顺序排列,它的A端口默认情况的是空参数的,但也能执行运算器,如果要自己定义排列顺序,则可以在A端口重新输入一个线性的等差数列,这个输入数列可以用Serise生成,这样重新生成的数据位置就是我们自定义的列表顺序了。

    关键字:grasshopper算法,grasshopper教程,草蜢教程

    grasshopper算法文件下载

    sort_list.gh