![Autodesk Revit参数化设计之道:Dynamo实战剖析](https://wfqqreader-1252317822.image.myqcloud.com/cover/758/43806758/b_43806758.jpg)
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所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/26_02.jpg?sign=1739599441-6njRxAQnR0ranKfHBkFjM9nptlRZBTzg-0-7aa21b8302b02f1ebf2b1e64802c7adb)
图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所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/27_01.jpg?sign=1739599441-sgfKE48tR3jgbXueIxAcDBqLPCPem5rb-0-e08bf4c6a5bc350fe27c7714b56ca5a2)
图1-28
(2)添加Math.Sin(正弦函数)节点。选择Math(数学)→Functions(函数)→Sin(正弦函数)节点,即Sin(x)函数。通过观察可以发现Range(范围)节点输出的是一组弧度数值,而Sin(正弦函数)节点的输入端是角度值,如图1-29所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/27_02.jpg?sign=1739599441-o9ngb7OtkLtVvH2V8lSGWp1LdhrixrMH-0-108a39f494ea407f6645f5a1b32e5a38)
图1-29
此时需要将弧度值转换为角度值,然后再输入Math.Sin(正弦函数)节点。
如何转化?这里讲两种方法。
第一种方法是采用数学公式:弧度=(180/π)°进行转换,这里不再赘述,读者可以自行尝试。
第二种方法是用节点转换。
在Math(数学)的Units(单位)下有两个节点:Math.DegreesToRadians(角度转换为弧度)和Math.RadiansToDegrees(弧度转换为角度),如图1-30所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/28_01.jpg?sign=1739599441-ioNYBkzQiCCAO4ChQJbCpPKGlPAXvjhP-0-c5be86ac351902eb0b0e9d7d85b0cd47)
图1-30
本例题采用第二种方法,即用Math.RadiansToDegrees(弧度转换为角度)节点将弧度转换为角度。添加Math.RadiansToDegrees(弧度转换为角度)节点,连接对应关系;将输出结果输入Math.Sin节点,得到一组Sin(x)函数的y坐标值,如图1-31所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/28_02.jpg?sign=1739599441-2SRwaH0XlLnGLG0080t0r77LayDF1fzU-0-fae817dbdb00ac82d390bff5ab6afba0)
图1-31
(3)生成函数图像。将x、y坐标对应输入Point.ByCoordinates(通过坐标系生成点)节点,并用NurbsCurve.ByPoints(通过点的样条曲线)节点串联各点,完成y=sin(x)(-2π≤x≤2π)函数图像绘制,如图1-32所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/28_03.jpg?sign=1739599441-Yx1JG6Lqx87HdySVJWXv5I3MKIVLGVaM-0-4dd607c608c550e7bbd66df4e774a9cc)
图1-32
(4)添加数字滑块节点。为了更好地控制x的取值在这里引入一个新节点:数字滑块。Input(输入)→Basic(基础数据)→Number Slider(数字滑块),如图1-33所示。Number Slider(数字滑块)节点可以规定数字的最小值、最大值以及滑块滑动时的数据间距,通过调整滑块的位置可以获得不同的值。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/29_01.jpg?sign=1739599441-ybnHIpPzC5BZwZOgqCg28QMmIOkIN59P-0-5e23ef62f25c6c69ac27285eb9e1beb2)
图1-33
将Number(数字)节点替换为Number Slider(数字滑块)节点,拖动滑块的同时观察函数图像的变化,如图1-34所示。
![](https://epubservercos.yuewen.com/8A2F8F/23083818501903406/epubprivate/OEBPS/Images/29_02.jpg?sign=1739599441-tzS1oyaqvo5giVP7shUcsS4xeyficyRy-0-749b8af1ce153881f78bb035c1010e67)
图1-34
在许多地方都可以使用Number Slider(数字滑块)节点,相比于Number(数字)节点,Number Slider(数字滑块)节点对数据的操作更加灵活。
框选所有节点,按Ctrl+L自动整理节点位置,保存文件为“y=sin(x)函数.dyn”。
练习题:绘制y=tan(x)函数图像。