HoudiniVex笔记_P2_GroupBase组基础

原视频:https://www.youtube.com/playlist?list=PLzRzqTjuGIDhiXsP0hN3qBxAZ6lkVfGDI
Bili:Houdini最强VEX算法教程 - VEX for Algorithmic Design_哔哩哔哩_bilibili

Houdini版本:19.5

1、group-组是一种特殊属性Attribute

groupe无法提供与属性相关的功能,须通过其它方式进行访问。group值为0或1,表示是否存在该组中。

下面是<多边形sphere+group节点>,选择不同的Group Type(Verteices、Points、Primitive),Group会在相对应的组件表格中中显示,GroupType(Edges)在表格中仅指向Verteices、Points、Primitive但不显示:

 2、使用setpointattrib设置点属性官方文档介绍

geohandle:节点第几个输入点(计算机中索引以0开始,第1个输入点就是0);
name:要设置的点属性名字;
point_num:处理的点,若使用@ptnum,则按顺序访问每个点的点号,当然也可以指定点号;
value:设置属性的值;
mode:可选参数,使用“set”可覆盖圆属性值;更多用法可查看标题链接的官方文档。
【setprimattrib()、setvertexattrib()类似】

eg.示例

i@A = 10;
setpointattrib(0, 'B', @ptnum, 20);
setpointattrib(0, 'C', 1, 30);

 第一行代码结果与第二行代码运行结果相同。第一行代码应用于所有点,具有局限性;使用setpointattrib()更灵活。代码运行结果如下:

3、使用setpointgroup设置点组官方文档介绍

对点组进行添加或删除
geohandle:节点第几个输入点(计算机中索引以0开始,第1个输入点就是0);
name:组名字
point_num:需要处理的点(point number,若是@ptnum则遍历所有点);
value:0(删除)或1(添加);
mode:可选参数;更多用法可查看标题链接的官方文档。
【setprimgroup()、setvertexgroup()类似】

eg.setpointgroup()基本用法

setpointgroup(0, 'A', @ptnum, 1);

setpointgroup(0, 'B', @ptnum, 1);
setpointgroup(0, 'B', 3, 0);

运行代码结果如下:

4、使用inprimgroup函数检查primitive是否在组中(官方文档介绍


 检查primnum是否在groupname组中,存在则返回1,不存在返回0。
【inpointgroup()、invertexgroup()类似】

创建sphere、box、torus三个对象,其中sphere、box添加groupe节点,并把三个对象结合mergy

添加命名为access_group的代码节点,类型选择为primitive,运行代码

i@inbox = inprimgroup(0,  'box', @primnum) *5;
i@insphere =  inprimgroup(0, 'sphere', @primnum) *10;

结果如下;
 

5、使用nprimgroup统计Primitives数量官方文档介绍

 返回groupename组的primitive数量。
【npointsgroup()、invertexgroup()等类似】

eg.统计sphere小球对象的Primitives数量,运行代码

i@numFaces = nprimitivesgroup(0, 'sphere');

运行结果如下

5、使用expandprimgroup函数展开数组官方文档介绍

 
返回一个primitives数组,即展开数组。
【expandpointgroup()、expandvertexgroup()类似】

eg.继续使用<eg4>展开box组的Primitives,使用新的AttributeWrangle节点运行代码

i[]@prims = expandprimgroup(0, 'box');

结果如下

6、使用nearpoint()函数查找距离最近的点官方文档介绍

a.查找距离pt最近的点;
b.查找距离pt最近的点,查找最大距离为maxdist;
c.在ptgroup组内查找距离pt最近的点;
d.在ptgroup组内查找距离pt最近的点,查找最大距离为maxdist;
【nearpoints()类似,其返回一个数组】
【小知识:节点运行顺序从左只右,从上往下】

eg.创建sphere、box对象,groupe节点类型为Points,并把两个对象结合mergy;再Add添加一个点,在sphere、box内查找距离pt最近的点,

i@sphereNpt = nearpoint(1, 'sphere', @P);
i@boxNpt = nearpoint(1, 'box', @P);

运行代码结果如下

7、常用选择筛选点的几种方法

.创建sphere、box对象,groupe节点类型为Points,命名为sphere、group;并把两个对象结合mergy;再添加一个AttributeWrangle节点

方法一:直接在Group处选择组

方法二:点击下图中的符号,在sence窗口直接鼠标框选(小眼睛按钮可以选择是否同时选择模型背面的点)

 方法三:直接键入点或使用简单正则表达式官方文档介绍

 方法四:拓展-使用较为复杂的VEXpression方式

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于LSTM的财务因子预测选股模型LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值