下载app免费领取会员
该样例文件主要是介绍Dynamo中与Math相关的应用,Dynamo中的数学可以通过公式节点“Formula”、代码块“Code Block”或者节点库中与数学相关的节点完成。
10、这个例子以点的网格为起点,计算点的Z坐标,然后生成曲面。
10.1 通过节点Code Block输入公式“-10..10..#20”,生成一个从-10到10间距相等、项数为20的列表。
10.2 通过节点Point.ByCoordinates生成点图元,连缀方式为叉积。
10.3 将生成的点列表经过节点Flatten展平以后,获取点的X分量和点的Y分量。
10.4 通过节点Math.Pow求步骤10.3中X分量的二次方和Y分量的二次方,然后用一个数字滑块计算第三个二次方的结果。
10.5 做两个加法运算,获得三个二次方结果的和。然后通过节点Math.Sqrt计算总和的平方根。由于X分量的二次方与Y分量的二次方都有不同的数值,因此它们的和也是不同的。
10.6 节点Math.RadiansToDegrees可以将以弧度为单位的角度转化为以度为单位的角度,然后通过节点Math.Sin计算正弦值。最后正弦值的结果除以弧度后乘以一个系数,这个系数由一个滑块控制。
10.7 通过节点Point.ByCoordinates生成点图元,点坐标的X分量与Y分量和之前的点一样,点坐标的Z分量为步骤10.6中计算的结果。
10.8 有了点的列表之后,将大列表用节点List.Chop拆分为20个子列表,拆分后子列表的项数为步骤10.2中子列表的数量。
10.9 经过节点NurbsCurve.ByPoints连线,可以直观地查看到上一步子列表中点的存放规律,同一个子列表中的点生成一条样条曲线,共20条。
10.10 最后用节点Surface.ByLoft将生成的样条曲线通过融合命令生成曲面。
10.11 调整其中的两个滑块,可以调整整个图形的形状。
11、通过Python Script完成相同的效果。
11.1 打开节点Python Script,在第5行将与数学相关的模块导入。
11.2 第8行至第11行创建四个参数amp、x、y和c,分别对应着四个输入端IN[0]、IN[1]、IN[2]和IN[3]。
11.3 第14行创建一个空的列表,名称为z。
11.4 第17行创建一个for循环。参数x是一个列表,该列表共有20个索引项,因此将会循环20次。
11.5 第18行至第21行是循环的主体,整个过程与步骤10中相关的节点功能一致。
11.6 第24行将第21行的结果放进列表z,直到循环结束。
11.7 第27行将整个python Script的输出结果定义为z,因此这个节点输出的结果为列表z中的数值。
12、通过节点Formula完成相同的效果。
12.1 整个流程与普通节点的流程一致,不同点是节点Formula应用的函数是属于外部函数,并不是Dynamo内部的函数,因此将角度处理为弧度。
12.2 在节点Formula中输入公式“A * sin( sqrt( pow(x,2) + pow(y,2) + pow(c,2) ) ) / sqrt( pow(x,2) + pow(y,2) + pow(c,2) )”。
13、通过节点Code Block完成相同的效果。
13.1 节点Code Block调用的函数与Dynamo自带的函数是一样的,因此Code Block中的表达与普通节点是一样的,因此运用的函数名称与Dynamo中自带的函数相匹配。
13.2 节点Code Block中依次输入四行内容。
13.3 第一行“ sum = Math.Pow(x,2) + Math.Pow(y,2) + Math.Pow(c,2);”。
13.4 第二行“num1 = Math.Sqrt(sum);”取平方根。
13.5 第三行“num2 = Math.Sin( Math.RadiansToDegrees(num1) );”将弧度转化为度后计算正弦值。
13.6 第四行“A * num2 / num1;”。这四行内容中应用到的节点名称与普通节点的名称是一样的,但是能够添加参数,让表达更灵活、更简洁。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。