欢迎光临散文网 会员登陆 & 注册

Dynamo「Vector案例」向量指示器

2023-07-31 20:09 作者:wolfsdreamlove  | 我要投稿


    向量是抽象的概念,在三维视口不可见【不同的Dynamo版本显示略有差异】,这使得有关于向量的观察调试非常不方便!


    经过前面章节Vector的学习,现在已经可以编写一个属于自己的向量指示器了!部分未学习的节点会在后面章节解释】


    蛙蛙会尽可能使用最简单的图形来实现其功能,当然,你也可以使用其他的图形来替换,使用简单图形主要是考虑到未来大范围的向量计算、调试的易读性与流畅性!使用圆柱或者圆锥等实体拼接会消耗相当大的性能!

某项目锚杆向量解算大规模使用复杂图形预览是一个灾难


蛙蛙对向量指示器的功能需求:

1-  表达正确的起点位置

2-  表达正确的向量方向

3-  表达正确的向量相对长度

4-  可控缩放向量标记,以应对不同规模的项目程序调试

5-  小巧精简,尽可能不分担运算性能


方法的功能已经确定,现在就开始着手实现方法吧!


        新建3个模拟的输入节点变量,分别来接收需要显示的向量、向量的原点、向量的缩放数据。调试方法时,先使用Z轴向量,原点(0,0,0),缩放值暂时设为5,并分别连接到对应的模拟输入节点。

图片
模拟方法参数输入


    连接完成以后,开始着手编写方法内部的功能。为了表达向量的方向,蛙蛙在向量的起点处绘制一个圆,圆平面法向就是输入的向量,圆的半径可变,作为可控缩放的一部分。将向量的原点按照向量的方向移动向量的长度的距离,连接起来,这样我们就有了一个图形来表达向量的方向。

图片
绘制一个一个直线和圆来表达方向,实现可视化向量标记功能


    此时,已经实现了查看向量的功能,但是由于标记太小,在实际应用中很难看见,蛙蛙想要可以根据不同项目情况可动态调节整体标记的大小。

    蛙蛙使用一个乘法的节点,连接到模拟的缩放比例节点,用这个缩放比例值统一乘以向量的长度,再加一个乘法来控制圆的半径。

【圆的默认半径可自行设置,看起来好看协调就行,蛙蛙这里使用0.1】

    这样蛙蛙就可以使用一个参数,控制整个向量标记的大小。

图片
实现可控缩放标记的功能


    现在已经实现了一个参数控制缩放,但是默认情况下显示是黑色的,而在调试的时候如果有其他图形也会是黑色的,蛙蛙想让向量标记更明显一点,给他显示特定的颜色。

    蛙蛙使用GeometryColor.ByGeometryColor 图形着色节点,将直线显示为红色,圆圈显示为蓝色。【什么颜色无所谓,自己喜欢就好】

    并隐藏前面未着色的直线与圆节点,以免影响观察。将已着色的输出合并到一个列表里,并连接到模拟的输出节点。

【这一步做不做不影响显示,这是为以后封装自定义节点包做准备!】

图片
为标记添加喜欢的颜色、向量指示器方法连接图


    现在就实现了随时可以随时查看向量的方法啦!但是每次需要看的时候复制粘贴这一坨好麻烦呀!

    蛙蛙后面会介绍如何封装自定义节点包哦,将方法封装成自定义节点,把他放在左边的节点库里,使用就和内置节点一样方便啦!

Dynamo「Vector案例」向量指示器的评论 (共 条)

分享到微博请遵守国家法律