软件小讲堂 | Grasshopper函数图像扩展方法(2)- 函数组合

HELLO小伙伴们,又到了每周一次的软件小讲堂。上期文章我们了解如何利用函数映射的本质,借助自行绘制的曲线来扩展Graph Mapper中的函数类型。(软件小讲堂 | Grasshopper函数图像扩展方法(1)- 曲线映射
那本期教程我们将继续对于函数图像扩展的讲解,了解另外一种扩展函数的方法,函数组合。

STEP 1

简单组合

通过上一篇文章的讲解,大家应该已经知道了Graph Mapper运算器提供了数量众多的函数类型,并且对于每一种函数我们都可以进行手工的修改。

那么如果我们可以将Graph Mapper里面这些不同的函数图像如图Rhino曲线一样进行任意的拼接组合,构成复合函数图像,毋庸置疑就可以极大的丰富现有的函数库。

因此下面了我就先做一个简单的函数图像组合。通过range获得一组等差数列作为函数的输入端,调取Graph Mapper运算器获得两个不同的函数图像。
下面假设在0-0.5的范围内,我想使用上部的函数图像,在0.5-1的范围内我想使用下部图像,获得一个类似于这样的复合函数效果。
那首先需要修改他们各自的x区间。然后连接等差数列。
之后通过比较等差数列同函数临界值的大小,进行函数结果的分流。
合并数据就可以获得复合函数图像对应的映射结果了。我们可以将其用于几何造型的控制。
但是如果各位想进行更为复杂的函数复合的话就需要使用更多的临界值判断和逻辑运算符计算,这样会极大的增加我们的工作量和电池的复杂程度,所以下面就要对于这样一个函数复合工作流程进行优化。

STEP 2

流程优化

首先大家可以发现我们进行判断的临界值其实就是每一个函数图像对应的X区间端头数值,而对于Graph Mapper的X区间,借助C#我们可以非常快速的进行提取。

调入C#运算器,将graph mapper的输出端连接到x端。

将数据结构改为列表。

y连接一个slider表示函数图像的数量。数据类型为单个数据,int整数。

进入C#编程界面。

首先我们先获取一下Graph Mapper运算器对应的类型,因为默认是输出端叫A,使用代码——A = this.Component.Params.Input[0].Sources;

通过panel可以知道Graph Mapper对应的类型是Grasshopper.Kernel.Special.GH_

GraphMapper。了解了类型之后我们先创建一个区间的空列表用于存储数据,列表类型为区间 Interval.代码:List<Interval> n = new List<Interval>();

使用for循环遍历每一个图表,代码:for (int i = 0;i < y;i++)。

因为C#是一种强类型语言,加之后面需要调用GraphMapper一个特定的方法,使用我们之前获取的GraphMapper类型;

Grasshopper.Kernel.Special.GH_GraphMapper

进行变量的类型转换。代码:Grasshopper.Kernel.Special.GH_GraphMapper m =

(Grasshopper.Kernel.Special.GH_GraphMapper)this.Component.Params.Input[0].Sources[i];

使用container方法,获取区间,加入到之前的空domain列表n。

代码:n.Add(new Interval(m.Container.X0, m.Container.X1))

A端连接到panel,大家可以看到三个图像的X区间就出来了

有了区间之后可以使用includes运算器判断我们的输入端数值是否在对应的区间上,获取布尔值。

借助布尔值使用dispatch获取所有需要的函数数值

之后我们就可以把这样一个复合函数用于几何造型的控制了。

STEP 3

扩展测试

借助C#运算器完成修正之后,后续大家如果想再使用更多的函数图像组合的话只需要将新的函数图像连接到C#的X端以及entwine运算器新的端口,再把函数图像的数量改为4即可。

所以通过这种方法大家就能非常方便的调用不同的函数图像进行组合,使其满足自己方案的造型需求。

本次教程说到这就结束了,那各位小伙伴们下周见啦。

作者课程:
(0)

相关推荐

  • 抽象函数与复合函数单调性与奇偶性练习讲义

    高一读者可以参考学习一下,这一块是函数的重点也是难点. 重在理解,掌握里面的方法和技巧.熟能生巧,事实上,这一块没有想象的那么难了.(需要电子版讲义的可以后台留言) 今天的分享就到这里.

  • 【NO.170】讨论复合函数零点问题

    高一的学生做这样的题目还不行,因为会涉及到求导研究函数图像性质问题.高二高三的读者可以尝试一下. 解:这个题目还是不错的,考察的是复合函数零点问题,数形结合.准确画出函数图象,研究出特点才是最主要的. ...

  • 软件小讲堂 | Grasshopper函数图像扩展方法(1)- 曲线映射

    HELLO小伙伴们,又到了每周一次的软件小讲堂.上期两期文章我们了解如何运用Grasshopper完成一个三维线稿树木的制作.(软件小讲堂 | 巧用GH完成三维线稿树木的制作(1)软件小讲堂 |巧用G ...

  • 软件小讲堂 | Grasshopper Player简介

    HELLO小伙伴们,又到了每周一次的软件小讲堂. 随着Rhino7的发布,其相较于Rhino6众多的功能改进不禁让人眼前一亮.诸如SubD,Remesh等新功能给予建筑师造型设计以极大的便利. 并且除 ...

  • 软件小讲堂 | Rhino&Su与Lumion联动方法

    HELLO小伙伴们,又到了每周一次的软件小讲堂. 随着Lumion进入10.0版本,其优秀的渲染质量和远胜于传统渲染器的渲染速度开始吸引着越来越多的建筑师使用它进行效果图的创作. 不过相较于Vray和 ...

  • 软件小讲堂 | Rhino出图没有配景素材该怎么办?(2)-其他方法

    HELLO小伙伴们,又到了每周一次的软件小讲堂. 相较于传统的Su与3dsMax等多边形建模软件,Rhino以其高效的建模效率以及优美的模型成果渐渐成为了大部分设计师心中建模软件的不二选择,然而相较于 ...

  • 软件小讲堂 | 如何在Grasshopper中实现网格均化(1)

    HELLO小伙伴们,又到了每周一次的软件小讲堂. 随着Rhino和GH的普及,Nurbs的建模逻辑以其高效精准的特点渐渐成为建筑建模的主流.但是网格模型在诸如结构有限元计算,细分深化,CFD通风模拟等 ...

  • 软件小讲堂 | Kangaroo动力学模拟与膜结构专题(1)

    Hello~小伙伴们,从今天开始制图教室将在周日开设一个新的板块--软件小讲堂,将一些前沿高端的软件使用方法以及一些有趣好玩的软件操作技巧带给大家.那么今天的第一期我们将来学习一下如何通过kangar ...

  • 软件小讲堂 | Kangaroo动力学模拟与膜结构专题(2)

    Hello~小伙伴们,又到了每周一次的软件小讲堂了,上一次文章中我简单的介绍了一下膜结构的分类同气承膜的做法.那么今天的文章中我们将来一起学习一下如何通过kangaroo的动力学模拟来构建张拉膜造型. ...

  • 软件小讲堂 | DEM数据与场地三维地形获取(1)

    Hello~小伙伴们,又到了每周一次的软件小讲堂啦. 对于建筑,景观和城市设计专业的学生而言,场地三维地形的创建是设计过程中不可忽略的重要环节,无论是依据地形进行建筑的布置还是根据坡度选择不同的景观方 ...

  • 软件小讲堂 | DEM数据与场地三维地形获取(2)

    Hello~小伙伴们,又到了每周一次的软件小讲堂啦. 在上周的教程中我们介绍了如何通过google earth来获取场地的DEM高程数据从而在Rhino中构建三维的场地.那么今天我们将学习第二种方法: ...