文章来源微信公众号:闲渊斋
本文将以日本设计师原研哉设计的某品牌图标为例,阐述以Grasshopper小程序生成极致曲率倒角的方法。
根据前文所述内容,Rhino中曲线的连续性与曲率有关,从低到高依次可分为不连续,G0位置连续,G1相切连续,G2曲率连续,G3曲率变化率连续等。
推广到曲面上,三维曲面之间倒角的顺滑程度亦由连续性决定,如下图。
为获得曲率影响下的倒角图形形态,需采用Grasshopper编写相应程序。
本例中,已知生成该曲率倒角图形的数学表达式为|x|^n+|y|^n=1.
依据数学知识,此函数是绝对值函数和幂函数构成的复合函数(composite function).
首先,分类讨论该函数在n取不同特殊值时的情况。
i) 当n=1时,该函数为|x|+|y|=1.
等价于分段函数
x+y=1(x>0,y>0);
-x+y=0(x<0,y>0);
-x-y=0(x<0,y<0);
x-y=0(x>0,y<0).
以Grasshopper小程序绘制其在第一象限内的图像。其中,Range运算器用以构造函数的定义域,其N端决定了取点个数。Construct Point运算器用于生成指定坐标的点。
ii) 当n=2时,该函数为x^2+y^2=1,即一个单位圆.
移项,得y=√(1-x^2)=(1-x^2)^(1/2).(开平方根运算与二分之一次幂等价)
以Evaluate运算器,可绘制其Expression输入端输入的表达式(在第一象限的)函数图形。
在Grasshopper中,以pow(x,n)函数表示x^n的值。因此,y=√(1-x^2)的表达式等价于pow(1-x^2,1/2).
用ConstructPoint运算器,配对Range运算器生成的每个x值 和 Evaluate运算器所生成 的y值,描点作图。
此时,可观察到图形布点不均匀。
原因如下:
根据复合函数求导的链式法则,得 y'=(1/2)(1-x?)^(-1/2)* (1-x?)'=-x/√(1-x?).
由此可知,由于x的取值均匀地等分函数的定义域。随着曲率变化,x的取值越趋近于1,相邻两点间Δy的值越大。
因此,在Range运算器后添加一个Graph mapper运算器,对x取值的分段手动微调,尽量使点均匀分布。
iii) 当n为任意常数时,函数在第一象限的表达式为y=pow(1-x^n,1/n)(n>0).
根据绝对值函数的性质,通过将第一象限函数的图像进行线性变化,即可得其他三个象限中的函数图像。
negative运算器是将输入的数值取其相反数输出的运算器,如3→-3。
由上到下,分别构造四个象限中(x,y)的取值,分别为(x,y),(-x,y),(x,-y),(-x,-y).
随后,并将输出结果以Merge运算器合并,注意Merge的D2,D4输入端的数据结构须Reverse.
在Merge运算器的输出端,连接 Set(创造集合), Interpolate(内插点曲线), Boundary surface(边线成面)运算器,使图形的边线成面。
完整的Grasshopper小程序如下。
调节与Evaluate运算器n输入端相连的滑块,即可得到对应曲率下的倒角图形。
- BIM学习群
- 微信扫一扫
- 微信公众号
- 微信扫一扫