求助思路 怎么将相对上下的直线分成两组?
vb吧
全部回复
仅看楼主
level 11
WANG091926
楼主
已知这些直线的坐标,怎么按相对位置分成如图A、B两组?
2021年12月15日 12点12分
1
level 11
WANG091926
楼主
大佬们,不知道有什么思路没
2021年12月16日 14点12分
2
level 7
深邃的爱🍀
通过线距离顶部的高度分一次,然后通过横向坐标再分一次,要用到数组
2021年12月16日 23点12分
3
WANG091926
这个方法并不绝对可行啊,可能会把下半部分的归类到上半部分了,比如把B的中间部分归类到A中,把A两侧部分归类到B中
2021年12月19日 14点12分
深邃的爱🍀
@WANG091926
如果在判断距离顶部距离的时判断横向距离呢 ? 你要分组,肯定得有规律具体的要求吧 ,为什么要分到A组或者B组 把这些条件发出来,吧里大神会给你帮忙的
2021年12月20日 01点12分
level 11
璐村惂鐢ㄦ埛_0748V5Z馃惥
你这个看起来简单,实际并不简单。
建议你把题目(或者是你需要解决的问题)的原样说说看。
如果仅从你给出的图来处理,也许并不是你心中想的样子。
2021年12月18日 05点12分
4
level 1
xxincq
感觉画得太随意了。如果说把B组最右边一根判定归入A组,看上去貌似也说得过去。感觉人工判断都有可能存在问题。
2021年12月18日 17点12分
5
level 11
WANG091926
楼主
不知道楼上的大佬有没有接触过fanout双金属布线,就是A这种形式。然后呢我给出的是B这种同层金属的变种形式。正常情况下B的所有上部分顶端(底端)y值是大于所有下部分顶端(底端)y值的,我可以从这点出发排序对半分获得上部分和下半部分。但是布线情况复杂,偶尔可能会出现我求助的情况 ,即没法满足所有上部分顶端(底端)y值是大于所有下部分顶端(底端)y值。另外获得的折线并不一定是按图片所给的顺序从左到右从上到下。
2021年12月19日 14点12分
6
WANG091926
@璐村惂鐢ㄦ埛_0748V5Z馃惥
2021年12月19日 14点12分
level 11
璐村惂鐢ㄦ埛_0748V5Z馃惥
好吧,我不得不承认,专业领域,别人插手是不明智的。
还是回到一楼的图。
观察有以下结论:①总体呈拱形,印证六楼fanout。②上层直线区域与下层直线区域不相交。③所有直线都是竖直的。
如果观察错了,就当没说。
先对竖线进行预处理,①舍弃下端,只有上端点代表直线。②对所有的上端点按x值排序,并建立与原直线的对应关系。
分组方案有二种:
1、人工干预分组。好处是算法简单。①开始要求用户通过单击图片输入三个点,都位于两层之间,分别位于图片左、中、右三个位置。必须可核对、可修正。②由这三点按二次曲线待定系数,确定分层标准线,并在图中绘出,由用户确定或修正,修正则返回①。③将每个端点的x值代入曲线求得分层线的y,与端点坐标的y比较,得出属于上层还是下层。
2、曲线拟合剔除法。好处是不用人管。①将第一个端点坐标,作为一组。其余作为一组。对后一组进行按照二次曲线拟合,求均方差。②对后一组的端点取出一个,求二次曲线拟合均方差。如果均方差增大,就保留在后一组;如果减小,就将这个端点归位第一组。
3、当然,还有顺序差值比较等等方法。
以上仅对一楼的图示,按照上述假设提出思路。
2021年12月20日 05点12分
7
1