Autodesk Revit参数化设计之道:Dynamo实战剖析
上QQ阅读APP看书,第一时间看更新

1.4 例题3:应用Dynamo绘制y=sin(x)(-2π≤x≤2π)函数图像

1.解题思路

顺着前两题的解题思路,本题同样采用“描点”法来绘制y=sin(x)(-2π≤x≤2π)函数图像。首先,在x的取值区间[-2π,2π]上取一组点的x坐标值,然后找到对应x、y坐标值,最后用一条光滑的曲线串联各个点,如图1-27所示。

图1-27

2.知识点

● Math. PI

● Math. DegreesToRadians

● Math. RadiansToDegrees

● Number Slider

3.例题详解

(1)采用Range(范围)节点来构建一组点的x坐标值(方法同例题2)。这里π可以采用3.14的近似值来代替,如果需要精确的值就需要用节点表示;在Math(数学)的Functions(函数)下有一个PI(π常数)节点,即π。用节点Math.PI代替3.14,如图1-28所示。

图1-28

(2)添加Math.Sin(正弦函数)节点。选择Math(数学)→Functions(函数)→Sin(正弦函数)节点,即Sin(x)函数。通过观察可以发现Range(范围)节点输出的是一组弧度数值,而Sin(正弦函数)节点的输入端是角度值,如图1-29所示。

图1-29

此时需要将弧度值转换为角度值,然后再输入Math.Sin(正弦函数)节点。

如何转化?这里讲两种方法。

第一种方法是采用数学公式:弧度=(180/π)°进行转换,这里不再赘述,读者可以自行尝试。

第二种方法是用节点转换。

在Math(数学)的Units(单位)下有两个节点:Math.DegreesToRadians(角度转换为弧度)和Math.RadiansToDegrees(弧度转换为角度),如图1-30所示。

图1-30

本例题采用第二种方法,即用Math.RadiansToDegrees(弧度转换为角度)节点将弧度转换为角度。添加Math.RadiansToDegrees(弧度转换为角度)节点,连接对应关系;将输出结果输入Math.Sin节点,得到一组Sin(x)函数的y坐标值,如图1-31所示。

图1-31

(3)生成函数图像。将x、y坐标对应输入Point.ByCoordinates(通过坐标系生成点)节点,并用NurbsCurve.ByPoints(通过点的样条曲线)节点串联各点,完成y=sin(x)(-2π≤x≤2π)函数图像绘制,如图1-32所示。

图1-32

(4)添加数字滑块节点。为了更好地控制x的取值在这里引入一个新节点:数字滑块。Input(输入)→Basic(基础数据)→Number Slider(数字滑块),如图1-33所示。Number Slider(数字滑块)节点可以规定数字的最小值、最大值以及滑块滑动时的数据间距,通过调整滑块的位置可以获得不同的值。

图1-33

将Number(数字)节点替换为Number Slider(数字滑块)节点,拖动滑块的同时观察函数图像的变化,如图1-34所示。

图1-34

在许多地方都可以使用Number Slider(数字滑块)节点,相比于Number(数字)节点,Number Slider(数字滑块)节点对数据的操作更加灵活。

框选所有节点,按Ctrl+L自动整理节点位置,保存文件为“y=sin(x)函数.dyn”。

练习题绘制y=tan(x)函数图像