软件小讲堂 | Grasshopper函数图像扩展方法(1)- 曲线映射
STEP 1
对于参数化造型控制而已,函数图像是一个不可或缺的造型手法。它可以借助不同的数学函数帮助我们实现造型的有规律非线性变换。
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一样。只要改变控制点,就可以进行映射关系的调整,获取不同的函数数值,用于造型的修改。
本次教程说到这就结束了,那各位小伙伴们下周见啦。