免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1828|回复: 3
收起左侧

[技术交流] 线的拆解 相关教程

[复制链接]

11

主题

8198

铜板

11

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
757

爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章成就学员勋章

QQ
发表于 2018-8-19 08:51 | 显示全部楼层 |阅读模式
先说一下问题的背景:
1、有若干条线段需要进行处理,目标是在规定的位置取出一段3米长的线。
2、截取数量n:线段少于10米,则不进行任何操作;线段长度大于10米,则按该线段长度除以10的结果取整部分作为需要取得的线段的数量,例如一条线长19米,则只截取一根3米长的线段;一条38米长的线段,则需要截取3根。
3、截取位置:将原始线段平均分成n份,每一份的长度为L,所需要截取的部分起点在 (L-3)*0.4(L为截取后剩余的长度,如第一份为该线的总长度,第二份为总长度减去3米及第一份的起始长度,以此类推)
4、结果要求:①除了每一根取出的3米长线段两端节点外,不产生其它任何节点;②取出的3米线段与剩余部分可以完整的组成原始线段;③线段长度与形状不发生任何变化;④线段其它节点位置不发生任何变化。
以上问题为FME忠实的粉丝和尚哥提出的,我对部分解释有所修改。
这个问题解决的关键主要是怎么求出线的截取位置。
有两种不同的方法求出线的截取位置,先说一下思路比较容易实现的方法,首先你通过testfileter转换器对线进行分类(这适合于线段按一定规则分类比较少的情况,像这期的问题,适合线段比较短的情况,如果线段比较长,他的弊端就显示出来),然后分别计算出要切分线段的起始长度数,通过snipper转换器把线截取。
第二种方法思路跟第一种方法是一样,只是通过循环来实现,同时你也不需要考虑线段的长度对你的影响,下面看一下循环实现图:
                                                      捕获.JPG
但这个循环没有把最后截取3米剩下进行截取,所以我们最后要把那一小段截取出来,这样这项工作都进行完。
整体这个问题的实现不算太复杂,想了解其他思路,可以关注FME官方(公众号:FME软件)的动态,会有其他的大神分享其他方式的实现方式。
可以关注一下我的公众号了解更多:
                                                                   qrcode_for_gh_ecf7fff94f99_258 (1).jpg

9

主题

1万

铜板

9

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3780
发表于 2018-8-28 09:06 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

92

铜板

0

好友

实习生

Rank: 1

积分
5
发表于 2018-8-28 16:05 | 显示全部楼层
1111111111111111111111
回复 支持 反对

使用道具 举报

0

主题

3141

铜板

6

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2491
发表于 2021-5-31 16:19 | 显示全部楼层
不错。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表