
1.3 例题2:应用Dynamo绘制y=x2(-5≤x≤5)函数图像
1.解题思路
与例题1不同,y=x2(-5≤x≤5)的函数图像不再是简单的一根直线段。回顾一下初中第一次学习二次函数时,采用“描点”法绘制函数图像,从而找出函数的属性,如图1-14所示。找的点越多,那么函数图像绘制的也就越精确。借用这个思路,用Dynamo绘制一系列的点,并把这些点用光滑的曲线串联起来,便可得到y=x2(-5≤x≤5)的函数图像。

图1-14
2.知识点
● Range
● Sequence
● NurbsCurve. ByPoints
3.例题详解
(1)根据x的取值范围确定一组x值,即数字序列。如果用例题1中的Number(数字)节点,每个点均需要两个Number(数字)节点,因此节点数量较大,且操作相对烦琐。所以接下来要引入一个Dynamo中非常重要的概念:List(列表)。这个节点在后续很多章节以及以后工作中会经常使用。

图1-15
找到List(列表)下的Generate(创建)中的Range(范围)和Sequence(序列)两个节点,如图1-15所示。
Range(范围)节点用于根据数据取值区间和数据间距确定数字序列,如图1-16所示。
Sequence(序列)节点用于根据数字序列的初始值、序列总个数及数据间距确定序列值,如图1-17所示。

图1-16

图1-17
本题中采用Range(范围)节点,很容易就能得到x的数字序列,即y=x2(-5≤x≤5)函数图像“描点”法中选取的11个点的x坐标值,如图1-18所示。

图1-18
(2)根据逻辑运算得到函数y的值。在Math(数学)下的Operators(运算符)里可以找到数学运算符号∗(图1-19),通过简单的数学运算便得到了11个点的y坐标值,如图1-20所示。

图1-19

图1-20
(3)通过节点连接将x、y值分别输入Point.ByCoordinates(通过坐标系生成点)节点中,如图1-21所示。

图1-21
(4)用光滑曲线(样条曲线)连接各点形成最后的函数图像,利用Geometry(几何学)→Curves(线)→NurbsCurve.ByPoints(通过点的样条曲线),如图1-22所示。

图1-22
最后将这一组点串联在一起,便得到y=x2(-5≤x≤5)函数图像,如图1-23所示。

图1-23
保存文件为“y=x2函数.dyn”。
Dynamo中连接线的形式有两种:曲线和多段线。在“视图”→“连接件”→“连接件类型”,用户可以根据需要选择连接线类型,如图1-24所示。

图1-24
当Dynamo中节点程序较多时,容易引起混淆,或是难以清理节点间的逻辑关系。Dynamo中提供了对齐功能,可以自动将一系列的节点按照给定的方式进行对齐。在“编辑”→“对齐所选项”,可以根据需要选择需要的规则,如图1-25所示。

图1-25
X平均值:按照选中节点X方向的平均值位置重排节点。
Y平均值:按照选中节点Y方向的平均值位置重排节点。
左侧:向选中节点中最左侧的节点对齐。
右侧:向选中节点中最右侧的节点对齐。
顶部:向选中节点中最顶部的节点对齐。
底部:向选中节点中最底部的节点对齐。
X分发:将选中节点在X方向上等间距重排。
Y分发:将选中节点在Y方向上等间距重排。
需要注意的是,使用对齐选择功能时,要先框选需要对齐的节点,否则对齐选择功能是灰选状态。
“对齐所选项”下面还有一个命令:清除节点布局,快捷键是Ctrl+L;这个功能可以将程序中所有节点按顺序排布。一般来说,可以将这个功能结合对齐选择功能使用,也就是说先用清除节点布局功能将所有节点整理之后,再用对齐选择功能对部分节点再整理。当节点比较多,程序比较复杂时,自动整理可能会打乱编者的逻辑思路,具体运用看情况而定。
Dynamo还提供了创建组的功能,用户可以根据程序节点的逻辑关系将节点分成不同的组,然后通过创建组功能,将其成组并赋予标题。如图1-26所示,框选需要成组的节点,单击鼠标右键,在弹出的菜单中选择“创建组”。用户可以输入文字作为该节点组的名称,也可以为该节点组选择背景颜色。

图1-26
练习题:绘制y=-2x2+1(-3≤x≤3)函数图像。