明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3844|回复: 8

自身相相交的多段线如何得出交点所在点

[复制链接]
发表于 2006-10-26 19:40:00 | 显示全部楼层 |阅读模式

一个不规则的多段线,比较窄的地方可能在做的过程中可能一不小心做成了相交的,最后想在图形检查时能查出来,自身有相交的就标出相交点?

要实现这样的功能,该要用到那些原理和知识点,请大家帮助

发表于 2009-1-15 16:22:00 | 显示全部楼层
同上
发表于 2009-1-19 04:59:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-22 5:18:53 编辑

参考,先把多段线依据节分解成n条,各条线用IntersectWith是否相交得出交点

发表于 2009-1-19 13:59:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-19 13:59:05 编辑

楼上的意思是要炸开图元,再一个一个比较吗?

这样会不会很慢!

有没有更好的方法,例如函数,可直接对一个多段线判断!

如方便,给个代码吧,我测试一下!

感谢!

发表于 2009-1-20 04:51:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-22 5:24:56 编辑

画一条与原来一完全一样的多段线,坐标也一样(copy一条更方法些吧)

两条多段线用IntersectWith相交,得到的交点坐标与多段线的节点坐标依次比较(数组进行比较),有一个数字不相同,就说明有自交情况

最后把刚copy那条删了

发表于 2009-1-20 05:03:00 | 显示全部楼层

offloading  wholin

方法可行的话汇报一下

发表于 2009-1-21 10:06:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-21 10:24:46 编辑

试了一下,未达到所需效果,交点还是原来的交点,未测出所需数据!

可能是表达和理解上有所差异!

如图:

左图使用用你的方法,可求出A点交差;(4根线组成)

右图使用你的方法,无法求出A点异常,因此图本身在A点就设有断点,用你的方法无法比对出不同点!(6根线组成)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2009-1-22 04:48:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-22 5:20:06 编辑

内容空

发表于 2009-1-22 04:52:00 | 显示全部楼层
本帖最后由 作者 于 2009-1-22 5:51:25 编辑
  1. 以下是引用offloading在2009-1-21 10:06:00的发言:试了一下,未达到所需效果,交点还是原来的交点,未测出所需数据!可能是表达和理解上有所差异!如图:左图使用用你的方法,可求出A点交差;(4根线组成)右图使用你的方法,无法求出A点异常,因此图本身在A点就设有断点,用你的方法无法比对出不同点!(6根线组成)
复制代码
offioading请用5楼的方法检测一条多段线自身是否相交的情况,这种方法更快,更方便

你所提到的的问题应该是用了3楼的方法吧,参考3楼的方法A点处原本就是节点的话,是检测不出来的,
但是实际CAD操作画一条多段线自交点(自以跟自已相交的交点)与自身的节点相重合百万分之一的可能性都没有(除非故意的),要知道cad上的点类型double
顺便说一下"A点就设有断点"修改成"A点就设有节点",这句话让我想半个小时(费解歧意),断点和节点(或顶点)是不概念,一条多段线是没有断点的,有断点的肯定不只一条多段线
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 04:40 , Processed in 0.158664 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表