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

HELLO小伙伴们,又到了每周一次的软件小讲堂。上期两期文章我们了解如何运用Grasshopper完成一个三维线稿树木的制作。(软件小讲堂 | 巧用GH完成三维线稿树木的制作(1)软件小讲堂 |巧用GH完成三维线稿树木的制作(2)
那本期教程我们将继续对于Grasshopper的讲解,教会大家如何运用不同的方法对于GH自带的函数图像进行扩展

STEP 1

初识函数图像

对于参数化造型控制而已,函数图像是一个不可或缺的造型手法。它可以借助不同的数学函数帮助我们实现造型的有规律非线性变换

而在GH中,函数图像的使用主要是通过Graph Mapper来进行设置的。
在运算器上点击右键就可以选择不同的预设函数。
选择好了之后还可以通过拖拽控制点来修改函数图像。
从而起到控制造型变换的目的。
虽然Graph Mapper运算器提供了数量众多的函数类型,并且对于每一种函数我们都可以进行手工的修改,但是当大家想运用函数图像完成一些更为复杂和可控的造型变换的时候,可能现有的函数并没有办法满足各位的需求。所以下面我们就来聊一下如何运用不同的方法手工进行函数图像的扩展。

STEP 2

函数图像的本质

但在讲解方法之前,首先大家要先知道函数图像的本质到底是什么。以我个人的理解,函数图像本质上是一个图像曲线控制的映射关系

比如我使用Graph Mapper获取一个贝塞尔曲线。通过range获取一组数列。

将这组数列作为输入端链接到函数图像上。链接完之后在graph mapper中就出现了一排红色的线,这些线所对应的X轴坐标其实就是我们的输入端参数。

而Graph Mapper的输出端其实就是这些红线与函数图像交点所对应的Y坐标。因为当前函数图像是一个45度角的直线,每一个交点的X坐标和Y坐标相同,所以输出端的结果和输入端完全相同。

但是只要我改变曲线的造型,也就是改变X值和Y值的映射关系,输出端的结果就可以依据我们的需要进行改变。

那既然函数图像的本质就是一个曲线控制的映射关系,这也就意味着只要我们有一组输入端参数一个自行绘制的曲线(自行设置的映射关系),通过求交点对应的Y值,就可以实现graph mapper运算器的作用了。

STEP 3

映射创建

我们在Rhino里面随便绘制一根曲线,作为映射关系。

将其投影到xz平面上,

生成点(相当于Graph Mapper)的输入端参数。

从这些点上绘制Y方向的线,求交点

求出交点对应的Y坐标。

到此为止其实基本的曲线映射我们就已经完成了,但是为了让我们自制的函数图像用起来和graph mapper中的函数图像更像,在这可以稍微再做些调整。

比如用于生成Y方向线的点,我们使用evaluate curve进行获取,这样类似于Graph Mapper-都可以使用range作为输入端。

同样输出端结果我们也把它映射到0-1的范围和graph mapper保持一致。

打包一下

创建用户物件。

如果想以X轴作为基准轴,我们还可以把映射区间做一个调整。

这样我们的函数图像就可Graph Mapper一样。只要改变控制点,就可以进行映射关系的调整,获取不同的函数数值,用于造型的修改。

因为曲线可以任意的绘制,所有通过这种方法大家就能无限的扩展可以调用的函数图像类型了。

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

作者课程:

(0)

相关推荐