原文发布时间:2010-07-29
作者:毛毛虫
InsidePointExtractor函数
添加在面要素中的点的属性。这个要素的几何不通过这个函数改变。
如果这个要素不是一个面,那么这个属性不会有任何值。
如果内部点或质点的位置需要作为一个面要素的属性,那么这是非常有用的。如果一个世纪的文本要素在内部的点上创建,那么使用LabelPointReplacer函数;如果一个要素的点被创建,那么使用InsidePointReplacer函数。
主要:如果在工作空间中,Geometry Handling高级设置被这是为“Enhanced”,椭圆也被作为面,否则被作为点。
InsidePointReplacer函数
使用面中的点替代面要素的几何,通过INSIDEPOINT输出端口输出。非面要素通过这个函数不会改变,由UNTOUCHED端口输出。
对比这两个函数,都是找出面内的一个点,区别是一个是把点的x、y坐标作为面的一个属性,一个是用这个点替代面。我们对InsidePointExtractor函数生成的x、y属性,使用2DpointReplacer函数生成一个点后,会发现与InsidePointReplacer生成的点完全重合。
CenterPointReplacer函数
使用要素约束矩形的中点替代要素的几何。
使用注意事项:根据要素的形状,结果点可能在原始要素的外部。
相关的函数:产生面要素内部的点,使用LabelPointReplacer 或InsidePointReplacer函数。产生重心,使用函数CenterOfGravityReplacer。
CenterOfGravityReplacer函数
使用要素的质量分布的中心点来替代要素的集合。注意根据要素的形状,生成的点可能在原始几何的外部。
注意:这个函数计算质量中心的位置,而不是在面的表面或这个线的长度上,因此,对面要素可能返回意料外的结果,特别是洞。
原始图形如下:
分别使用上面几个函数,得到的结果如下图所示(黑色边框是它的约束矩形,绿色的点是CenterPointReplacer函数处理后的结果,也就是约束矩形的中心,蓝色的点是使用函数InsidePointReplacer之后生成的点,红色的点是使用CenterOfGravityReplacer函数之后生成的点):
可见, CenterPointReplacer和CenterOfGravityReplacer函数生成的点并不一定在多边形的内部。另外与InsidePointReplacer的区别是,CenterPointReplacer和CenterOfGravityReplacer函数对非面要素要能产生相应的点,而InsidePointReplacer只适用于面要素。