美文网首页
Dynamo-CodeBlock手册-应用篇

Dynamo-CodeBlock手册-应用篇

作者: DavidShawn | 来源:发表于2020-12-25 12:35 被阅读0次

点的应用

宇宙从奇点中诞生,万物始于一。让我们从最简单的入手。

创建一个点

在三维空间中,有x,y,z三个维度,确定了三个维度的值,我们就得到了一个确定的点。


一个点

创建多个点

那么,如何创建多个点呢?简单地复制Point.ByCoordinates肯定不可取。
还记得如何构建一个数组吗?
0..5..#10,这段数组从0开始,到5结束,一共有10个数据。

创建数组
如果能把这组数赋值给点的x值,那么我们应该能得到沿x排布的10个点。
沿x轴分布的点

利用三角函数生成曲线

还记得三角函数吗?让我们简单回顾一下初中数学知识。
Sin30°=1/2;Sin45°=(√2)/2;Sin60°=(√3)/2;Sin90°=1 …………
当我们把三角函数用几何的方式表达时,它们呈现出一些特定的图形。
比如,我们用x代表度数,y代表函数值。随着x的变化,y也会变化,它们之间的变化不是均匀分布的,而是带有特定的节奏。

正弦函数曲线
Dynamo中可以使用三角函数,在Math类中。
Math.Sin
于是,刚才我们创建的多个点,就可以改造一下。
正弦函数曲线
x是0到360线性分布的点,y是用Sin函数计算处理过的值,但是这条线的弯曲度不明显,我们需要调整它的振幅,也就是y的值。当然,调整x方向的长度也是可以的。
加强的正弦函数曲线
现在已经完美了,我们对x值和y值都源自同一组数列,同时我们对x值和y值加上了倍数,使得它们各自的值可以被放大。这样,我们就可以自由调整函数曲线的长度和振幅。

单向函数曲面

刚才得到的点,可以连成一条曲线。我们把之前的节点整合在一个CodeBlock中。

image.png
于是,我们可以想象,如果让这条曲线在Z轴上复制多个,那么就可以连接这些曲线成为一个曲面。这里可以使用Geometry.Translate复制多条曲线,然后使用PolySurface.ByLoft连接曲线,成为曲面。
曲线生成曲面
或者,可以更简单些,直接复制生成点阵,然后再使用NurbsSurface.ByPoints将点阵生成曲面。
点阵生成曲面

双向函数曲面

刚才的案例非常简单,只能生成一个方向的曲面。能否将一个平面的两个方向上都生成这种波纹呢?
首先,创建一组数据,生成一个点阵。


生成点阵

然后,给复制的方向,加上不同的距离,这个距离与x的关系是正弦函数。


改变Z轴方向

可以看到,点阵已经形成波形。
我们还可以给距离值也做成序列,会形成另外一种效果。


改变Z轴方向

可以改变这个序列的方向。


改变阵列的方向

两个方向的值相加,就能得到一个二维方向的波,可以称之为蛋型波。


蛋型波

最后,我们将这个点阵连接成曲面,并给个厚度,会看起来更加明显。


带有厚度的三角函数曲面

相关文章

网友评论

      本文标题:Dynamo-CodeBlock手册-应用篇

      本文链接:https://www.haomeiwen.com/subject/xzbpnktx.html