在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3386|回复: 8

[求助] Skill脚本中如何实现将polygon向单个方向SIZE

[复制链接]
发表于 2020-8-8 21:30:42 | 显示全部楼层 |阅读模式
100资产
本帖最后由 skydreamer 于 2020-8-8 22:23 编辑

如题,如何将一个不规则的多边形,如一个上下对拼的"凹"字形,向单个方向扩展/压缩?

现在的思路是希望获取单侧边,比如所有右侧边,然后获取相应坐标并修改,但是找不到相应函数。SKILL函数中有 dbLayerSize() 函数,但实现的是各向同时操作,不适合该情况。大家对这个方案有没有什么解决思路,或者有其它的方法推荐?

多谢~

PS:附上例图

polygon.png
发表于 2020-8-8 22:06:44 | 显示全部楼层
这应该很容易吧,
1)取所有坐标点横坐标的最小值
2)取所有坐标点横坐标的最大值
3)最小值和最大值之和除以2,得到中间的横坐标值
4)所有坐标点中横坐标大于中间值的,加上一个固定数值,Done.
.
 楼主| 发表于 2020-8-8 22:22:54 | 显示全部楼层


amodaman 发表于 2020-8-8 22:06
这应该很容易吧,
1)取所有坐标点横坐标的最小值
2)取所有坐标点横坐标的最大值


多谢回答,但是我希望取得的是 单侧 的边,不是中心点一侧的边~
polygon.png
发表于 2020-8-8 22:47:44 | 显示全部楼层


skydreamer 发表于 2020-8-8 22:22
多谢回答,但是我希望取得的是 单侧 的边,不是中心点一侧的边~



要想对上述画出来的四条边进行操作,你可以分两步做,

第一步,将上述算法中的中间值变为35%,那么左边的两条边可以取到进行操作,
第二部,将上述算法中的中间值变为75%,那么右边的两条边可以取到进行操作
发表于 2020-8-8 22:50:00 | 显示全部楼层
而且取中间指的简单操作可以进一步扩展为对某一个范围内的值进行操作,比如从大于25%到小于45%的值,这样可以进行更复杂的边选择操作。
 楼主| 发表于 2020-8-13 00:45:00 | 显示全部楼层


amodaman 发表于 2020-8-8 22:50
而且取中间指的简单操作可以进一步扩展为对某一个范围内的值进行操作,比如从大于25%到小于45%的值,这样可 ...


我有了新的思路,比较复杂,但是感觉适用性更强。
1)在原来位置复制一个新的polygon,名称为shape2,
2)将shape2向左移动0.001um(grid格点大小),
3)  将原层次shape1和移动后的层次shape2进行操作,使用函数 shp3=dbLayerAndNot(cv layer shape1 shape2),
4)  shp3为一个rect的list,且每个rect均和shape1的“右侧”边贴合,因此,获取每一个rect的右侧边即为原shape1的“右侧”边。
 楼主| 发表于 2020-8-13 00:47:43 | 显示全部楼层
(1)在原来位置复制一个新的polygon,名称为shape2;(2)将shape2向左移动0.001um(grid格点大小);(3) 将原层次shape1和移动后的层次shape2进行操作,使用函数 shp3=dbLayerAndNot(cv layer shape1 shape2), (4) shp3为一个rect的list,且每个rect均和shape1的“右侧”边贴合,因此,获取每一个rect的右侧边即为原shape1的“右侧”边。
发表于 2021-3-3 16:12:50 | 显示全部楼层


skydreamer 发表于 2020-8-13 00:45
我有了新的思路,比较复杂,但是感觉适用性更强。
1)在原来位置复制一个新的polygon,名称为shape2,
2) ...


厉害,这思路可以。
发表于 2021-3-7 16:38:48 | 显示全部楼层
我觉得都复杂啊,
把polygon转为rectangle, 然后再 change 对应的rectangle的box值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-23 16:56 , Processed in 0.040086 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表