vbnewer 发表于 2023-6-18 09:18:37

对三角形和四边形批量做线性标注,如何处理三角形的正交边和四边形的平行边情况?

本帖最后由 vbnewer 于 2023-6-18 09:20 编辑

想要批量对三角形和四边形做线性标注,图形都是多义线,初步的思路是遍历多义线的顶点,逐条边进行标注。但是要处理三角形的正交边和四边形的平行边情况,以达到无冗余标注的目的。请问有什么好的思路可以实现?
如图,红色标注就是冗余标注,希望能去掉。

比如三角形,我的初步思路是按顺时针或逆时针逐条边标注,遇到水平边则下一条边不做垂直标注,遇到垂直边则下一条边不做水平标注,但如果水平边或垂直边是最后被遍历到的,则另两条边已做完全标注,无法改变了。请问大神们有什么更加巧妙的思路?

四边形的思路也类似,就是以平行边作为判断依据。




llsheng_73 发表于 2023-6-20 11:42:48

从图上看,标注分为水平和竖直两种,那么,每个标注,都会有两个关键坐标,对于水平标注来说,不管纵向坐标,记录两个水平坐标,竖直标注记录竖直坐标,相关数据计算出来之后,检查关键坐标是否已记录,如果已经记录,不标注,没记录的标注并记录

vbnewer 发表于 2023-6-25 22:28:45

xyp1964 发表于 2023-6-25 19:36
;; 三角形标注

版主,能实现1楼图片的效果吗?不做重复标注,就是只标白色标注,不标红色标注。对于直角三角形只标注两条直角边,对于有水平边的三角形只标注一个高,对于有竖直边的三角形只标注一个宽。

xyp1964 发表于 2023-6-26 13:59:04

vbnewer 发表于 2023-6-25 22:28
版主,能实现1楼图片的效果吗?不做重复标注,就是只标白色标注,不标红色标注。对于直角三角形只标注两 ...


加个判断删除


vbnewer 发表于 2023-6-18 13:15:43

本帖最后由 vbnewer 于 2023-6-18 13:21 编辑

这是参考测试DWG文件,列举了上面提到的几种情形。

2334444 发表于 2023-6-18 21:40:24

长久以来,想解决这个问题,但没有好办法,静等高手

fan_zh 发表于 2023-6-20 08:36:52

考虑到实际生产应用,冗余标注有时也需要的
你这不是冗余,而是重复标注了

vbnewer 发表于 2023-6-20 12:25:46

谢谢关注,这个思路我也考虑过,会有副作用,以上图中有水平边的那个三角形为例,两个水平标注113和63,它们的两个端点y坐标是相同的,按照这个规则,有一个会不被标注。

llsheng_73 发表于 2023-6-20 12:29:53

vbnewer 发表于 2023-6-20 12:25
谢谢关注,这个思路我也考虑过,会有副作用,以上图中有水平边的那个三角形为例,两个水平标注113和63,它 ...

每个图形开始记录清空。。。。

vbnewer 发表于 2023-6-20 16:50:50

llsheng_73 发表于 2023-6-20 12:29
每个图形开始记录清空。。。。

我试试看,谢谢

cable2004 发表于 2023-6-20 17:31:04

有点类似钢结构节点板这样标注?

vormittag 发表于 2023-6-20 17:32:52

和求凸包差不多吧,找上边界和下边界,顺时针标注出上边界,逆时针标注下边界。
页: [1] 2
查看完整版本: 对三角形和四边形批量做线性标注,如何处理三角形的正交边和四边形的平行边情况?